I finished reading Dreaming in Code by Scott Rosenberg last week. This book is an attempt to be today's "The Soul of a New Machine" (Tracy Kidder was awarded the Pulitzer Prize for that book) for a software project. Kidder's book is a classic today and tells the story of a major "big bet" hardware development project that took place in the late 1970s. "Dreaming in Code" chronicles a software project from 2002 to 2003.
The book itself is very well written. The software project it examines is a train wreck. While the individuals involved have long and distinguished careers in the software field they do just about everything wrong that it is possible to do wrong. Unlike Data general in "The Soul of a New Machine" this software project has complete management support - it is funded and run my Mitch Kapor who invented Lotus 1-2-3 and they are spending mostly his money.
I must confess that about 200 pages through I was about ready to throw the book against the wall in frustration. The author later makes a statement somewhere along the lines of "about now many readers who are software developers are ready to through this book against the wall." My thought was "no kidding!" I hung in hoping that eventually the project would come together, something "magic" would happen and the project would suddenly succeed. It never happened.
I have very mixed feelings about this book. Is it just a frustrating horror story or is it perhaps a lesson in how not to do things? It is hard to say. I have yet to read the story of a successful large software project. Yet there seems to be no end to horror stories. It's pretty sad really.
I have worked on large software projects in my career. A few in the beginning of my career were not very successful. As I moved up in my career and worked for larger companies with better management that turned around though. I like to think that the OS group I worked with in the early 80s was very successful. Our release was out on time and with solid reliability. No bug was ever reported on any of the code I wrote once it was released into "the wild." So I know that software projects can work. Why are things worse now then they were back then? Hard to say.
The best thing about this book, to end on an up note, is two chapters near the end that outline something of the history of software management and processes. I found it very interesting and informative. I lived though most of the changes he outlines and the "story" rings true. If someone offered those two chapters for sale I would recommend that without question. As for the rest, if you like disasters and watching people fail this is the book.
Adam Barr has a great (more detailed) review of this book on his blog. Adam's first book "Proudly Serving My Corporate Masters" is a well-written and interesting book that also has some scary development stories. Probably a better book to read in many ways than "Dreaming in Code" though.