Evaluating Team Health in Agile and DevOps
Much has and will continue to be written about our modern software development, delivery, and deployment culture and approaches. Debates on the best tools, methods, techniques, and practices for a given context and application will continue, as it should, in the pursuit of increasing the effectiveness and efficiency in delivering quality software.
Behind any good software engineering methodology are great team members. In our world of rapid innovation, advancing technology, and expanding complexity, it is our human capital, intellect, skills, capabilities, teamwork, professional interests, and passions that transform ideas into useful functionality for our end-users.
In my experience, though, the importance of the human element in delivering great code is sometimes overlooked, as is the relationship between team health and team performance. Just like our own physical health checks, team checkups are important.
Many things can impact the health of individuals and teams:
- Having a pathological or bureaucratic culture that does not allow team members to feel safe
- Not holding retrospectives, or holding retrospectives and then not following through with agreed-upon improvements
- Unbalanced team dynamics where individuals either don’t speak up or certain team members capitalize on air time
- Standups that are status meetings and not focused on the plan for the day
- Comparing one team’s velocity to another
- Dictated schedule
- Lack of opportunities for team members to grow their skills and career
- Doing repetitive work that could be automated
- Lack of a vision, or unclear team and organizational goals
- Poor communication and collaboration within or between teams
One of the best ways to take the pulse of the health of a team is to have a regular cadence for evaluating the dimensions of health that the team, the business, and leadership feel are important. Engaging all the key stakeholders in the design of team health measures is an important first step. Start by polling representatives from these groups on what they believe is critical to the success of determining team health measures.
I recommend using a “goal, question, metric” approach in designing these measures. First ask what the goal is, then specify questions that we need to answer to determine if we’re meeting our goal, and lastly define the metrics that help us answer the questions we’ve defined.
Here are some common team health dimensions to consider:
- Team happiness and morale (satisfaction with the work, the company, and the culture)
- Team communication (between roles, across departments, and to and from leadership)
- Team improvement rate (in quality and value delivered, in processes, and in learning)
- Adherence to agreed-upon team practices
- Teamwork and collaboration capabilities
- Team productivity (results, time wasters, and value chain bottlenecks)
- Clarity (of vision, mission, and goals at the organization and team levels)
- Support (tools, access to the expertise needed, and access to the environments)
Once the goals, questions, and metrics are defined and agreed upon, establish a regular cadence for collecting the information, and share it widely. Use a simple scale to begin with, such as thumbs up, neutral, or thumbs down, and then refine your approach over time.
Focus on trends, not absolutes, so that you can understand directionally how you are trending and can take corrective actions where appropriate.