Chapter 1 Introduction to Agile Objectives: Define Agile software development Explain differences and similarities between various lightweight methodologies Learn the core principles of Agile Dispel common myths about agility Copyright Intertech, Inc 2014 Rev: 2 1-1
Introduction to Agile Chapter Overview Agile software development can easily be misunderstood. There are various lightweight methodologies that comprise agility. All of these methodologies adhere to the same core principles, initially defined in the Agile Manifesto. This chapter will define what agile is and is not. This chapter will also describe the smiliarities and differences between various lightweight development methologies. Finally, this chapter will review how all of these follow the core principles of Agile software development.. 1-2 Copyright Intertech, Inc 2014 Rev: 2
IIntroduction to Agile Defining Agile Software Development Agile software development is a set of practices and principles intended to enable a cohesive team to deliver valuable, working software as quickly as possible. It emphasizes delivering valuable software as defined by the customer and stresses creating a cohesive team. There are a variety of lightweight methodologies all under the umbrella of agile. Scrum Extreme Programming (XP) Lean KanBan Behavior Driven Development (BDD) There is no right or wrong way to use agile but there are core principles to ahere to. The Agile Manifesto is a statement of values and principles that guide agile software development. Leaders in various lightweight software methodologies gathered for a weekend in early 2001. They discussed ideas around improving software development teams. They talked about challenges in most development projects. They agreed on the values in the Agile Manifesto, found at: www.agilemanifesto.org. In the list below, the items are the left are considered more valuable than the items on the right. Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Copyright Intertech, Inc 2014 Rev: 2 1-3
Introduction to Agile The manifesto can be summarized into these three principles: Short feedback loops Teamwork and collaboration Inspect and adapt Scrum has three simple roles and plays by simple rules (www.scrumalliance.com). The focus is on delivering high valuable software as quickly as possible. The build team does work in Sprints, often 2-4 weeks long. A Scrummaster leads the team through various ceremonies. The Product Owner defines and prioritizes features. 1-4 Copyright Intertech, Inc 2014 Rev: 2
IIntroduction to Agile Extreme Programming (XP) is focused on a set of development practices that lead to high quality code. Kent Beck created it while working on the Chrysler Comprehensive Compensation (C3) system in 1996. A few of the technical practices are: Pair programming Small, co-located teams Test driven development (TDD) It was designed to take coding best practices to the extreme. Lean is focused on reducing waste in your processes. It s a set of manufacturing concepts applied to software development. It emphasizes building quality into your system. KanBan is a way to manage flow through a system. It s derived from the Toyota production system. It provides visual indicators to the team about where work is at in the process. Behavior Driven Development is used to development a common language between technology and the business. There is often little upfront design. It emphasizes everything in the system having business value. Test cases are written in business language terms. Testing tools include Cucumber, FitNesse and JBehave. Copyright Intertech, Inc 2014 Rev: 2 1-5
Introduction to Agile There are many common myths about agile. Some of these include: It is an excuse for cowboy coding. There is no documentation. There are no written requirements. There are lots of meetings. Developers must pair program. There is little or no structure to the process. Requirements can change all the time. 1-6 Copyright Intertech, Inc 2014 Rev: 2
IIntroduction to Agile Agile Terminology These are the most common agile terms along with some variations specific to the Scrum methodology. Iteration (Sprint) User Stories Acceptance Criteria Spike Product Backlog Grooming the Backlog Daily Stand-up (Scrum) ScrumMaster Coach Product Owner Story Sign-off Done Copyright Intertech, Inc 2014 Rev: 2 1-7
Introduction to Agile Agile Roles There are typically three roles on agile teams. Product Owner responsible for defining the product and prioritizing the features. They must accept or reject each user story. Build Team the developers and testers. Coach - guides team to discover how best to implement agile principles. Who leads the meetings? Anyone on the team. Agility is about empowering the team. How do managers fit in? They help the team keep the big picture in mind. They manage release dates and expectations with external stakeholders. They manage budgets and resources. A command and control managerial style doesn t work well on agile teams. What s a Scrummaster? It is a specific role in the Scrum methodology. A Scrummaster focuses on leading the meetings and shielding the team from external interferences. Some teams combine the role of Scrummaster and coach. 1-8 Copyright Intertech, Inc 2014 Rev: 2
IIntroduction to Agile A Visual Representation of An Agile Project This is a graphical representation of all aspects of an agile project. Copyright Intertech, Inc 2014 Rev: 2 1-9
Introduction to Agile Chapter Summary Agile software development is a set of principles to enable teams to deliver high quality, valuable, working software as quickly as possible. The first principle is short feedback loops. The second principle is teamwork and collaboration. The third principle is inspect and adapt. The principles are more important than the practices. There are typically three roles on agile teams: product owner, build team, and coach. The agile process is very structured. It includes various levels of planning and opportunites to inspect and adapt at each phase. 1-10 Copyright Intertech, Inc 2014 Rev: 2