The Economics of Iterative Software Development
Effective software development is no longer merely an IT concern: today, it is crucial to the entire enterprise. However, most businesspeople are not ready to make informed decisions about software initiatives. The Economics of Iterative Software Development: Steering Toward Better Business Results will prepare them. Drawing on decades of software development and business experience, the authors demonstrate how to utilize practical, economics-based techniques to plan and manage software projects for maximum return on technology investments.
The authors begin by dispelling widespread myths about software costs, explaining why traditional, “engineering-based” software management introduces unacceptable inefficiencies in today’s development environments. Next, they show business and technical managers how to combine the principles of economics and iterative development to achieve optimal results with limited resources. Using their techniques, readers will learn how to build systems that enable maximum business innovation and process improvement–and implement software processes that allow them to do so consistently.
Review By: Vivek Vaishampayan
10/16/2009The book will help both business and technical managers understand how to combine principles of economics and iterative software development. In doing so, this book helps team and project leaders deliver more valuable software faster by realizing the importance of keeping the at-hand project or initiatives on track. Unfortunately, the book probably will have a short shelf-life because of its limited relevance in any economic situation, especially since this book covers today's environment which reflects the turmoil of recent recession periods.
Readers in the United States may find it easier to relate to the book’s view of current economics in the states, but I'm not sure about rest of the world. The major drawback of the book is that it's portrayed as if all economics are related to U.S. dollars only. The authors failed to consider the global economy in their vision, evident in the book's cover image which shows only U.S. dollars. The internationalization and globalization considerations are missing. In fact, the recent buzz word "Glocal," the mix of global and local economies, can be a topic by itself in such books.
The most interesting two facts in this book are the concept of iterative project management and the concept of adapting an iterative approach iteratively. It's easy to use those words in that order but difficult to explain the concept behind it. The authors did an excellent job explaining and advocating both these concepts nicely. Overall the book is worth reading once, at least to understand the economical point of view of agile iterative software development methodology.
If the authors rewrote the book, some of the points worth reconsidering have been noted above. Moreover, the authors need to consider synergy as an extension of what is described in the book mainly in bits and pieces. These pieces need to be connected together in a more cohesive manner rather than leaving it to reader to put the puzzle together. The authors describe NPV and ROI which is great, but if you are talking about iterative project management, you better talk about SPI, CPI, and earned value calculations. It's surprising that the authors haven't given any reference to portfolio management as an extension to project and program management while talking about the economics of managing projects.
It's great to see the topic on RUP (Rational Unified Process) but need further exploration on the possibilities of customizing the RUP for the businesses or even for those economic situations using advanced tools like RMC (RUP Methods Composer). Not enough focus is given to the practical, lightweight process implementations and importance of mentoring. Instead there is a trivial description on what to measure in four phases of RUP.
The hardcover of the book is quite attractive and should entice anyone to read this book, which reveals the true economics of the iterative software development process. The main purpose of the book is to explain results-based software management as used to achieve better outcomes with finite resources. The authors have done an excellent job in giving justice to the topic.
It's worth mentioning that a book of this size definitely provides enough background on the subject matter, yet another chapter could have been added to further describe the blending and complimenting of business processes and the iterative software development process to augment the scale of economics.