Decoding Agile Methodology Overview
Agile project management focuses on continuous improvement, scope flexibility, team input, and delivering essential quality products. Agile project management approaches include scrum as a framework, extreme programming (XP) for building in quality upfront, and lean thinking to eliminate waste. These and many other tools and techniques help organizations, teams, and individuals adhere to the Agile Manifesto and the 12 Agile Principles, which focus on people, communications, the product, and flexibility.
A MANIFESTO FOR AGILE SOFTWARE DEVELOPERS
The Manifesto for Agile Software Development, commonly known as the Agile Manifesto, is an intentionally streamlined expression of the core values of agile project management. Use this manifesto as a guide to implement agile methodologies in your projects.
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work, we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
©Agile Manifesto Copyright 2001: Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas.
This declaration may be freely copied in any form, but only in its entirety through this notice.
THE 12 AGILE PRINCIPLES
The Principles behind the Agile Manifesto, commonly referred to as the 12 Agile Principles, are a set of guiding concepts that support project teams in implementing agile projects. Use these principles as a litmus test to determine whether or not you’re being agile in your project work and thinking:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity — the art of maximizing the amount of work not done — is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
THE AGILE PLATINUM EDGE ROADMAP TO VALUE
The Roadmap to Value is a high-level view of an agile project. The stages of the Roadmap to Value are described in the list following the diagram:
- In Stage 1, the product owner identifies the product vision. The product vision is a definition of what your product is, how it will support your company or organization’s strategy, and who will use the product. On longer projects, revisit the product vision at least once a year.
- In Stage 2, the product owner creates a product roadmap. The product roadmap is a high-level view of the product requirements, with a loose time frame for when you will develop those requirements. Identifying product requirements and then prioritizing and roughly estimating the effort for those requirements are a large part of creating your product roadmap. On longer projects, revise the product roadmap at least twice a year.
- In Stage 3, the product owner creates a release plan. The release plan identifies a high-level timetable for the release of working software. An agile project will have many releases, with the highest-priority features launching first. A typical release includes three-to-five sprints. Create a release plan at the beginning of each release.
- In Stage 4, the product owner, the master, and the development team plan sprints, also called iterations, and start creating the product within those sprints. Sprint planning sessions take place at the start of each sprint, where the scrum team determines what requirements will be in the upcoming iteration.
- In Stage 5, during each sprint, the development team has daily meetings. In the daily meeting, you spend no more than 15 minutes and discuss what you completed yesterday, what you will work on today, and any roadblocks you have.
- In Stage 6, the team holds a sprint review. In the sprint review, at the end of every sprint, you demonstrate the working product created during the sprint to the product stakeholders.
- In Stage 7, the team holds a sprint retrospective. The sprint retrospective is a meeting where the team discusses how the sprint went and plans for improvements in the next sprint. Like the sprint review, you have a sprint retrospective at the end of every sprint.
AGILE PROJECT MANAGEMENT ROLES
It takes a cooperative team of people to successfully complete a project. Agile project teams are made up of many people and include the following five roles:
- Product owner: The person responsible for bridging the gap between the customer, business stakeholders, and the development team. The product owner is an expert on the product and the customer’s needs and priorities. The product owner works with the development team daily to help clarify requirements and shields them from organizational noise. The product owner is sometimes called a customer representative. The product owner, above all, should be empowered to be decisive, making tough business decisions every day.
- Development team members: The people who create the product. In software development, programmers, testers, designers, writers, data engineers, and anyone else with a hands-on role in product development are development team members. With other types of product, the development team members may have different skills. Most importantly, development team members should be versatile, able to contribute in multiple ways to the project’s goals.
- Scrum master: The person responsible for supporting the development team, clearing organizational roadblocks, and keeping the agile process consistent. A scrum master is sometimes called a project facilitator. Scrum masters are servant leaders, and are most effective when they have organizational clout, which is the ability to influence change in the organization without formal authority.
- Stakeholders: Anyone with an interest in the project. Stakeholders are not ultimately responsible for the product, but they provide input and are affected by the project’s outcome. The group of stakeholders is diverse and can include people from different departments, or even different companies. For agile projects to succeed, stakeholders must be involved, providing regular feedback and support to the development team and product owner.
- Agile mentor: Someone who has experience implementing agile projects and can share that experience with a project team. The agile mentor can provide valuable feedback and advice to new project teams and to project teams that want to perform at a higher level. Although agile mentors are not responsible for executing product development, they should be experienced in applying agile principles in reality and be knowledgeable about many agile approaches and techniques.
AGILE PROJECT MANAGEMENT ARTIFACTS
Project progress needs to be transparent and measurable. Agile project teams often use six main artifacts, or deliverables, to develop products and track progress, as listed here:
- Product vision statement: An elevator pitch, or a quick summary, to communicate how your product supports the company’s or organization’s strategies. The vision statement must articulate the goals for the product.
- Product roadmap: The product roadmap is a high-level view of the product requirements needed to achieve the product vision. It also enables a project team to outline a general timeframe for when you will develop and release those requirements. The product roadmap is a first cut and high-level view of the product backlog.
- Product backlog: The full list of what is in the scope for your project, ordered by priority. After you have your first requirement, you have a product backlog.
- Release plan: A high-level timetable for the release of working software.
- Sprint backlog: The goal, user stories, and tasks associated with the current sprint.
- Increment: The working product functionality, demonstrated to stakeholders at the end of the sprint, which is potentially shippable to the customer.
AGILE PROJECT MANAGEMENT EVENTS
Most projects have stages. Agile projects include seven recurring events for product development:
- Project planning: The initial planning for your project. Project planning includes creating a product vision statement and a product roadmap, and can take place in as little time as one day.
- Release planning: Planning the next set of product features to release and identifying an imminent product launch date around which the team can mobilize. On agile projects, you plan one release at a time.
- Sprint: A short cycle of development, in which the team creates potentially shippable product functionality. Sprints, sometimes called iterations, typically last between one and four weeks. Sprints can last as little as one day, but should not be longer than four weeks. Sprints should remain the same length throughout the entire project, which enables teams to plan future work more accurately based on their past performance.
- Sprint planning: A meeting at the beginning of each sprint where the scrum team commits to a sprint goal. They also identify the requirements that support this goal and will be part of the sprint, and the individual tasks it will take to complete each requirement.
- Daily scrum: A 15-minute coordination and synchronization meeting held each day in a sprint, where development team members state what they completed the day before, what they will complete on the current day, and whether they have any roadblocks.
- Sprint review: A meeting at the end of each sprint, introduced by the product owner, where the development team demonstrates the working product functionality it completed during the sprint to stakeholders, and the product owner collects feedback for updating the product backlog.
- Sprint retrospective: A meeting at the end of each sprint where the scrum team inspects and adapts their processes, discussing what went well, what could change, and makes a plan for implementing changes in the next sprint.