Book of the month

ziggy on 2002-08-03T21:00:55

If you haven't read Pete McBreen's Software Craftsmanship, go out and get a copy now. It's a really good book about how and why software development is in such a dysfunctional state.

Here's McBreen's thesis in a nutshell: «Software Engineering» as we know it is something that was developed by NATO to facilitate the development of missile control systems -- big pieces of software that cannot fail, regardless of cost. Also, team size is irrelevant, and interchangeable developers is also a benefit if not a requirement.

The problem: the vast amount of software being developed or used today does not fit these criteria. It tends to be developed by small teams, with limited resources and a level of tolerance for the occasional non-critical bug. The best software that sits outside this big-budget NATO/Software Engineering model tends to be created by small numbers of exceptionally talented people. Masters of the art of software if you will.

We've seen this model before -- look at cabinetmakers, plumbers, electricians or blacksmiths. Once we discount for the abberations that actually require a "software enginnering mindset", we're left with the same model of personal development that the crafts have used for centuries (if not millenia). No one in his right mind would expect an apprentice who just learned how to use a lathe to be able to construct a nine piece dining room set. Yet that's exactly what we do in software. And we kid ourselves by saying it's OK, because there's a manual, a set of instructions, and an endless supply of "junior grade laborers" who can be thrown at the project.

I lent my copy of this book to Damian when he arrived to North America in June, and he kindly remembered to return it to me at TPC last week. I also talked it up to a bunch of Perl Hackers at the conference.

It's quite surprising how good this book is, and how few people know about it.

What's next on my reading list? Pete McBreen's Questioning XP. :-)


Thanks for the pointer

petdance on 2002-08-03T21:15:04

I've thumbed thru it a few times at Borders, but always wondered if it was worth the bucks.

I've added it to my want list.

I second that recommendation...

james on 2002-08-04T12:11:43

...when you read it you get the 'I knew this already!' reaction. Software Craftmanship just spells it out. Its a very good book and should be on everybodies required reading list.

main ideas

lachoy on 2002-08-04T18:56:35

What struck me most about this book was its emphasis on making software development more human -- we're not cogs or pluggable components, we're people. Many Methodologies refuse to acknowledge this, treating the development process as if it were a civil works or other engineering process: all knowledge at the top and everyone else implementing a tiny piece without ever seeing the big picture.

That he did so in a way that didn't get my "software developer as artiste" hackles up is doubly admirable :-)