Leadership in Anarchy
I was listening to the SE Radio podcast interview with Fred George on Programmer Anarchy and I found myself reflecting on the importance of leadership, even in a structure extolled for having “no managers”. Technical leadership is required even in (especially in) situations where a team is self-organized. George uses a definition of anarchy that reflects this very situation, a self-organized team that imposes its own regulation. In this situation, everyone is a programmer and I would argue everyone must lead in some fashion.
Programmer anarchy includes many of the values I love about Agile. To be clear, I don’t think it’s the new standard for software development. I appreciate the focus on fast-feedback and self-directed working that programmer anarchy advocates. I also appreciate the emphasis on the individuals and the programmer as a key player in any business, arming the programmer with the business metric and expecting innovation and solution. I don’t see every problem fitting the characteristics that suit a method like programmer anarchy, and I could see individual developers wanting to be left alone pushing for this methodology (ignoring the fact it may be a bad choice for their project).
I like that George frames his methodology with the Cynefin Framework, something that I’ve come to believe helps describe how we’re trained in tactics that fail in new (more complex) circumstances. The complex problem space is described as a situation where cause and effect can only be perceived in retrospect, not in advance. Executive leadership requires one to recognize and employ the tactics required to address this complex space. Many leaders fail to make this adjustment as required when working within a complex space and trained as a deep subject matter expert.
Programmer anarchy highlights some critical elements of leadership that are required regardless of whether you follow this new experimental process, or whether you are in a more traditional agile software development team.
Effective communication is key. The team is self-organizing; therefore the individuals on the team must communicate with one another without an existing “norm” set outside the team. While this allows the team to set expectations that make sense to the team, it also requires the team to fill in empty space and be emotionally evolved enough to spend time investing in communication. Leadership requires a mastery of communication
Adapt to the situation. According to George, the leadership of the team changes as the needs change. A programmer who leans more towards architecture may lead in the beginning of a project, where someone with more operational details may lead at the end during deployment. There is no consistent “team lead” role in programmer anarchy. In the social style behavioral tool it refers to versatility as creating actionable strategies for working with different styles. Leadership requires this same type of adaptation to the environment.
Feedback, feedback, feedback. The success of the team is defined by the business goals (say making money). The programmer and the team are measured by whether they are meeting the business goals. The individuals need fast (and continuous) feedback on the performance of their action in order to adjust. Any individual in this self-organized team that isn’t rapidly seeking feedback and adjusting to improve the outcome against the goals isn’t contributing their share to the success of the team. Leadership requires constant evaluation of what goals are most important, what feedback exists to measure efficacy against those goals, and what action needs to be taken to adjust.
Relationships are important. George describes the programmer anarchy organization as allowing for the team to “vote a member off the island”. He refers to the massive effect of the toxic employee. Therefore, the team can reject someone who doesn’t fit for any reason. The root cause may be failure to deliver results. The team may simply believe s/he just doesn’t fit with the team culture. Leadership requires building positive relationships with others, including helping others achieve their goals in addition to achieving your own.
Like what you've read? Share on LinkedIn, Twitter or Facebook with the link below and subscribe!