||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Software management, project management, development
Title: The Software Development Edge
Author: Joe Marasco
Verdict: Interesting, thought-provoking, occassionally patchy
Joe Marasco was a very successful project manager at Rational Software, and now, at the end of a distinguished career, he sets out some of his accumulated wisdom and insights in this anthology of essays devoted to software development and management. These 'essays on managing successful projects' cover a range of topics, from scheduling to estimating to modelling to office politics. The focus isn't just on straight software management issues, there's plenty of tangential material as well, but more of that later. One other thing to note is that the book comes with plenty of plaudits from senior people from the world of software development. So, does the book manage to live up to the praise already upon it?
What's instantly apparent from reading these essays is that Marasco is very aware of the development culture around him. He comes from a physics background and understands how engineers think and work. This is important because it means he understands what motivates developers, he understands how techies tick, which is of major importance for anyone wanting to manage software projects. This understanding comes across very strongly, particularly when talking through 'Roscoe Leroy', an alter ego with him he engages in dialog in a number of essays.
Furthermore Marasco has some interesting things to say on iterative development, which is the key process advance that the field has seen. Not only does he give good reasons why this is so, he also provides rules of them about how to size iterations and how to manage what goes into each one. He counsels against the temptation to leave the hard stuff till last, in his opinion managing risk is essential, and leaving the high-risk stuff to the end of a project is a sure recipe for disaster.
Many of the essays are illustrated with graphs and simple models, again betraying his background in physics and engineering. These models are thought-provoking, and even if you dispute some of what he says there's no denying that you have to think hard about what he's saying.
As should be clear so far, there is a lot of solid material in this book. It's food for thought, and clearly grounded in long experience rather than in theoretical speculation. However, the book also contains a fair number of essays that just don't add value. Some of these have very little to do with software development or even management in general. For example there's an essay on bad analogies, which looks at how people misuse science when making analogies. Or another essay where he proposes that batteries are the natural medium for embedded software - while it's an interesting idea it doesn't really have much to do with running successful software projects.
Overall this is an interesting read, with some sage advice, thought-provoking material and a smattering of fillers and extraneous chapters. While it's not a new The Mythical Man-Month, it's certainly a book that can be recommended to software development managers wanting to raise their game.