An Effective Approach to Agile Development Team Challenges
A Team’s Agile Development Journey
What typically happens when a software team adopts agile values and principles and implements a framework (such as Scrum)? Normally, after some initial learning, an early positive impact is common along with a feeling of progress. But the team soon encounters new challenges as they realize their journey has only begun. They must now take ownership of their improvement.
A team with the desire and understanding to achieve agility is a wonderful thing to see. The collaboration, focus on customer/purpose, and sense of progress is empowering for teams. The feedback and building of trust within different groups or roles that may have been missing before is also inspiring. But new challenges start to emerge.
New Challenges Emerge
The iterative nature of agile frameworks is a big change for many. They are not familiar with the concept of releasing working software in short cycles. Experienced technical team members find their practices are no longer as effective. Their testing, whether manual or automated, might take too long or lack feedback. They may struggle to collaborate with the Product Owner to agree on how they will know when they are done.
The Team Adapts
Faced with new challenges, agile teams have many ways to improve. They have Retrospectives or Operations Reviews to inspect and adapt their behaviors and practices. Through this process, they can look at data and experiment with changes that improve product delivery. But how do they know what to look for and what to try? What are proven, good practices that can be leveraged?
The amount of resources available today is impressive. Books, blogs, and videos are plentiful. But the advice contained within has to be found, consumed, digested, disseminated, and attempted. When something is tried, the team needs to look at the results, see what was learned, and iterate. This takes time. For many teams the concept of owning and taking responsibility for their own improvement is empowering, but new. Even learning this process takes time.
Using a Technical Player-Coach
A typical Agile Coach helps a team get more value out of their efforts to improve agility. These Coaches draw from past experience delivering software and mentoring teams. As with general Agile Coaches, they help the team through mentoring, questioning, facilitating, and other forms of guidance. Coaches also add knowledge and insight where they can accelerate learning. But the impact they make is limited by the amount of time and depth of knowledge they have with the team.
An embedded team member has the opportunity to make a significant impact participating in the full software delivery process. In this role, she becomes a Player-Coach who develops direct experience with the team’s delivery challenges. From this vantage point, she can lead by example in helping the team adapt and improve. She will not only do feature work for the team, but also use techniques like pair programming and code reviews, retrospectives, and communities of practice to mentor and coach the team from within. Her ultimate goal is leaving the team with the ability to continuously improve.
This Technical Player-Coach(TPC) helps teams with all aspects of Agile Software Development. Often this involves technical practices such as testing, refactoring, Test-Driven Development (TDD), Emergent Design, Devops, Continuous Delivery. Such practices are critical to realizing overall agility but are not normally taught in Scrum or other Agile training courses. The Player-Coach also helps with common agile practices from a team member’s perspective such as breaking down stories, collaborating on acceptance criteria, and providing feedback to the rest of the organization.
It takes time to build trust and work effectively with teams. The Player-Coach is highly impactful as a participating team member with skin in the game.
We will follow this with a series of posts highlighting specific scenarios showing how an embedded Player-Coach is a valuable resource for teams.
Most of the teams Agile Velocity works with have some experience with an agile framework. We work with a team to evaluate what they’re doing, how they’re doing it and identify where they can improve. From there we serve as coaches/guides embedded with the teams we’re helping. Our Technical Player-Coaches accelerate the team’s journey to high performance.
We’re interested in helping your team adapt and improve. Contact us today and talk to a Player-Coach about what kind of improvements you want to make!