Dr. Darnell’s Class Notes
Dr. Darnell’s Class Notes
MGT6515 Agile Frameworks Summer 2023 Week 4
Competency: The Envision-Speculate-Explore-Adapt-Close Agile Delivery Framework
Jim Highsmith is a notable figure in the agile software development community, and he developed the Agile Project Management (APM) model, designed to manage and track the progress of complex projects.
Highsmith's model differs from traditional project management models because it values individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan (Highsmith, 2009).
The Agile Project Management model is divided into five phases:
?? Envision: During this phase, the high-level vision and direction of the project are established. It includes forming the project team, identifying the project community, creating an initial product vision, and establishing the broad context for the project.
? Speculate: In this phase, the project team develops a feature-based plan. The team and customer collaboratively decide which features are the most important and which ones will be developed first. This plan is expected to change over time and is not rigid and inflexible like traditional plans.
??Explore: During the exploration phase, the team builds and delivers the product, focusing on the highest priority features. This phase is iterative, and at the end of each iteration, the team reviews what has been developed, learns from it, and adjusts their future plans accordingly.
??Adapt: In this phase, the team and the customer review the delivered results and adjust the feature-based plan, process, and practices to meet the customer’s needs better. The goal of this phase is continuous improvement and adaptation to changing circumstances.
??Close: The closing phase involves completing the project, where all final testing, documentation, and training are done before the product is handed over to the customer.
Highsmith's APM model is highly flexible and adaptive. It emphasizes a collaborative environment where customer satisfaction and team development are paramount. The model is iterative, planning, developing, testing, and revising in short iterations instead of one long, linear sequence. This approach allows the team to adapt to changes quickly, making the model suitable for projects with high degrees of uncertainty and change.
The following is further elaboration on the Agile Project Management Model phases:
Envision
This Envision phase sets the stage for the rest of the project by establishing the high-level vision and direction. This phase does not aim for detailed specifications or a rigid plan. Instead, it focuses on creating a shared understanding of the product vision and the project context, fostering an environment for collaboration, and aligning the team and stakeholders toward a common goal. This approach aligns with the agile philosophy of valuing individuals and interactions, customer collaboration, and responding to change.
Here are the critical components of the Envision phase:
1.??Project Initiation: The project formally begins in this phase. The team is assembled, and the primary stakeholders are identified. This includes the project sponsor, the customer, and other influential individuals with a vested interest in the project.
2.??Product Vision: A high-level vision of the product is created. This vision is a broad understanding of the solution to be developed, the target market for the product, and the anticipated benefits upon successful completion. It's a guiding star that helps the team understand what they aim to build.
3.??Project Community: The project community is identified and defined. This includes the project team, the customer, users, and other stakeholders. Clear lines of communication are established within this community to promote effective collaboration throughout the project.
4.??Business Case: A preliminary business case is developed to justify the project’s investment. It includes an analysis of the expected costs, benefits, and risks associated with the project.
5.??Project Context: The broader context of the project is established. This includes understanding the market conditions, the competitive landscape, the regulatory environment, and other factors that could impact the project.
6.??Project Practices: The team agrees on the practices they'll use to manage and execute the project. These practices cover areas such as communication, risk management, quality assurance, etc.
7.??Project Charter: Finally, a project charter is created. This document summarizes the results of the envision phase, including the product vision, the business case, the project community, the project context, and the project practices.
Speculate
The Speculate phase in Jim Highsmith's Agile Project Management (APM) model is about planning the project based on the product vision and the context defined in the Envision phase. But remember, in an agile environment, planning isn't a one-time activity; it's iterative and adaptive.
The Speculate phase ends with a plan for the first few iterations and a broad plan for the rest of the project. However, this plan is not fixed, and the team is expected to revisit and adjust the plan at the end of each iteration based on their learnings and any changes in the project context or customer's needs. This is why the phase is called 'Speculate' - it acknowledges that the plan is based on hypotheses that will be tested and refined as the project progresses.
Here are the critical components of the Speculate phase:
1.??Feature-Based Planning: A fundamental principle in the Speculate phase is to plan around features, essentially the product's individual components that provide value to the customer. The team collaboratively decides what features to work on and the order in which they will be developed. A 'Feature' in APM is more than just functionality. It also considers non-functional requirements such as performance, security, and usability.
2.??Iterations Planning: The project timeline is divided into several iterations, and features are assigned to each iteration based on their priority. An iteration is a short, time-boxed period in which a specific set of features is developed and tested. Each iteration should ideally deliver a workable product or a part of it.
3.??Team-Based Estimation: During this phase, the team collectively estimates the effort required to develop each feature. Various estimation techniques can be used, such as planning poker, T-shirt sizing, or bucket system. Team-based estimation promotes collective ownership and improves the accuracy of the estimates.
4.??Adaptive Planning: Rather than creating a detailed, fixed plan for the entire project, the team develops a flexible, feature-based plan that can adapt as the project progresses. As the team learns more about the product and the customer's needs, they can adjust the plan as necessary.
5.??Risk Assessment and Mitigation: The team identifies potential risks and develops mitigation strategies. High-risk features might be prioritized in early iterations to ensure problems are discovered as early as possible.
Explore
The Explore phase in the Agile Project Management (APM) model is where the actual work of building the product begins. This phase involves delivering working features iteratively and incrementally, learning from each iteration, and adjusting the plan and practices as needed.
The goal of the Explore phase is not just to build the product but also to continuously learn and adapt. By delivering in small, manageable increments and incorporating feedback, the team can reduce risk, increase quality, and ensure that the product is aligned with the customer's needs. This phase embodies the agile principles of valuing working software, customer collaboration, and responding to change.
Here are the critical components of the Explore phase:
1.??Feature Development: The team starts developing the features based on the prioritized feature list developed in the Speculate phase. The goal is to create working software that provides value to the customer.
2.??Iterative Delivery: The project timeline is divided into several iterations, usually lasting one to four weeks. The team designs, codes, tests, and delivers a usable product increment in each iteration.
3.??Customer Feedback: At the end of each iteration, the team showcases the work done to the customer or the product owner. This helps get feedback early and often, ensuring that the product meets the customer's needs and expectations.
4.??Continuous Testing: Testing is done continuously throughout the iteration rather than at the end. This helps identify and fix issues early, reducing the risk of discovering significant problems later in the project.
5.??Learning and Adjusting: One of the critical aspects of the Explore phase is learning from each iteration and using that learning to adjust future plans. This might involve reprioritizing features, modifying the design, changing the team's working practices, or revising the product vision.
6.??Retrospectives: At the end of each iteration, the team conducts a retrospective meeting to reflect on the iteration: what went well, what didn't, and what can be improved. The team then uses these insights to improve their processes and practices in the next iteration.
Adapt
The Adapt phase in the Agile Project Management (APM) model is a crucial step that focuses on learning, reflection, and making adjustments to the project. It is not a phase that occurs only once but is incorporated frequently throughout the project lifecycle.
The Adapt phase embodies the agile principle of responding to change over following a plan. It recognizes that as the team learns more about the product, the customer's needs, and the team's own capabilities, they need to adapt their plans and practices to optimize the project's success. The Adapt phase is an ongoing, iterative process of inspecting and adapting, making the APM model flexible and responsive to change.
领英推荐
Here's more detail about the critical components of the Adapt phase:
1.??Review and Reflect: The team reviews the outcomes of the Explore phase after each iteration and reflects on what they have learned. This includes evaluating the quality of the work done, the effectiveness of the team's practices, and customer satisfaction.
2.??Feedback Incorporation: Based on the feedback from the customer and the team’s reflections, the team identifies areas for improvement. This could be changes to the features, the process, the practices, or even the team dynamics.
3.??Adaptation Planning: The team then plans how to implement these changes. This involves updating the feature-based plan, changing the team's practices, or making other adjustments to the project. The goal is to improve the project's effectiveness and efficiency.
4.??Risk Management: The Adapt phase is also about continually reassessing and managing risks. If new risks have emerged or the likelihood or impact of existing risks has changed, the team needs to adapt their risk management strategies accordingly.
5.??Performance Measurement: The team also reviews the project's cost, schedule, and quality performance. If performance is not meeting expectations, the team must adapt their plans and/or practices to get back on track.
6.??Communication: The team communicates these adaptations to the project community.
This includes updating the project charter, communicating changes to stakeholders, and aligning everyone with the new direction.
Close
The Close phase in the Agile Project Management (APM) model represents the completion of the project. This is when the project is formally closed and handed over to the customer.
The Close phase ensures that the project is completed controlled and orderly. It helps ensure that the customer is satisfied with the product, the team learns from the experience, and all project obligations are fulfilled. It's the final step in delivering a successful agile project.
Here are the critical components of the Close phase:
1.??Final Product Delivery: The completed product is delivered to the customer. By this stage, the customer has been continuously involved throughout the project, receiving and providing feedback on iterative deliveries. Hence, the final product should closely align with their expectations.
2.??Customer Acceptance: The customer evaluates the final product to confirm that it meets their needs and expectations. Once accepted, the product is formally handed over for them to use.
3.??Final Testing: Although testing has been done continuously throughout the project, final testing is performed to ensure that the product works as expected. This may include system testing, performance testing, and user acceptance testing.
4.??Documentation: All necessary documentation is completed and handed to the customer. This might include user manuals, technical documentation, and maintenance manuals. In the spirit of agile, the goal is to provide just enough documentation to be useful without creating unnecessary paperwork.
5.??Training: If necessary, training is provided to the customer or the end-users to help them understand how to use the product effectively.
6.??Project Retrospective: The project team conducts a final retrospective to reflect on the project as a whole. They discuss what went well, what didn't, and what lessons can be learned for future projects.
7.??Project Closure: Finally, the project is formally closed. This includes finalizing any remaining administrative tasks, releasing project resources, and celebrating the team's achievement.
Summary
Agile Project Management (APM) is particularly effective in situations of high uncertainty and rapid change, and how it maintains a balance between flexibility and control.
Managing Uncertainty:
In many projects, particularly in software development or innovation-driven domains, the end product cannot be fully defined or understood at the outset. This ambiguity stems from various factors: the customer's needs may evolve, new technologies or techniques may emerge, and the market landscape may shift. In such environments, trying to define a detailed plan at the start and sticking to it can lead to ineffective outcomes.
APM, by contrast, embraces this uncertainty. It acknowledges that our understanding of the product and the customer's needs will improve as we progress through the project. By working in short iterations, delivering incremental value, and getting frequent customer feedback, the team can learn and adapt as they go along. This reduces the risk of proceeding in the wrong direction for too long and makes the project more likely to meet the customer's actual needs.
Rapid Change:
Many industries today are characterized by rapid and continuous change. Projects need to respond to these changes quickly to stay relevant, whether it's changing technologies, customer expectations, or changing market dynamics.
APM is designed to respond to change. Rather than viewing change as a problem to be minimized, it views change as an opportunity to deliver a product that is better aligned with the current environment. By valuing customer collaboration and responding to change over following a plan, APM enables projects to remain flexible and responsive in the face of change.
Balance of Flexibility and Control:
While APM emphasizes flexibility, it does not do so at the expense of control. Even as the team adapts to new learnings and changes, they maintain a clear project vision and direction. They continually assess and manage risks, measure performance against their goals, and ensure that stakeholders are aligned.
This balance is achieved through the iterative nature of APM, where each iteration includes the development of features (the Explore phase) and a review and adaptation of the plan (the Adapt phase). This allows the team to make informed decisions about what to do next based on what they have learned so far.
In conclusion, APM provides a framework that is both adaptable and controlled. It is designed for environments of high uncertainty and rapid change, where the ability to learn and adapt is critical. Balancing flexibility with control allows teams to navigate these environments effectively and deliver products that meet their customers' evolving needs.
References and Bibliography
Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2017). Agile software development methods: Review and analysis. VTT Publications.
Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., ... & Kern, J. (2001). Manifesto for agile software development.
Cockburn, A. (2002). Agile software development. Addison-Wesley Professional.
Dings?yr, T., Nerur, S., Balijepally, V., & Moe, N. B. (2012). A decade of agile methodologies: Towards explaining agile software development. Journal of Systems and Software, 85(6),
1213-1221.
Fowler, M., & Highsmith, J. (2001). The agile manifesto. Software Development, 9(8), 28-35. Highsmith, J. (2002). Agile software development ecosystems. Addison-Wesley Professional.
Highsmith, J. (2009). Agile project management: Creating innovative products. Addison-Wesley
Professional.
Highsmith, J., & Cockburn, A. (2001). Agile software development: The business of innovation.
Computer, 34(9), 120-122.
Larman, C., & Basili, V. R. (2003). Iterative and incremental development: A brief history.
Computer, 36(6), 47-56.
Schwaber, K., & Beedle, M. (2002). Agile software development with Scrum. Prentice Hal
This is nice.