I recently met with a Denver client that adopted Agile development processes (Scrum) a couple of years ago with much success. We were contacted to assist in scaling their Agile model as they added people and projects to try and keep up with growing business demands. We met with fifteen key technology leaders across development, QA, project management and infrastructure, discussing challenges and associated tactics to increase velocity and improve reliability at meeting business demands. The challenges are common for teams going beyond small, single-project Agile teams as they work to scale to multiple, large teams. This meeting was everything I love about consulting. I met with a great group of talented people that are committed to doing a great job for their organization and customers – and worked to help them.
We started the meeting by asking several questions to gain a better understanding of their organizational structure:
How many people are in the technology organization?
What is the breakdown of business / product owners, business analysts, project managers, developers, QA and infrastructure?
How are those resources organized / assigned to project teams?
How many projects do you have that are currently in progress?
We then dove into their software development processes:
How are projects initiated, prioritized, estimated and planned?
How long are iterations (sprints)?
How is in-Sprint task management handled?
How often are production releases scheduled?
How is QA handled?
After listening to their answers and hearing them describe how they work today, I outlined on a whiteboard some of the common challenges that I’ve seen other teams face as they try to scale Agile:
Challenge #1: Velocity – whether real or only perceived, the velocity challenge indicates that “the business” does not believe that they are getting adequate throughput / value from the technology team
Challenge #2: Reliability & Consistency – this challenge is typically shown through Agile teams that consistently over-committ and miss their Sprint goals and deliverables
Challenge #3: Vision & Priority – an Agile team that lacks proper business or technical vision and priority is constantly changing directions for each Sprint, or worse yet within a single Sprint
Challenge #4: Quality – teams that have a quality challenge “finish” their sprints and deliverables, but accumulate a significant amount of technical debt in the form of defects and poor design choices
Challenge #5: Coordination – a coordination challenge is present when individual teams are reasonably high-performing, but there are miscommunications and inefficiencies between Scrum teams (e.g., missed dependencies, tremendous overhead, integration issues, environment issues, etc.)
Challenge #6: Bandwidth – all teams are resource constrained in some form, but a team with only this challenge is otherwise in great shape
After the board was loaded with these potential challenges, I went around the room and asked each person which of these categories best described their challenges. It was fascinating, the collective “blood pressure” went up in the room by a fair amount as each person shared their honest opinion and others offered support or a contrasting opinion. I played my role as moderator and challenger when I heard something that didn’t quite sit right.
The result was a great, healthy conversation where their team had a chance to be introspective about their processes and approach and for me to share suggestions to address each of their challenges. As a group, we identified several, tangible changes they can apply to their Agile process to improve velocity, reduce frustration from the team and increase their reliability to hitting longer range goals.
Which challenge has your team faced?