One of the four value statements from the Agile Manifesto states:
Individuals and interactions over processes and tools.
Two principles supporting the Agile Manifesto are:
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
These statements attempt to change the way teams work and interact in an agile environment. These statements also require Leadership to focus on teams in a very different way than the command and control style of traditional methodologies.
This blog is not about iterations, burn-ups, velocity or the other mechanics of agile project management. This is about how to effectively lead a team in a fast paced, constantly changing environment so they can become an effective, productive, self-organizing team.
Let’s just clarify some of the Leadership roles on a software development project.
Iteration Manager or Scrum Master
If you are responsible for folks working together towards a common goal, then I believe you are a Leader. All of the following blog can apply to any leader, but I’m really focusing on the Project Manager and Iteration Manager here. The difference between the two being, that Project Managers are typically outward facing, focusing on stakeholders outside of the core team. The Iteration Manager is typically focused in to the core team. This isn’t necessarily two people, but definitely two focuses.
Teams go through many levels of maturity. Bruce Tuckman describes the four stages of Forming, Storming, Norming and Performing. Patrick Lencioni takes us though the 5 Dysfunctions of a Team. Teams just don’t start day one as a productive, self-organizing team. They go through a process. There are bumps and challenges. The Agile Project Manager and Iteration Managers are responsible for getting the team through these phases with as little pain as possible. Even after a team gets to a mature stage, the slightest change can revert the team to a former, less mature stage. team gets to a mature stage, the slightest change can revert the team to a former, less mature stage.
Here are a couple of recommendations to begin your quest of moving from a traditional command and control management environment towards a more Servant Leadership style.
Don’t go too far to the right!
In the US, the politically ‘right’ believe that there should be as little government as possible for a successful economy. The leadership spectrum noted below reflects leadership styles. And if we head to the far right of this spectrum we see Servant Leadership, a term coined by Robert Greenleaf and advanced by several authors such as Stephen Covey, Peter Block, Peter Senge, Max DePree, Margaret Wheatley, Ken Blanchard.
Some folks think that agile means as little Project Management as possible. Well, that is just not true. Agile software development is very faced paced and in order to accommodate change effectively, it is very disciplined and requires constant attention to the process, the results and the team in order to stay on track. Agile methodologies describe many practices that guide us through the mechanics of building software in an agile fashion. But we have to also address the changes required in leadership style in order to see the benefits we strive for by adopting agile methodologies.
Some new agile PMs take such a strong ‘hands off’ approach that the team struggles to get through the first couple of phases of team maturity and agile appears to fail.
You must find ways to get the team members to know each other, then they can start to trust each other, then they can learn how to communicate, solve problems, have good debates and make decisions. Facilitate and encourage this process throughout the project.
Some techniques for getting folks through the early phases of team maturity are:
Inception or planning activities
Informal social events
Team building events
Remember the Future activity
Team Health checks
Do your homework on your team members.
There are many tools out there to understand a person, how they think, how they are motivated, what communication style works best for them, what management style works best for them. Predictive Index, Strengths Finders, Myers Briggs to name a few.
Get to know the people on your team and identify if there might be an outlier. If its clear that you have folks on your team that may be missing the characteristics of a self disciplined individual, then you should take every chance to coach those people as much as you can or make the difficult decision to remove them from the team.
Self disciplined individuals have the following characteristics.
Confront reality through rigorous thinking
Engage in intense debate/interaction
Willingly work within a self organizing framework
Live the values
“How do you make team members trust each other?“ “You trust them first!"
(Quote from Johanna Rothman at Agile 2008.)
Facilitate getting the knowledge about each person out to the entire team. If you care about building good working relationships, then as a team member you should be open to learning as much about your team members as you need to operate effectively.
Learn how to use Collective Wisdom effectively.
There are many decisions to be made and questions to be answered regularly on an agile project. Prioritization of functionality, estimation of requirements, determining how much work a team can get done in an iteration, the definition of done. How do these decisions get made? You are not making decisions unilaterally. You have to learn how to utilize collective wisdom effectively.
What is collective wisdom? James Surowiecki makes the case in his book, The Wisdom of Crowds that under the right conditions a group will most times make a better decision than one expert. What are the right conditions? Surowiecki says:
Diversity of opinion
Aggregation of opinions
And how do we accommodate these conditions on an agile team?
Diversity of opinion
when all roles participate in writing acceptance criteria
when developers of different experience levels and backgrounds estimate
when customers participate daily to direct functionality, prioritize and provide feedback
By using planning poker for estimation
By having folks independently write retrospective items before discussing
By allowing the customer to have their own test environment after the showcase
Distributed teams often have different thoughts and opinions about process, tools, etc.
Having regular cross project role based catch-ups will allow for information to be shared in an effective way
Aggregation of opinions
Prioritization drivers such as trade-off sliders
In closing, there are many new leadership challenges introduced by the methodology called agile. Project managers and Iteration managers have to take a different approach to leadership on agile projects than on traditional command and control style projects.
Make sure you are facilitating your team through their maturity stages. Identify blockers to building a self-organizing team and resolve them quickly. Monitor your team’s health regularly.
Make sure you know your team members as people and professionals. Understand what their skills and capabilities are as well as their communication style, their cultural background and their personal experiences. Facilitate that understanding throughout the team.
Make sure you understand and seek out opportunities to benefit from collective wisdom without getting stuck on the need for consensus. Sometimes as the PM or IM, you have to make a call.
As part of the Training team at ThoughtWorks Studios, we have drawn from our experience on Agile projects to offer interactive, lab-based workshops such as Agile Project Management and Agile for Executives that seek to enable you to make the most out of Agile with a focus on the business perspective.