Joel Spolsky has been writing his, about real software development, since before there were blogs. This book collects together, in dead tree form, some of the early online articles, with only a little extra material. It makes fascinating reading. He's worked for Microsoft, at other companies doing in-house software development, and now runs his own company, and all this diverse experience shines through.
There are two chapters I thought most important: The Joel Test of 12 steps to better code (how many are you doing?), and the Five Worlds of software development, and how different values and practices apply to each (or, there is no One Right Way). These, and lots of other fascinating snippets, insights, and wisdom, all written in a refreshing light and breezy style, make this a worthwhile read for anyone interested in the software industry.
It's well known that the three things you need to produce good software are "good people, good people, good people". But how do you recruit good people? Joel Spolsky,, says how they do it at his own company . Although, as he admits himself, occasionally
Despite that caveat, there is a lot of good advice here. And it's no magic bullet -- to get good people takes time and effort and investment -- from day long job interviews with several staff, to full high quality summer internship programmes to catch them early. And on top of all that the company also need to be an attractive place, so that those good people want to work there. Which includes private offices. (I've always wondered why companies seem willing to pay people lots of money to think, then put them in precisely the kind of cubicle-hell open plan environment where they can't think. The only answer I've come up with is that the people who allocate the spaces don't themselves have to think.)
Snappily written, good fun, and good advice.
Yet more words of wisdom about software development culled from the, from talks, and from book prefaces.
Highlights for me include the original Hungarian notation application (now it makes sense!), Evidence-Based Scheduling, and the Five Whys example. There is some overlap with previous books, particularly on the recruitment, care and feeding of programmers. If I'd been reading this for the first time, I would doubtless have given a higher overall rating.