Description

Copyright 2004

Dimensions: 7" x 9-1/4"

Pages: 304

Edition: 1st

Book

ISBN-10: 0-321-18612-5

ISBN-13: 978-0-321-18612-6

"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.

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.

6. Conclusions.

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.

Appendix A. Comparing the Methods.

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.

Appendix B. Manifesto for Agile Software Development.

Principles behind the Agile Manifesto.

Appendix C. Capability Maturity Models.

A Short History of CMMs.

CMM Concepts.

Using Models to Improve Processes.

Appendix D. Tools for Balancing.

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.

Appendix E. Empirical Information.

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.

Notes.

References.

Index.

Preface

Why We Wrote This BookTrue believers represent software development alternatives

In the last few years, two ostensibly conflicting approaches to software development have competed for hegemony. Agile method supporters released a manifesto that shifts the focus from traditional plan-driven, process-based methods to lighter, more adaptive paradigms. Traditional methods have reasserted the need for strong process discipline and rigorous practices. True believers on both sides have raised strident, often antagonistic, voices.

This book is for the rest of us

We wrote this book for the rest of usthose caught in the middle of the method wars simply trying to get our projects completed and accepted within too-tight schedules and budgets. We hope to clarify the perplexity about the roles of discipline, agility, and process in software development. We objectively compare and contrast the traditional, plan-driven approaches to the newer, agile approaches and present an overview of their home grounds, strengths, and weaknesses. We then describe a risk-based approach to aid in balancing agility and discipline within a software development project.

Our goal is to help you in your business environment

We hope that this is a practical book. It is intended to be neither academic nor exhaustive, but pragmatic. It is based on our own development experiences, current and past literature, long conversations with proponents of agile and plan-driven approaches, teaching students how to balance discipline and agility, and years of observing and measuring software development in industry, government, and academia. We discuss the subject matter absent a need to choose sides. Our goal is to help you gain the understanding and information you need to integrate the approaches in a manner that best fits your business environment.

Who Should Read This Book The perplexed—or just curious

This book is for perplexed software and management professionals who have heard the buzz about agile methods and want to separate the chaff from the wheat. Perhaps you have a CMM- or ISO-certified organization and want to know if and how agile methods can help you. Or perhaps some part of your organization has adopted agile methods and you are unsure of how they should fit in. Fundamentally, if you need to understand how the latest software development approaches can help meet business goals, this book is for you.

Software project managers and mid-level executives should read this book to understand the agility/plan-driven controversy and learn how best to apply the new approaches in your organizations.

Software developers should read this book to better understand how your field is evolving and what it means for your career.

Computer science and software engineering students should read this book to better understand how to make choices about your own level of discipline, both in school and at work.

Academicians should read this book to understand some of what your students are asking about, and how to help them make informed decisions.

Proponents of both agile and plan-driven methods should read this book to dispassionately look at your opponents ideas.

CIOs and CEOs should read this book to help you understand whats going on in the software world and what implications it may have for your company.

How To Read This Book Several ways to read the book

Most of you are busy people, and "must-read" material attacks you from all sides, 24/7. Some of you want to quickly assess the material for later reflection. Others want to know how to implement the concepts we present. For that reason, weve tried to make this book easy to read quickly but with pointers to more in-depth material.

In a hurry? Use the fast track for a quick overview

If time is short, use the fast track summaries to scan the total content of the book, stopping to read things you find interesting or particularly applicable to your needs, and following the icons for specific technical information. If you find you need even more detailed material, there are references as well as a list of additional resources in Appendix F.

First and last chapters are key

You can also tailor your reading through chapter selection. Reading the first and last chapters gives a pretty good idea of the material at a familiarization level. You can read the chapters in any order. Here is a quick summary:

The first chapter sets the stage for what follows. It introduces the main points and provides an executive summary of the book.

Chapter 2 compares the agile and plan-driven approaches and provides insight into the type of projects where each has been most successful—their home grounds.

Chapter 3 provides an experiential introduction to the approaches by describing how both a typical and not-so-typical day might be spent using each.

Chapter 4 presents two project case studies that illustrate the limits of pure agile and pure plan-driven implementations and the benefits of integrating the approaches.

Chapter 5 describes a risk-based approach for making methodology decisions that integrate agile and plan-driven practices, and illustrates it with representative examples.

Chapter 6 summarizes the material and offers some final observations.

Appendix A provides top-level descriptions of the major agile and plan-driven methods, highlighting their primary distinguishing factors, and a summary of those factors for comparison.