What is Agile software development, and what does it mean when someone says, “Our team used Agile to develop to software”? In our experiences, we have encountered many people who can tell you about some of the Agile tools they have heard about or experienced, such as Scrum meetings or paired programming, but few touch on the fact that it is a fundamentally different approach to creating software.
Over the last several years, we were both teaching entry-level Agile software development courses—Sondra was teaching graduate students at Iowa State University, and Kristin was training her staff at her company—and we struggled to find a basic book on Agile software development that we could use in a classroom setting. When we met while doing volunteer work for a local technology nonprofit organization, we discovered that we were facing very similar challenges in finding the right book. It was that conversation that sparked the idea of writing our own book on Agile methods.
Our introductions to Agile were similar: We both were managing software development teams that were accustomed to using the more traditional method of software development called “Waterfall,” and we took on the challenge of implementing some of the Agile software development tools into our projects, with the ultimate goal of becoming Agile software development organizations. Although we both jumped in and learned all we could about Agile software development, we quickly realized that Agile is a lot more than training people on new tools and methodologies. It did not take long to understand that our organizations had to make a cultural shift to become Agile, which introduced many more challenges than we had anticipated. The transition to Agile was not a destination, as our executive teams had predicted, but rather a journey that is constantly evolving based on the lessons we have learned, or retrospectives in Agile terminology.
We firmly believe that Agile methods offer very real benefits for the world of software engineering. Our goal is not to provide you with a comprehensive collection of everything there is to know about Agile software development, but rather to provide you with the basics you need to know to get started. Alistair Cockburn, who is featured in Chapter 3, applies the Aikido term “ShuHaRi,” meaning “to learn a skill or technique,” to the process of learning Agile methods. First you are in the “Shu” phase, when you must mimic your teacher precisely to master the basics. Next is “Ha,” where you start to learn from other teachers that help you build on your skills, and you begin to gain knowledge about the history and theoretical basis for the technique. Finally, you reach the “Ri” phase, where you become the teacher and make new contributions to the technique. It is our hope that after reading this book, you are well on your way to the “Ha” stage.
We start by introducing you to the history of Agile software development, then build on the tools and techniques that are common in most Agile organizations. We end by discussing how the process comes together to launch new and exciting products to the marketplace. We have included interviews with practitioners to give you a sense of what happens in organizations that have adopted Agile methods. Each chapter concludes with a summary, suggestions for additional reading, and review questions.
The following is a brief introduction to the information you will find in each chapter:
- Chapter 1—The History and Value of Agile Software Development
This chapter provides the background of the Agile movement and compares Agile to the more traditional Waterfall methodology. We explore the use cases for both Waterfall and Agile and explain the pros and cons of each. The chapter introduces the Agile Manifesto, its values, and its authors. We review the 12 key principles of Agile and introduce a fictitious company, Cayman Design, that is used for example purposes throughout the book. We include an interview with Robert (Uncle Bob) Martin.
- Chapter 2—Organizational Culture Considerations with Agile
Moving from Waterfall to Agile requires a cultural transformation, and this chapter delves into the impacts, benefits, and pitfalls. We explore the Agile transformation from the viewpoint of a team member, manager, and executive to help readers understand how roles and decision-making processes will change. Our interview with Scott Ambler brings the concepts together.
- Chapter 3—Understanding the Different Types of Agile
This chapter describes the different Agile methodologies: Scrum, Kanban, Extreme Programming (XP), Crystal, feature-driven development (FDD), Lean software development, and the Dynamic Systems Development Method (DSDM). We provide descriptions and examples of when each methodology will work best. We outline the available certifications for each methodology. An insightful interview with Alistair Cockburn is also included.
- Chapter 4—Describing the Different Roles
This chapter provides roles and responsibilities for the various titles prominent in the different Agile methodologies. We start with a deep dive into Scrum and explore the nuances of roles such as product owner, Scrum master, and Scrum team. We then compare and contrast those roles with each of the methodologies described in Chapter 3 and specifically reference the commonalities. In addition to the standard descriptions, we explore how the different roles are deployed within organizations. This chapter includes compelling interviews from Roman Pichler and Lyssa Adkins.
- Chapter 5—The New Way to Collect and Document Requirements
This chapter focuses on the front end of the Agile process, where customer and market feedback is incorporated into meaningful requirements. It addresses terms and ideas such as user stories, epics, acceptance criteria, understanding and measuring business value, prioritization, roadmaps, and burn-up charts. We also show how requirements can be enhanced with elements such as personas and usability. We dive into communication strategies and, finally, explore how Lean software development and the Lean start-up movement affect requirements. Our interview with Ellen Gottesdiener and Mary Gorman includes great insights.
- Chapter 6—Grooming and Planning
As the development process progresses, requirements/user stories are “groomed” into usable input for the development teams. The requirements are prioritized, and we present several strategies for prioritization. The size of the user stories is estimated using a variety of techniques, including story points. Once the estimating is complete, the Sprint planning or XP planning game begins, incorporating the velocity of the team, current business conditions, and the amount of things such as technical debt and bugs. We explore the theory of triple constraints (scope vs. time vs. resources) and how the management of these can affect the development progress. Our interview with Mike Cohn showcases his breadth of experience in the practical application of Scrum.
- Chapter 7—Testing, Quality, and Integration
This chapter explains how quality can be maintained and even enhanced using Agile tools. One of the key tenets of Agile is “frequent verification and validation” of working software, so we devote this chapter to different testing approaches, such as test-driven development, acceptance test-driven development, integrated testing, regression testing, and unit testing. We provide a complete example of test-driven development, including code references. Our interview with Tim Ottinger rounds out all of the testing information.
- Chapter 8—Tracking and Reporting
This chapter emphasizes the importance of tracking and reporting progress in the Agile process. To understand the tracking process, we define the necessary meetings such as the daily stand-up, Sprint review/demo, and Sprint retrospectives. We also dive into Kanban, because the tracking of a Kanban project is quite different. We demonstrate tools such as burn-up and burn-down charts and parking lots used in feature-driven development. We discuss how to measure success within Agile, including the ever-important metric of customer satisfaction. We conclude with an interview with Agile coach Kent McDonald.
- Chapter 9—Agile beyond IT
This chapter explains how the implementation of Agile affects far more than the IT organization; the entire launch process for new products or enhanced features is now different and applying the four Agile values enhances the ability to deliver to the marketplace. We also showcase how the Agile principles can be applied to other organizations outside IT. Some in Marketing have adopted Agile quite thoroughly, even creating the Agile Marketing Manifesto. Our interview with Travis Arnold, one of the creators of the Agile Marketing Manifesto, completes the chapter.
- Appendix—John Deere Case Study
The appendix presents an interview we conducted with three leaders at John Deere’s Intelligent Solutions Group, who have helped lead their journey to become a more Agile organization.
We sincerely hope you enjoy exploring the world of Agile software development. We welcome your feedback and encourage you to visit our web site or follow us on Twitter for more information on Agile.
Sondra Ashmore, Ph.D., PMI-PMP/ACP
Kristin Runyan, PMI-PMP, CSPO, CSM