In part 1 of the two-part series on Being Agile on a Fixed Cost and Timeline, I had discussed a case study based on our experience in executing an agile fixed cost project for a large US-based company. Needless to say, it was a complex project, thanks to its magnitude, the constraints on the timeline and budget, and the strict quality requirements. We had our share of learning during its execution as we found the best ways to move forward. In this follow-up post, I've distilled six key learnings, which, hopefully, you would find helpful while executing agile projects that have triple constraints on the scope, cost, and timeline.
1. Assess the Scope of Work
In the planning stage of the project, it is very important to review the scope as a good fit for a fixed cost execution model. If the scope is not clear, proactively suggest an assessment phase based on Time and Materials (T&M) execution model so that any potential risks and dependencies can be identified early. Once this assessment phase is completed, adopt a fixed cost approach for the remaining phases. Using this approach, an optimal cost model that is best suited to both customer and service provider can be derived without impacting the overall budget.
2. Plan Ahead to Reduce Development Risks
A planning phase that includes requirement elicitation and UX design before each development cycle is advised to reduce development risks. The following steps are recommended during the planning phase:
- Define the requirements at the story level and get them signed off by the product owner.
- Design wireframes along with the user stories and get them signed off by the product owner so that functional requirements do not change at a later stage based on the workflows defined in the wireframe.
- Estimate the user stories and determine the number of sprints required to complete the backlog based on the team velocity.
- Communicate the risks upfront so that negotiations on scope and timeline can be proactively completed before the sprints start.
3. Have a Strategy in Place to Manage Change Requests
Due to the agile nature of the projects, early feedback and suggestions from end users typically result in change requests to the original scope. For a fixed cost project, any change in scope would impact the overall cost and timeline. Hence, it is important to manage change requests with a good strategy. The below approach would help to solve this problem and gain control over the timeline and cost.
- As and when the product owner receives new insights or discovers a functionality that is redundant, he/she is given the option to exchange in-out features/user stories that are of similar magnitude (typically estimated in story points). The product owner will have to swap user stories that are of low priority with change request-related requirements that are of high priority. The low priority user stories will be kept aside and will not be executed as part of the sprint.
- As the next step, we need to sensitize the customer/product owner on the need to exchange scope to ensure successful agile delivery within agreed cost and timelines.
- The product owner is requested to prioritize the requirements in the backlog. Top priority requirements that come within the limit of the total estimated effort is picked up for development. Remaining low-priority requirements are kept aside for the future. This approach works best to avoid scope creep as it ensures that the total estimated effort is not changed at any point during execution.
4. Start with Minimum Viable Product and Proof of Concept
Launching a Minimum Viable Product (MVP) is more likely to encourage better adoption and usage. MVP should be based on the critical features prioritized by the product owner. Feedback from users can be collected, benefits can be reviewed, and more features can be added to the product as the next step. Taking this route would help to reduce the delivery risk as an MVP would give the customer a vital first look at a miniature version of the product upfront. It will also help the development team to come up with a scalable architecture when they build the MVP.
Risks related to the technical complexity of critical modules can be reduced by integrating the architecture and technical design of the product with the help of a Proof of Concept (PoC) for all key modules before development. This approach will help to mitigate any delivery risk as we get to derive accurate estimation based on the PoC.
5. Monitor and Control Risks
The risk of schedule deviation and budget overflow is high for a fixed cost project. Hence there is a need for systematic planning, monitoring, and escalation of risks. A risk log has to be created before the start of development and has to be monitored periodically. Any risk that arises has to be escalated to a joint governance team that comprises of stakeholders from both the client and service provider teams so that they can be mitigated without impacting the overall cost and timeline of the project.
6. Incorporate Project Management Best Practices
The project needs to be executed without compromising the quality. Schedule adherence and quality can be measured and controlled with the help of quantitative project management techniques.
Things to Do:
- Define the metrics to be measured: Definition of the metrics has to be in alignment with the overall objective of the project. For example, some of the key metrics for Agile projects would be Velocity and Defects per sprint.
- Collect the metrics data: This has to be done periodically during the sprint and on completion of sprints.
- Review the metrics data: Review of metrics will provide insights into the problem areas so that necessary corrective actions can be taken. The effectiveness of these corrective actions could be reviewed using the metrics data after implementation.
Conclusion
Executing agile projects on a fixed cost and timeline adds complexity with respect to governance and management. It requires a micro level, quantitative project management approach with detailed planning and risk control. Key milestones and the status of the project need to be assessed periodically and risks have to be reviewed along with the senior management. It is a challenging scenario; however, with excellent teamwork and effective management, the complexity can be overcome. And we proved it!