Most Helpful Customer Reviews
49 of 49 people found the following review helpful:
4.0 out of 5 stars
All Too Familiar, February 21, 2007
This review is from: Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software (Hardcover)
If you're in software development in any capacity, you'll find almost everything in this book is depressingly familiar: schedules dragging on endlessly, vague ideas standing for clear feature descriptions, and a remarkable lack of interest in learning from the past. You meet the indecisive manager, the frustrated designer, and the cowboy coder (the one who loses interest in things as soon as they finally work, determined to gut and rewrite thousands of lines of code for the sake of incremental "elegance").
"Dreaming in Code" really isn't a description of the act of programming, it's more about the difficulty of designing software with other people. It's not at all like designing, say, a new car, where real-world constraints (like the laws of physics and the behavior of materials) come into play. In software, nearly anything is possible. Unfortunately, or a "what comes out of that isn't usually the thrill of possibility, but the paralysis of choice. And that's what Rosenberg captures so well here: the endless, endless meetings discussing what *could* be done, how features *might* work, or what sorts of things "users" *might* want. And it is always that nebulous term "the user" here, the Chandler project never seems to bother thinking much about exactly who will use their product, under what circumstances.
It's not giving anything away to mention that the Chandler project doesn't end at the end of the book. Amazingly, the project is *still* grinding away after four years, releasing incremental versions of their calendar application (each loudly proclaiming that it's an "experimentally usable version"), even as they get passed by on a regular basis by new, fully-usable, web-based calendars like the one from Google.
It's not exactly a fun read--it is essentially a case study of a very long series of meetings--but it should be required reading for anyone involved in software development.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
110 of 124 people found the following review helpful:
4.0 out of 5 stars
Good writing, hobbled by bad choice of project, January 18, 2007
This review is from: Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software (Hardcover)
Santa came through this year with a slightly advance copy of "Dreaming in Code", which tries to do for software engineering what "The Soul of a New Machine" did for computer engineering, following a single project through to its attempted conclusion. Software development is a story that's very rarely told, considering how dramatically software has changed all of our lives in the last 30 years. Author Scott Rosenberg does a good job of conveying the difficulties in software engineering, and the inevitable headaches and drama that come with incomplete plans and shifting specs (and they're always incomplete and shifting).
Where Rosenberg went wrong, unfortunately, is his choice of project to follow. Mitch Kapor's Chandler is quite atypical of software projects: it's driven entirely by one man's quixotic vision, and never has to encounter the usual give-and-take with VC's or upper management that help to clarify a plan. Kapor comes off as an untethered idealist (Al Gore makes the obligatory cameo at the office), and his project is afflicted by the same we-are-the-world unseriousness as his politics. Most notably, Kapor decides there should be no central repository for data (because, hey, down with authority and all that): instead, every item will just be represented, Napster-style, across users' personal computers. It's a costly decision that I don't think would have been made if it were more than just Kapor running the show.
Actually, I think the strongest part of the book is when Rosenberg abandons the project entirely in the middle section to delve into the history of the programming discipline, noting everyone from Donald Knuth to 37signals' Jason Fried. It's a useful, lucid introduction to the field that contains stories I hadn't seen before.
To pick some nits, there are errors that betray Rosenberg as an outsider. "Foo" and "bar", for instance, usually aren't stand-ins for variable names, they're stand-ins for *values*; variable names are decided on almost immediately once the need for one becomes known. [UPDATE: this caused some controversy in the comments. It's true that "foo" and "bar" can also represent variables, but I still contend that it's only in theoretical discussions, when nothing is known about those variables. The book (p. 196) calls them "placeholders" during real-life coding, which I don't think is often true. FURTHER UPDATE, AFTER MORE COMMENTS: Okay, okay, I guess I was wrong. You guys win!] Rosenberg also, I think, makes too big a deal of software's need for precise language: many other engineering fields, and the legal profession, require precise writing, with small errors potentially leading to catastrophe. Rosenberg also overreaches when trying his hand at software philosophy, declaring "The only software worth making is software that does something new" (tell that to the OpenOffice people).
All that aside, this is an entertaining book with some interesting insights, and it would be a great read for anyone who's thinking of going into programming - hopefully it won't scare them off.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
38 of 40 people found the following review helpful:
5.0 out of 5 stars
recommended for non programmers, January 23, 2007
This review is from: Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software (Hardcover)
Ansel Adams wrote, "There is nothing worse than a sharp image of a fuzzy concept." And such is the case with the Chandler project. After four years of development, they have delivered only a 0.6 release with no general availability in sight.
In Dreaming in Code, author Scott Rosenberg follows a group of programmers tasked with creating a new product over a three-year stint. Along the way the book explores disciplines in development (and the lack of), the history of computing (particularly its truths and folklore), and explains why software engineering isn't a science but an art. A common misconception even among developers is that software is similar to construction when, as becomes clear in the book, developing software is more like cooking. Programming methodologies are as plentiful as cookbooks but both are limited by the realities of artistry. A chef can make miracles from a pantry full of ingredients; a cook cannot.
If you're involved with a development team as a marketer, there is much here that will illuminate your team's dysfunction. Rosenberg reintroduces us to concepts that have been known since The Mythical Man Month and The Soul of a New Machine but apparently not understood, remembered, or believed. Strongly recommended.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
|