How to S.A.V.E your Agile Project Before you Start!
As ‘Agile’ development becomes all the rage, and with good reason, an old adage comes to mind; those who fail to plan are planning to fail. I’d like to share with you our experience from a recent project engagement that reinforced for us four key components necessary for a successful outcome:
Set boundaries and expectations for various roles
Attention must be paid to client’s vision and iteration deliverables
Value of commitment from the entire team
Expectations and understanding and their periodic review
By employing these four principles, you’ll SAVE yourself from frustration, you’ll SAVE yourself from wasted efforts, you’ll SAVE yourself from work out of scope and you’ll SAVE your reputations and good standing with the client as your agile project will be a success!
Every agile project presents its own unique challenges. Part of what makes agile such a compelling approach to development is also what makes it such a challenge; moving deliverables, time frames, extemporaneous issues, unclear expectations and more I’m sure you have experienced. This can be particularly frustrating as you may feel your iterative work is meeting expectations but the end business objectives of the customers are coming up short. In our case, the customer had strict timelines for the final roll-out of the product, after completion of the technology migration.
In our case we have a highly experienced team that was really excited and self-motivated to work on this challenging project. The project started on a good note and with a lot of zeal but to our frustration, after completing initial iterations, the customer was dissatisfied because to our surprise, the deliverables were not aligned to their business objectives. True to the spirit of agile, our team huddled together to take a hard look at the issues involved. We pinpointed four key reasons for the customer’s disappointment:
- Incomplete or insufficient product backlog
- Missing functionalities/requirements identified during the execution (Dev & Testing)
- Ad-hoc re-designs of the system during the iterations
- Some spill-over of commitments made in iterations
The good news was we could fix this! We engaged our agile experts, and identified the need for following changes:
Technical Backlog Creation
To address this issue, we created two dedicated sub-teams, namely the Reverse engineering team and the Design team, for the elaboration of the technical backlog.
These teams would work on one or two iterations ahead of the development team iteration. The Reverse engineering team was involved in reverse engineering of the existing business logic layer, and delivering functional diagrams of the business requirements. While the Design team was involved in referring the functional diagrams, designing the system and delivering a set of user stories with estimates. This helped to convert high-level functional user stories into technical ones, which the development team could take on to completion.
Close Collaboration with Customer:
The customer appreciated the technical backlog creation by our team & agreed to nominate a dedicated product owner. This product owner would work with our teams to plan & prioritize releases using the product backlog delivered by us.
Training & Re-training:
To strengthen the team’s capabilities, we conducted a two-day workshop on ‘Team Commitment in agile projects’. In addition, the Scrum Master trained the team with practical examples and experiences.
Closer Review with Right Stakeholders
We started bi-weekly review meetings with senior managers from the customer, to manage their expectations. These meetings helped the customer to understand the overall progress against the expected timelines & budget. These meetings also took a hard look at the deliverables of the team in each iteration. Any impediments or corrective actions that were required were discussed with clear action items.
These changes resulted in better release & iteration planning, almost no spill over and much better alignment of deliverables to the business objectives. Within two iterations, we were able to regain customer confidence, trust and support. Moreover, these changes helped the customer to correct & re-align business objectives.
Based on this successful turnaround, we developed our approach to SAVE every project:
Set Boundaries & Expectations for Various Roles:At the start of the engagement, it is crucial for all the stakeholders to have a common understanding of the various roles involved & their boundaries in Agile environment (e.g. Product owner, Scrum master & Team). It is crucial for everybody to understand that product backlog and decisions about the product release need to be owned by the product manager, while the team continues its focus on the deliverables & commitments for the iteration.
Attention to Client’s Vision and Iteration Deliverables: Top priority for the scrum team is to remain focused on the iteration scope. However, it is also very important for the team to understand what the overall product vision and whether the team’s deliverables are aligned towards this vision.
Value of ‘Commitment’: The key aspect of Agile training for the team is to make sure that the team understands the value of ‘commitment’. The team needs to understand that for each iteration, they need to make realistic & achievable commitments, which are not over-optimistic or over-pessimistic. And more importantly, the team needs to make efforts for achieving its commitments.
Expectation Understanding & Periodic Review: At the start of every Agile engagement, it is crucial for all stakeholders to have a common understanding of the expectations from a customer. And it is equally important that this understanding is periodically reviewed as teams, product owners & scrum masters make progress in each deliverable.
I hope what you take away from our experience is not just that if you SAVE a project right at the beginning you’ll greatly increases your chances of success. But also, life doesn’t always work out as planned, so when you run up against problems take a deep breath, assess the situation and work together to come up with a way to SAVE your project!