The latest episode of Software Engineering Radio contains an interesting discussion about a project management technique known as Developer Anarchy. Fred George, the interviewee, defines anarchy as a group of people managing themselves, with few or no rules being imposed by higher levels of management.
George describes how he first discovered this technique when working at a small start-up company in the advertising industry. The development team was given the single objective of making as much money as possible, and then left to work using their own initiative. By giving the developers freedom to rapidly experiment with new technologies, the company soon grew to become highly successful.
This success was later replicated in a diverse range of organisations and industries, including the well-established newspaper The Daily Mail. In this case, a layer of architects and managers was stripped away, with some retraining to become software developers and others leaving to find work elsewhere.
Using this method it’s crucial that all members of the team write code; there are no managers in the traditional project management sense. Instead, it is anticipated that team leaders will naturally emerge, and that leadership will fluctuate throughout the life of the project. For example, a developer with advanced architecture experience may assume the lead role early on, giving way to a developer with greater deployment experience in the later stages.
There are however three key roles that will always exist: a lead developer, who is responsible for mentoring the rest of the team; an ambassador, who is responsible for communicating and negotiating with other teams; and a concierge, who is responsible for securing any needed resources.
Together the team has the ability to vote a developer “off the island” if it is felt that they are not pulling their weight.
Complex adaptive systems
Listening to this podcast brought back memories of studying Open University module T848 – Managing technological innovation. As part of this module I studied a paper from 2005 that discussed the theory of complex adaptive systems. These are systems in which semi-autonomous agents work together, abiding by a simple set of rules, to achieve a common goal. An ant colony would be a classic example of a complex adaptive system.
The paper describes how the theory of complex adaptive systems can be applied to software development teams, and lists the following six enabling practices:
- Ensure a shared guiding vision for all team members
- Enable interactions and adaption through small teams, close relationships, and clear responsibilities
- Loosen stifling control – adopt a light touch management style
- Establish and refine a set of simple rules
- Provide free and open access to information
- Continually monitor and tune the process
Even though Developer Anarchy appears to simply be a catchy name applied to a project management theory dating back at least 11 years, this episode of Software Engineering Radio felt very fresh and I would highly recommend giving it a listen if you have an hour to spare.
Furthermore, if you are interested in this kind of topic then I would also highly recommend checking out some of the Open University’s postgraduate modules, such as T848.
Finally, I believe that this theory, and in particular the six practices detailed above, could be employed to great effect by all types of team, not only the extreme anarchists.