I just finished Getting Real, a book by 37 Signals which explains a “smaller, faster, better way to build software”. For those who do not know, 37 Signals is a fairly successful company that provides several web applications for small businesses and individuals. In the book, they explain the philosophy that has led to their success. The book takes an unequivocal position, which I like a lot. I’ve seen video which makes it clear that the authors have considered the alternatives, but it is clear that the book’s goal is not to present options. Of course it helps that I often agree with the position that they take. I enjoyed reading their take on things that I don’t agree with, too, and overall would certainly recommend the book to any developer thinking of starting their own company.
Getting Real wasn’t all biscuits and gravy, though. On the face of things, their arguments border on obvious. Every one of their arguments has an “except in this situation” that could have been added, but was not. That’s the style of the book, I know, but in some cases I think they actually got it wrong.
For example, they suggest that you build software for yourself, or, in other words, solve on of your own problems. I agree on the face of things, and have discussed that same point elsewhere. I don’t think that paints the whole picture, though. They quote Dave Thomas who advocates “scratching your own itch”:
As the designer or developer of a new application, you’re faced with hundreds of micro-decisions each and every day…As a developer, I hate this. The knowledge of all these small-scale timebombs in the applications I write adds to my stress. Open Source developers, scratching their own itches, don’t suffer this. Because they are their own users, they know the correct answers to 90% of the decisions they have to make.
Unfortunately, one of the biggest complaints of Open Source operating systems goes to this exact point; if you are a techie, you can use Linux, but “regular people” cannot. They cannot “scratch their own itch”. If you add up Windows and OS X market share, it is clear that 98.31% of a multi-billion dollar market disagrees with the fundamental claim that Dave Thomas makes and that Getting Real agrees with.
The fundamental flaw in their argument lies in the large number of people who will pay for software but couldn’t write it. In other words, there are a ton of problems that software can solve that software developers do not ever face themselves. Getting Real skips over a lot of such obvious counter-arguments, and I wonder how they would address such concerns.
All in all, the book is fantastic for anyone thinking of starting a business, changing the way their company works, or critiquing the bigger, less agile companies.