Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results
by David J. Anderson; Eli Schragenheim
Agile Estimating and Planning
by Mike Cohn
Clean Code: A Handbook of Agile Software Craftsmanship
by Robert C. Martin
Working Effectively with Legacy Code
by Michael Feathers
The Practical Guide to Defect Prevention
by Marc McDonald; Robert Musson; Ross Smith
"Being a certified bibliophile and a professional geek, I have more shelf space devoted to books on software methods than any reasonable human should possess. Balancing Agility and Discipline has a prominent place in that section of my library, because it has helped me sort through the noise and smoke of the current method wars."
--From the Foreword by Grady Booch
"This is an outstanding book on an emotionally complicated topic. I applaud the authors for the care with which they have handled the subject."
--From the Foreword by Alistair Cockburn
"The authors have done a commendable job of identifying five critical factors--personnel, criticality, size, culture, and dynamism--for creating the right balance of flexibility and structure. Their thoughtful analysis will help developers who must sort through the agile-disciplined debate, giving them guidance to create the right mix for their projects."
--From the Foreword by Arthur Pyster
Agility and discipline: These apparently opposite attributes are, in fact, complementary values in software development. Plan-driven developers must also be agile; nimble developers must also be disciplined. The key to success is finding the right balance between the two, which will vary from project to project according to the circumstances and risks involved. Developers, pulled toward opposite ends by impassioned arguments, ultimately must learn how to give each value its due in their particular situations.
Balancing Agility and Discipline sweeps aside the rhetoric, drills down to the operational core concepts, and presents a constructive approach to defining a balanced software development strategy. The authors expose the bureaucracy and stagnation that mark discipline without agility, and liken agility without discipline to unbridled and fruitless enthusiasm. Using a day in the life of two development teams and ground-breaking case studies, they illustrate the differences and similarities between agile and plan-driven methods, and show that the best development strategies have ways to combine both attributes. Their analysis is both objective and grounded, leading finally to clear and practical guidance for all software professionals--showing how to locate the sweet spot on the agility-discipline continuum for any given project.
0321186125B10212003
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 15 Ratings
A guide for the perplexed, but adds to the perplexity in some aspects - 2007-07-06
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Great text. I really enjoyed reading this book by Boehm and Turner. Especially enjoyable was reading Grady Booch's comment in his forward that "there's a delightful irony in the fact that the very book you are holding in your hands has an agile pair of authors yet requires three times as many forewards as you'd find in any normal book". The material of this text is centered around the dimentions affecting method selection that the authors provide as the five critical factors involved in determining the relative suitability of agile or plan-driven methods in specific project situations. In most situations, the authors indicate that some mix of these methods will be needed after risk assessments are performed for each of the five factors. The radar plots provided that depict different levels of these five factors for example projects aid in understanding how projects differ. What is unfortunate is that the metrics for each of these factors (personnel, dynamism, culture, size, and criticality) are not explained well. Size, the number of personnel working on any given project, is the only concrete metric. However, I think the reader needs to understand that determining the level of each of the other four factors is really not meant to be exact. In fact, the presentation by the authors of various projects, although sometimes a bit detailed for the subject matter, help in the understanding that these metrics are relative. For example, unless personality tests are administered to all project personnel, it can be quite difficult to determine the level of Culture (the percent who thrive on chaos versus order), but guestimating an approximate level for this factor is probably good enough to get a sense whether agile or plan-driven methodologies are more appropriate. Of the first few chapters of the text, I think the first two chapters that provide a background to the balancing agility and discipline problem are the most effective, followed by the chapter six summary chapter that lists the top conclusions of the discussion. The appendixes to this book, which comprise almost one-third of the text, are also very informative. Thirteen software development methodologies are presented side-by-side in Appendix A to enable the ability to compare each, although admittedly some of the methodologies are covered more extensively than others. And in Appendix E, some interesting industry statistics are presented from various studies, including a discussion on how much architecting is enough for a particular project, although there is some overlap with the well-written, thorough, recently-released text by McConnell called "Software Estimation: Demystifying the Black Art" (see my review). Overall, this book fits a gap on the software development bookshelf, and I am sure that other works of this genre will be released by other authors over the next couple years, as writing on this subject matter is still in its infancy.
A very pragmatic book - 2009-08-13
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
This book was written in 2004 by Barry Boehm and Richard Turner, but the fact that it is already on its 6th reprint tells something about its value. This is a very pragmatic book that tries to put in perspective agile and plan-driven software development approaches. By the way, the funny thing is that the word "waterfall" is rarely mentioned in the book. This may be due to its negative connotation and also to the fact that Barry Boehm favors a spiral approach. The book has also adopted a clever structure with a first "quick-read" part of 150 pages that provide the core of the material and then 100 pages of appendixes to treat some parts more specifically.
After a comparison of agile and plan-driven approaches, the book illustrates its vision of these two processes by presenting two project case studies. It offers also a risk-based approach for making methodology decisions that integrate agile and plan-driven practices. Even the book is not recent, it has the advantage of confronting agile and plan-driven approaches in a relatively objective way. Therefore, it is a very recommended reading for people that want to improve their software development process without wanting necessarily to be a "purist" of a particular approach. It is also a book where people that have already made their choice will be able to consider the "other" software development process with a different view and also gain a better insight on their own strengths and weaknesses.
Great Book- Someone Actually Trying to Validate Rather then Sell - 2008-11-07
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I don't think most people understand how hard it is to product a book like this. People are happy to sell their methodology, and promote their views and experiences, but it's all anecdotal. This book is a dig for hard facts. I hope it's updated regularly with newer data.
One reviewer asked for more of a practitioner approach. Wow, what a waste that would have been. This book is geared to looking at the outputs of what practitioners are doing. To actually present a methodology would have been bizarre.
Dry and academic? Not for me. I so desperately wanted some bloody facts to counter all the hype, I would have been angry at anything but a measured, fact-focused book.
It's a shame that academics are more tightly integrated with practice. At least our fads would be fact based.
Flawed But Helpful - 2008-07-05
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I like the pragmatic tone of the book, its structure, "day in the life" pictures, case studies, and conclusions. Yet the authors indulge some Agile misconceptions and their case is riddled with straw man argumentation.
Right from the start they set up a false dichotomy between agility and discipline, as if Agile is not a discipline or not disciplined--the authors define discipline as "process mastery, preparation, and courage." Agile done right is all this. And who hasn't seen undisciplined "discipline" (process-heavy approaches is what the authors intend here).
The key to success, they argue, is balancing agility and discipline--what Agilist wouldn't agree?--by using their "risk-driven approach" as a "pragmatic means of reconciling the strengths and weaknesses of disciplined and agile methods." This requires assessing project personnel, criticality, size, culture, and dynamism to customize an agile-discipline hybrid that minimizes risks.
Most Agilists I know are pragmatists, not purists, and do, in fact, use hybrids as needed. The "risk-driven approach" advocated here is a helpful way to quantify the risks and work towards a hybrid. But one caution: "Balancing agile and plan-driven methods requires exceptional people." Agreed, and the authors admit that because you need, and therefore find, more exceptional people in an Agile environment, you're more likely to find success by scaling Agile up than by paring plan-driven methods down.
Other helpful points of clarification for "the perplexed:"
- Agile is an "adaptive rather than predictive mind set."
- "Agile is `planning driven,' rather than `plan-driven.'"
- Agile defines quality as customer satisfaction vs. "specification and process compliance."
- Agile's rapid growth and adoption is due to today's dynamic business environment and to "the resurgence of the philosophy that programming is a craft rather than an industrial process"
- "Personnel turnover is a project's number one risk."
Examples of straw man argumentation:
- "The approaches have become adversarial." I've seen some healthy debate but most practitioners are looking for common ground.
- "The primary difference between agile and plan-driven development practices deal with the design and architecture of the software. Agile methods advocate simple design, one that emerges as functionality is implemented." The authors spill a lot of ink demonstrating that simple may not be sufficient. Yet just a few pages earlier they point out: "Agilists speak of a `mentality of sufficiency'--doing only what is necessary." "Simple," then, actually means "sufficient" to the experienced Agilist.
- The authors point out that Agile refactoring risks turning into costly redesign. And a plan-driven approach, where quality is defined as compliance to outdated specs and rework is common, improves on this how? Later they admit that Agile done right looks at each user story in context of the big picture.
- They complain that getting all the stories done and integrated--particularly "tasks that fall between story cards"--often requires "police" action that "conflicts with agile philosophies." What they call "police" action I call "management" action and, yes, I admit it is often required.
All in all, this book is recommended as it adds to the conversation and moves it in the right direction: whatever works! We've got too much work to do for infighting.
Addressing the "Plan-Driven X Agile" software development discussion in an unbiased way - 2008-05-27
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Finally a book that addresses the discussion between plan driven and agile software development methods in an unbiased and fair way. I was already tired of reading about "agile silver bullets", when finally I came to read this book. After all, this is written by Dr. Barry Boehm, another category of author than the Agile crew.
Don't adopt software development methodologies blindly, read this book first.
Top Level Categories:
Software Engineering
Sub-Categories:
Software Engineering > Process
Some information on this page was provided using data from Amazon.com®. View at Amazon >