From no delivery to consistent delivery every Sprint

Learn how I helped a team in a government agency in their project of migrating a legacy tax system to a new modern infrastructure.

The Problem

This is a large-scale, high-profile tax modernization initiative involving multiple departments across the organization, where successful delivery is critical.

One of the biggest challenges was the 40-year-old legacy system that had little documentation or knowledge distribution across the company making it difficult to create clear requirements. This led to misalignment on priorities, difficulty in creating a clear roadmap and providing accurate estimates.

Additionally, many team members are new to their roles and Agile methodologies, further complicating the delivery process. At the same time, the project had a long history of failure that created a lot of tension in the organization and required the team to start showing real progress as soon as possible.

Key Improvement Areas

There were a couple of areas that required immediate attention to relieve the tensions and facilitate smoother delivery. The main improvement areas identified included:

Dependency on DevOps

The team’s reliance on external DevOps support resulted in long wait times for production deployments and reduced product quality. This led to the team’s inability to forecast how much work could be delivered and a lot of frustration mid-sprint when work couldn’t be finished because of this dependency. This resulted it sprints coming and going without any visible progress regardless of the amount of work the team has put into it.

Team Conflicts

Due to the history of the project, a high level of conflict developed between the main two teams who needed to work together. This not only made it difficult to identify the requirements upfront but also delayed development by constant rework and scope creep.

Loosely Defined Requirements

A lot of work items weren’t properly refined before the work started which led to many incorrect assumptions being made about data and user needs. Acceptance criteria would often change at a later point resulting in stakeholders not receiving what they requested and many deliverables being rejected. In addition, last-minute rushed requirements were added to upcoming Sprints without enough time to refine.

Knowledge Silos

Key areas of work were put at risk due to limited knowledge sharing between teams and departments. This created bottlenecks when certain team members were unavailable. No clear plans were made for cross-training.

Difficulty Tracking Progress

The team lacked clear visibility and metrics to effectively track progress and provide clarity to stakeholders. This only resulted in higher tension between the groups. It was not always clear how far the team was from completing a certain goal.

The biggest challenge was the fact the team was not delivering, not due to lack of dedication or effort, but due to a variety of inefficiencies that set them up for failure.

The Solution

The overall improvement objective for this engagement was pretty straightforward: show real progress to stakeholders by delivering working software for the users and creating a clear roadmap with well-defined milestones. Without an ability to show progress toward goals, the project was at high risk of potential cancellation.

Actions taken

Several challenges and improvement areas needed to be addressed all at once. Already prior to the consulting engagement after following my workshop, the team has made some positive changes:

  • Brought it a dedicated Product Owner who can spend more time with the team
  • Improved focus in the Daily Scrum meetings with the team split
  • Improved the Sprint Review meetings with more focus on the customer experience
  • Created the first version of the roadmap

During the consulting engagement, we also focused on the following actions:

  • DevOps Independence: Hired a DevOps engineer and provided training for the development team to manage environments and reduce external dependencies.
  • Conflict Resolution: Re-aligned the product vision and roles of the two main teams and defined better communication processes and systems.
  • Backlog Refinement: Introduced a more structured backlog refinement process to ensure work was well-defined and aligned with long-term goals.
  • Knowledge Sharing: Cross-training plans were introduced to eliminate knowledge silos, ensuring smoother transitions and reducing bottlenecks. In addition, built strong documentation processes for easier knowledge distribution.
  • Transparent Communication: Working agreements were put in place to improve communication, ensuring that all team members were informed and aligned.

Outcomes

There were many small improvements implemented along the way, but the biggest impact was made in achieving the main improvement objective and setting the team up for success going forward.

Ongoing Delivery of Working Software

The teams started to deliver fully working tested software ready for customer and user review thanks to better-defined requirements and clearer communication.

They were able to demonstrate progress during every Sprint Review and collect stakeholder feedback. This also enabled an ongoing UAT process to allow the business to make decisions about what features and when should go to production.

More Reliable Collaboration

While conflicts were severe, clearer roles and responsibilities, along with management support, led to improved interactions and a more productive working environment.

The teams developed better communication patterns and knowledge-sharing opportunities to create constant alignment while maintaining positive relationships.

Progress and Forecasts Visibility

Automated dashboards increased transparency and helped set more realistic expectations. This reduced last-minute surprises for stakeholders and allowed the team to plan a few Sprints in advance instead of rushing features out without proper analysis.

More Consistent Deployment Workflow

The team reduced their reliance on DevOps, allowing faster production releases and improved delivery cycles. This also reduced defects that would be found too late in the process.

The team started to develop their skills and knowledge to be able to create a code base that could be scaled and built upon as more features were added.

Download the PDF

More Recent Articles That You May Like

4 rules to follow to avoid useless meetings

“We have too many meetings!” – every single employee working in corporate said. Having meetings that are booked over other meetings three times over is a common challenge for many

About the author

Hi, my name is Daria Bagina. I’m a Professional Scrum Trainer with Scrum.org and a experience Agile leader. I help teams and organizations to get the most out of the Scrum and Agile implementation by sharing my personal stories and practical advice.

Connect with me