New agile teams often start projects after some brief training on the Agile Manifesto and agile frameworks. But without additional coaching, these teams will struggle to deliver continuous value to their clients.
These teams are inexperienced in applying agile principles to project delivery, so they often focus on velocity rather than creating customer value, and they don’t know how to respond when they receive inadequate support and guidance from stakeholders.
To address these challenges, teams should be coached on how to tackle unexpected Situations, use appropriate Tools, conduct agile Events (also known as ceremonies), and adopt appropriate agile Practices—collectively, I refer to these four pillars with the acronym STEPs.
Tackling Unexpected Situations
Teams need to be guided through unfamiliar situations to make incremental progress and avoid uncertainty about direction creeping into the project. Here are some examples of situations where an agile coach can help guide a team.
New situations the team hasn’t seen before: The team may be unsure about how to split a technical story when it doesn’t fit into an iteration, what to do when a client or stakeholder demands the team reduce its ceremonies to save time, and how to respond if the organization insists on the use of a particular agile delivery model or framework when it isn’t a good fit. An experienced coach who have been through these situations can provide guidance.
Situations that slow down progress: The product owner may not be able to clarify story acceptance criteria, there could be confusion about the scope of testing to meet the definition of done, and client subject matter experts (SMEs) might interfere in finding solutions, depriving the team of their decision-making ability. In these instances, the coach should step in.
Uncertainty on the next course of action: An inexperienced agile team won’t know how to manage stakeholders who insist that in-sprint defects be made visible to them although the team considers it to be their internal matter until they need help. They also won’t know how to establish metrics beyond burn-down or burn-up charts to monitor the iteration progress. Whether it’s a one-time issue or a uniquely sticky situation, the agile coach can impart their knowledge.
Agile process situations: The coach also can show the team how to handle functional silos, maximize collaboration, and properly follow the agile values and principles.
The agile coach must identify these situations and help the teams through additional training, team guidance, and one-to-one discussions with team members. For situations that include others outside the team, the coach must facilitate the necessary discussions between teams, the product owner and stakeholders, or anyone else necessary to set the proper context and develop a consensus on the way forward.
Using Appropriate Tools
Many teams operate with minimal tools, which may significantly impact the ability to deliver quickly. An agile coach should identify gaps in existing tooling and help the business identify suitable tooling to support their agile teams in accelerating delivery, including for version control, code quality, test automation, continuous integration, and testing and deployment automation.
Appropriate tools can also increase a team’s effectiveness by automating code generation, performing code profiling for optimization, analyzing code for security flaws, and supporting test-driven development. Coaches should help teams determine the value of various tools by having them answer why, what, and how tools will be used.
Conducting Agile Events
Agile events, also referred to as ceremonies, are key meetings that present opportunities for a team to regularly inspect and adapt their course of action. Without effective coaching, teams may not be aware of what should be discussed, who should be invited, or how to get the most value from these ceremonies.
Here are a few steps an agile coach can take to make sure events are conducted properly.
1. Coach your teams to hold important functional, architectural, and environmental discussions early in each iteration. Teach them to discuss important items during backlog refinement and sprint planning if possible, and even to tag the items in daily stand-ups to discuss afterwards.
Some examples of items that need early discussions are agreement on application frameworks, third-party application walkthroughs, open questions on critical functionalities, environment upgrades and access requests, a branching and merging strategy, a test strategy, and automation scope. Without clarity on these items early in an agile project, the overall solution and iteration plan may be inadequate.
2. Make clients and other teams aware of an event where their expertise would be helpful and encourage them to attend. For example, technical SMEs from the client’s team could be invited to sprint planning meetings to transfer knowledge on the existing architecture and participate in the discussion about planned architectural changes.
Inviting people with relevant knowledge not only paves the way for a robust design, but also avoids the possibility of rework. Similarly, product owners can engage stakeholders for clarification and a walkthrough on functional areas during backlog refinement, or provide client feedback on stories as they are completed.
3. Be present at all events when working with a new team. A coach can help the team get off on the right foot by observing and correcting behaviors and techniques early in the process. This also will increase the team’s confidence over time and ensure that the team can conduct events successfully without you later.
Adopting Appropriate Agile Practices
One of the responsibilities of an agile coach is to encourage the teams to regularly inspect and adapt their practices. This helps them improve on the existing processes and explore new ones as necessary, and it does away with practices that don’t add much value or that consume lots of unnecessary effort.
Sometimes iterations turn into small waterfalls when team get in the habit of initiating multiple stories simultaneously. This often results in testing being left until the last few days of the sprint. Introducing practices like a work in progress (WIP) limit and swarming to finish key tasks can solve this problem.
At times, team also cut corners by delivering untested code. When they see this occurring, a coach should work with the team to help them understand how unit testing and automation benefit quality and reduce technical debt. By introducing engineering practice like test-driven development to assure testing is integrated into development, defects are minimized and technical debt is kept low. The key is for the coach to address testing issues up front.
Apart from leveraging these four established practices, teams might also establish their own practices to address a unique challenge. For example, teams may decide to spend the first few days of each iteration finishing partially completed stories or addressing critical defects from a previous sprint. Teams may not wait until the end of a sprint to conduct sprint reviews on some stories if the team finds it necessary to check on important stories earlier. Specific programming practices and standards also may be adopted by a team working in a distributed model.
The role of a coach when teams are establishing their own practices is to stand behind the team to support, guide, and help troubleshoot any issues—and, above all, to make sure each practice aligns with the agile principles.