Tuesday, July 04, 2006
Review of "Getting Real" by 37signals
As promised, what follows is a short review of "Getting Real, The Smarter, Faster, Easier Way to Build a Successful Web Application" by 37signals -- makers of Basecamp, Campfire, Backpack and many other successful Web apps.
I bought the book (which is a .PDF download on their site for $19.00) for two reasons: Firstly, I have always liked the applications 37signals produces and secondly, I loved the title of the book.
Working at a large company as I do, it is constantly frustrating to be mired down by the people and processes that seem to pervade every aspect of development. From the bloated meeting agendas to the overkill MS Project docs -- all the process and documentation actually detracts from the team's productivity -- and the product suffers for it.
This is the key message offered by 37signals with this work: Less is more. Fewer features mean you can focus on delivering a higher-quality product that does just enough and not too much. And although they write from the perspective of a company building web apps to sell to the general public, the same principles apply to the kind of internal development efforts my team is involved with at SAP.
Some of the most valuable points I found in the book include the following concepts:
- Fix time and budget, flex scope. If you can't fit everything you wanted into the time and budget constraints you have, don't extend the deadline or throw more money at the project. Instead, pare down the scope. It's better to do something small well rather than do something larger that is of poor quality. Add what you had to leave out in the next iteration.
- Learn to say "no." This is a biggie. Ignore customer requests for additional features. Completely. Don't even bother to write them down. If they are important, they will resurface. That may sound harsh at first, but the quality of the product depends on it. Don't let scope creep take your team away from the original vision. Software development is an iterative process. If the feature request is truly of value, your customers won't forget it and you can work it into the next version.
- Design your interface for all three states of the application: regular, blank and error. I'm so glad they included this point. I had to learn this one the hard way. The easiest state to forget is blank. When developing and application that is database-driven, we are working with dummy data and never see the app without something populated in the tables and fields. But your customer's first pass through will be a blank state. Don't forget to design for that. And of course, make sure you know how to handle errors. The best book on this subject I've found is another by 37signals: "Defensive Design."
- Context over consistency. This idea is difficult for interface designers to embrace, but I think its time has definitely come, particularly as it relates to AJAX and RIA apps. Forget the mantra that says consistency creates usability. Context is far more important than consistency. It's okay to forget about consistency if your application functions better that way. The context should be the driving force behind the design.
Overall "Getting Real" was a valuable read and I learned something from nearly every chapter. I love the style of writing used in the book. It's fun to read and the quotes at the end of each chapter really make the ideas come to life.
All-in-all a good read and I look forward to more from 37signals.
posted by Lynne @ 2:51 PM 2 comments
