I just finished Joel Spolsky’s Joel on Software (subtitled ‘And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity‘). Joel started out as a paratrooper in the Israeli defence forces, before working on the Excel team at Microsoft, at Juno, and finally starting his own software house – Fog Creek Software.
Joel is perhaps best known in the blogging community as the author of Joel on Software – his commentary on software development, design, project management and more. The book is basically a compendium of entries from his blog, but worth buying all the same. There is some additional commentary that is exclusive to the book, but the real value is that you can read the book on the plane, in the bath, in bed, wherever. And it is well worth the read. Joel passes on his experience from each stage of his career (including the paratrooper bit) with wit and style. He lists the 12 essential questions that every software development team must ask themselves, how to effect change from the most lowly level of the team, and why bloatware isn’t as bad as it’s made out to be.
Here’s my favourite quote – on the subject of backward compatibility:
Jon Ross, who wrote the original version of SimCity for Windows 3.x, told me that he accidentally left a bug in SimCity where he read memory that he had just freed. Yep. It worked fine on Windows 3.x, because the memory never went anywhere. Here’s the amazing part: On beta versions of Windows 95, SimCity wasn’t working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn’t free memory right away. That’s the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95. From ‘Strategy Letter II: Chicken and Egg Problems‘
If this grabs your interest, then buy the book (or at least, spend some time on his site).