5 Hard-Won Lessons From a Successful Large-Scale Agile Transition
5 Hard-Won Lessons From a Successful Large-Scale Agile Transition
Going from Waterfall to Agile can be tough. So, one Agilist decided to share some lessons he's learned while helpoing guide teams into an Agile environment.
Join the DZone community and get the full member experience.Join For Free
You've been hearing a lot about agile software development, get started with the eBook: Agile Product Development from 321 Gang.
Completing an Agile migration can seem intimidating for any business. Agile pushes teams to change their cultural expectations and work processes, a combination that is tough on any work environment. Larger organizations, however, often face an especially daunting migration.
As an Agile consultant, I’ve overseen plenty of examples of successful Agile projects. Those efforts have taught us many lessons, with one major project standing out.
An Agile Migration at a Glance
KMS Technology recently worked with a large company to help it scale out to a more sophisticated agile development scheme. We applied a customized Scaled Agile Framework (SAFe) to the project. In doing so, we established a development environment with:
- Fifteen Scrum groups divided into four release trains.
- A product feature team configuration to define user responsibilities.
- Two-week Sprint cycles.
- A quarterly Innovation and Planning (IP) Sprint.
- A transition from VersionOne to Rally.
- Weekly production deadlines.
After six months, the automotive company had a continuous delivery (CD) pipeline in place and had laid the groundwork for a successful project. Of course, plenty of bumps arose along the road to a solid Agile environment. Here are five of the lessons we learned during the project:
1. Don’t Allow for Missed Connections Between Scrum-to-Scrum Teams
We established a feature team setup for this project. In this setup, teams work on specific feature sets instead of simply dividing components of the software and hoping it all works when put together.
The initial plan was to have quick Sprints and an emphasis on features that allowed for relatively simple dependency management. In action, however, different understandings on features between groups led to some challenges linking feature teams and eventual defects after integration. This challenge reinforced the importance of a few key best practices, including:
- The vital role of a Scrum-of-Scrums team featuring representatives from each Scrum to provide cross-team collaboration and ensure their work is coordinated.
- The need to build out retrospective cross teams in order to minimize dependencies and identify the universal issues within the Agile system.
- The necessity of end-to-end testing that is clearly set forth in the Definition of Done (DoD) project framework. Creating clear DoD parameters can help teams ensure they minimize redundant work while avoiding mismatched data within the QA environment when compared to production.
2. Continuously Inspect Sprint Expectations and Right-Size Project Guidelines
Throughout the project, we found that, in some instances, teams struggled to identify the best velocity for Sprints, even after four or five iterations. There was a lack of transparency in whether timelines were actually working because formal discussions around Scrum velocity weren’t taking place. This resulted in technical debt adding up over time and incorrect ideas about what constituted a completed project.
Struggles to identify the right speed for Scrum Sprints created instability. We learned to counter this problem by formalizing Scrum event planning so teams can identify the right velocity for their tasks and recognize times when they may need to adjust how they are working in light of shifting project demands. This includes honestly assessing technical debt and setting timelines for dealing with it.
3. Identify When ‘Done’ Doesn’t Really Mean Done
A great deal of effort goes into identifying the DoD for a project. However, teams can easily struggle to pin down the Definition of Ready (DoR) for backlogged items that arise as the result of technical work. This situation can spiral as small items are left incomplete over multiple Sprints until, near the end of the project timeline, testing and similar practices get less attention because everybody is scrambling to complete their work. A few ways we overcame this issue included:
- Using the INVEST criteria to prioritize tasks when trying to identify DoR. This is particularly important as teams that neglect small issues of technical debt risk falling into Waterfall habits toward the end of project cycles.
- Trying to minimize how many work-in-progress items we left unresolved at any time to avoid situations where dev teams are spending more time on backlog items than active Sprint work.
- Creating visualizations of the shared Scrum space for better coordination and monitoring across teams.
- Establishing consistent analysis of, and updates to, the DoD to better reflect real results. This was best accomplished during the Sprint retrospective event.
4. Make Sure You Don’t Neglect Training
Agile is all about getting projects moving quickly and eliminating waste. In that vein, many organizations will try to reduce training and spend a couple of weeks teaching workers about Agile and expecting them to mature through their experiences on Scrum teams.
In action, Scrum teams need an opportunity to go through storming mode together to develop their Agile skillsets, but companies don’t set time for that type of training. Businesses must establish realistic expectations in terms of training, particularly for cross-functional and self-organizing groups, as these users need a deep understanding of best practices in order to work well together. Employees need time to adapt to change and businesses that want to scale Agile effectively must establish their core values, reduce direct accountability within new teams that feature interdependencies, and, in general, be patient with employees as they adapt.
Within this transition to Agile, it is also important to train users on how to work effectively as a team. Technical skills and process education are key, but those capabilities can fall flat if employees are unable to work well together. For example, the landmark book 5 Dysfunctions of a Team highlights a variety of typical challenges that teams face, including issues such as a lack of trust or unwillingness to face up to conflict. Businesses need to train workers to counter these types of issues.
5. Leverage Efficiency Tools, But Not With Excessive Rigidity
In this project, we used Rally, an enterprise-class platform built to help businesses scale Agile teams. Even in Rally, there are still some limitations to how much the technology can support collaboration between teams and identify project dependencies.
In practice, no single tool will be an Agile silver bullet. Instead of expecting a platform to solve your problems, consider adopting practices that makes sense for your situation, such as tracking dependencies on a whiteboard. Within this environment, it is vital that businesses also clearly define and manage their development and release processes through ongoing training that establishes a culture of transparency.
Published at DZone with permission of Tin Nguyen . See the original article here.
Opinions expressed by DZone contributors are their own.