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 us—those 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 subjectmatter 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 opponent’s ideas. CIOs
and CEOs should read this book to help you understand what’s 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, we’ve 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. Appendices B-E provide technical and background
information to support our analyses and speak to specific technical topics.
Appendix F supplies references and the endnotes are listed by chapter in
Appendix G.