What is Agile Project Management?
Agile project management has been defined as short cycles of product development that deliver incremental updates of the product rapidly based on the changing needs of the customer. This methodology is the opposite of waterfall project management, which values extensive planning and pre-production.
The agile approach consists of a number of stages including rapid iterative planning and development cycles allowing a project team to constantly evaluate the project and obtain immediate feedback from users or stakeholders allowing the team to learn from their experiences after each cycle. After the streamlined planning requirements, definition and solution design phase is completed to get the project underway iterations or more detailed planning requirements are created. This allows for immediate modifications of the product as customer views change. Agile project management requires a dedicated full time team including a customer or end users.
Agile project management differs to traditional project management in the approach; agile promotes self managed teams with the project manager taking more of a leaders role rather than a managers role. The main priorities of an agile project manager are to gather all the information from stakeholders and integrate a plan, advise the team of estimates, make decisions, build and sustain a team’s culture and ensure teams stick to the process, customer relationship, check progress and plans and to communicate the teams progress.
The key elements that provide the basis for agile project management are; visual control, co located high performing teams, test driven development, adaptive control, collaborative development, feature driven development, leadership and collaboration, a move from cost to revenue focus and lessons learned. Vision control assists teams in organizing work in projects. Publishing time plans and progress charts allow the team to view the projects the same way and to clearly see where the project is at. Co located high performing teams greatly increases the quality of coordination and communication. Project managers need to have everyone working together in a collaborative manner. Agile teams develop test plans and at the same time they define requirements. If a requirement isn’t testable then it is not fully developed. Adaptive Control tries to have everyone on the team adapting to different situations. The project manager acts a leader not a task manager, they work with the team establishing working relations and setting the team ground rules. Agile team members have to be able to continuously adapt to improve their methods as lessons learned from previous cycles are incorporated into the next iteration. Collaboration is needed among all team members to get the best results from the team, they also need to document feedback and implement learning’s on the next iteration. Feature driven development greatly reduces complexity and allows teams to focus on one feature at a time. Leadership and collaboration rather than command and control facilitate leadership in a team rather than traditional management. The project manager aims to remove and resolve any problems the agile team encounters. The business analysts manage the business benefits of the project and continuously focus the agile team on the business needs. The move from cost to revenue focus features prioritize based on value such as increased revenue to market share. The lessons learned program is completed after each cycle here the teams hold a lessons learned session to determine where improvements can be made for the next iteration. The team adapts to how members work together to improve the team performance.
Five Stages of Agile Project Management
With agile project management the focus is on continuous innovation to deliver project requirements. The product should also be adaptable to facilitate future customer requirements. Agile also strives to have both people and process adaptability to respond rapidly to product and business change. It focuses more on revenue than cost so that that the project supports business growth and profitability.
Highsmith (2009) one of the founders of the agile alliance published, “Agile project management: creating innovative products”, in this he identified five stages of agile project management. Highsmith defined the five stages of agile project management as:
- Envision: How to determine the product vision, the project objectives and constraints, the project community and how the team work together.
- Speculate: Developing a capability and or feature based release plan to deliver on all aspects of the vision
- Explore: To plan and deliver project running tested stories in a short iteration, constantly seek to reduce the risk and uncertainty of the project.
- Adapt: Review the delivered results, the situation and the teams’ performance and adapt as necessary.
- Close: Conclude the project, pass on the key learning’s’ and celebrate.
This phase creates a vision for the project team that covers what, who and how. If there’s no vision phase, this means that the rest of the properties of agile project management are a wasted effort. The envision phase is a critical success factor early in any project. Team members need a vision to determine who will be involved, customers, members, management, stake holders and envision how to work together as a group. The purpose of the envisioning phase is to clearly identify what is to be done and how work is to be accomplished. The envision stage has four practices, product vision, project objectives and constraints, project community and approach. Product vision allows member of the team to fully understand their project. Teams should have a clear product vision and the product vision should be revisited regularly. Project objectives include a project data sheet, this is a single-page summary of key business and quality objectives, product capabilities, and project management information. A project data sheet contains clients, customers, project leader, product manager, executive sponsor and the project objective statement. The project objective statement includes the capabilities, quality objectives and risks that can impact on the project. The project community includes getting the right people for the job. In Agile project management the team members need to have an appropriate technical ability, be team players and be self disciplined. The final step in the product vision stage is how the team will deliver the product, between working as a team with developers and major stakeholders in the project. For large projects a meeting is usually needed to discuss the product vision. After the envision phase the team has reviews to ensure they fully understand the vision.
The speculate phase consists of gathering initial based requirements for a product and defining a workload as a backlog of product features. In the speculative phase, the team design their iterations. Iterations are the planned stages of work in the project and each iteration has a timeline and a plan. The agile plan is to have a product at the end of each iteration. This would involve the stories, tests, and documentation being packaged to be deployed. Iterations are used to concentrate on small pieces of work that depend on the type of project being completed. Estimating project costs and generating administrative and financial information are also done in this phase. Within the speculate phase plans have to be able to adapt to change as customers understanding of their requirements change, work efforts vary and people can leave or join teams. This phase establishes a target and a direction for the team. During this phase the team should have an understanding of the product structure, and the release plan. Agile project speculating helps the project team to answer some of the following questions.
- Determine how the product and its features will evolve in the current release
- Balance anticipation with adaptation as the project unfolds
- Focus on the highest-value features early in the project
- Think about the business goals, project objectives, and customer expectations
- Provide necessary cost and schedule information to management
- Coordinate interrelated activities and features across teams
- Consider alternatives and adaptive actions
- Provide a baseline for analyzing events that occur during the project
Agile project management focuses on agile leaders tasks of creating self organizing, self disciplined teams that deliver products. Iteration management covers planning and management during iteration cycles. The main explore activities are iteration planning and monitoring, technical practices and project community. Iteration planning and monitoring consists of three main activities: iteration planning, workload management, and monitoring iteration progress. The primary responsibility for managing this work lies with the iteration manager. The iteration manager may also facilitate meetings such as retrospectives held at the end of each iteration, several practices can be applied generically to many types of products-both hardware and software. These generic technical practices are driven by the desire to keep quality high and the cost of change low. The four most common technical practices are simple design, continuous integration, ruthless automated testing, and refactoring.
In the adapt phase the results are reviewed from customer, technical, people and process performance, and project status perspectives. The analysis looks at the actual versus planned project. The results of adaptation are fed into a re-planning effort to begin the next iteration. After the envision phase, the loop will be speculate, explore and adapt with each iteration successively refining the product. Control and correction are common terms applied to this phase. Plans are made, results are monitored and corrections are made implying what plans were right and the actual results. Adapt implies modification or change rather than success or failure. In agile project management responding to change is more important than following a plan.
Projects are partially defined by the presence of both a beginning and an end. The key purpose of the close phase is the learning and the incorporation that learning into the work of the next iteration or passing it on to the next project team. This phase is the final step in the project, and is often overlooked. Finalizing documentation, support material release notes and financial material all have to be tidied up before a project can close. In software projects the project is usually archived for safe keeping. In agile project management when closing a project it is important to have a project retrospective. This helps the team learn about its dynamics and intra team learning activities. It also allows the team to talk about what went well in the project and where it hit obstacles.