SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
"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.
Foreword by Grady Booch.
Foreword by Alistair Cockburn.
Foreword by Arthur Pyster.
Preface.
Acknowledgments.
Prelude.
1. Discipline, Agility, and Perplexity.
The Sources of Perplexity.
Multiple Definitions.
Distinguishing Method Use from Method Misuse.
Overgeneralization Based on the Most Visible Instances.
Claims of Universality.
Early Success Stories.
Purist Interpretations.
Clarifying Perplexity.
The Two Approaches.
Plan-Driven Methods.
Agile Methods.
Finding Middle Ground.
Application Characteristics.
Primary Goals.
Size.
Environment.
Management Characteristics.
Customer Relations.
Planning and Control.
Project Communication.
Technical Characteristics.
Requirements.
Development.
Testing.
Personnel Characteristics.
Customers.
Developers.
Culture.
Summary.
Home Grounds.
Misconceptions.
Five Critical Factors.
Typical Days.
A Typical Day Using PSP/TSP.
A Typical Day Using Extreme Programming.
Crisis Days.
A Crisis Day with TSP/PSP.
A Crisis Day with XP.
Summary.
Differences.
Similarities.
Observations.
Using Plans to Scale Up Agile Methods: Lease Management Example.
Assumption 1: The Effort to Develop or Modify a Story Does Not Increase with Time and Story Number.
Assumption 2: Trusting People to Get Everything Done on Time Is Compatible with Fixed Schedules and Diseconomies of Scale.
Assumption 3: Simple Design and YAGNI Scale Up Easily to Large Projects.
Agile Methods Scaleup: Summing Up.
Using Agility to Streamline Plan-Driven Methods: USAF/TRW CCPDS-R Example.
Individuals and Interactions over Processes and Tools: CCPDS-R.
Working Software over Comprehensive Documentation: CCPDS-R.
Customer Collaboration over Contract Negotiation: CCPDS-R.
Responding to Change over Following a Plan: CCPDS-R.
Summary.
An Overview of the Method.
An Example Family of Applications: Agent-Based Planning Systems.
An Intermediate Application: Supply Chain Management.
Step 1: SupplyChain.com Project Risk Ratings.
Step 2: Compare the Agile and Plan-Driven Risks.
Step 4a: Individual Risk Resolution Strategies.
Step 4b: Risk-Based Strategy for SupplyChain.com System Development.
Small Application: Event Planning.
Step 1: Event Planning Project Risk Ratings.
Step 2: Compare the Agile and Plan-Driven Risks.
Steps 4a, 4b: Risk-Based Strategy for Event Planning System Development.
Very Large Application: National Information System for Crisis Management (NISCM).
Step1: NISCM Project Risk Ratings.
Step 2: Compare the Agile and Plan-Driven Risks.
Steps 3 and 4: Risk-Based Strategy for NISCM System Development.
Summary.
The Top Six Conclusions.
No Agile or Plan-Driven Method Silver Bullet.
Agile and Plan-Driven Method Home Grounds.
Future Applications Will Need Both Agility and Discipline.
Balanced Agility-Discipline Methods Are Emerging.
Build Your Method UpÑDonÕt Tailor It Down.
Focus Less on MethodsÑMore on People, Values, Communication, and Expectations Management.
What Can You Do Next about Balancing Agility and Discipline?
Steps toward Balancing Software Development Agility and Discipline.
Afterword.
Scrum.
Thumbnail Sketch.
Comments.
References.
Adaptive Software Development (ASD).
Thumbnail Sketch.
Comments.
References.
Lean Development (LD).
Thumbnail Sketch.
Comments.
References.
Crystal.
Thumbnail Sketch.
Comments.
References.
eXtreme Programming (XP).
Thumbnail Sketch.
Comments.
Reference.
Dynamic Systems Development Method (DSDM).
Thumbnail Sketch.
Comments.
References.
Rational Unified Process (RUP).
Thumbnail Sketch.
Comments.
References.
Team Software Process (TSP).
Thumbnail Sketch.
Comments.
References.
Feature-Driven Development (FDD).
Thumbnail Sketch.
Comments.
References.
Capability Maturity Model Integration (CMMI).
Thumbnail Sketch.
Comments.
References.
Capability Maturity Model for Software (SW-CMM).
Thumbnail Sketch.
Comments.
References.
Personal Software Process (PSP).
Thumbnail Sketch.
Comments.
References.
Cleanroom.
Thumbnail Sketch.
Comments.
References.
Method Comparison Table.
Principles behind the Agile Manifesto.
A Short History of CMMs.
CMM Concepts.
Using Models to Improve Processes.
D1. The Spiral Model Anchor Point Milestones.
D2. Benefits Realization Analysis and the DMR Results Chain.
Benefits Realized.
Results Chain.
D3. Schedule as an Independent Variable.
Shared Vision and Expectations Management.
Feature Prioritization.
Schedule Range Estimation.
Architecture and Core Capability Determination.
Incremental Development.
Change and Progress Monitoring and Control.
E1. The Cost of Change: Empirical Findings.
E2. How Much Architecting Is Enough? A COCOMO II Analysis.
E3. Experiments and Studies of Agile and Plan-Driven Methods.
Overall Distribution of Project Size.
Process Improvement.
Team Software Process and Agile Methods.
Pair Programming.
Hybrid Agile/Plan-Driven Methods.