The Retrospective: A Key to Self-Organization
This article is a summary of my opinions, expressed at CodeQuirks.com
One of the most interesting aspects of writing computer software, at least for me, has been the collaborative nature of what we do. I enjoy seeing the various ways in which a team can be organized, or organize itself, and the results of each of them. What makes software development effective, in the end, is an effective team that can deliver quality solutions to their customers in an efficient manner.
That’s why lately I’ve been absolutely fascinated with the affect agile practices have had on my team. The results have been absolutely amazing, but none of them come even close to comparing with the power of self-organization.
Self-organization has been one of the driving factors of the success of our team in the past few months, and I believe one of the most important aspects of our behaviour is our sprint retrospectives.
What does Self-Organization mean?
Self-organization is a process of attraction and repulsion in which the internal organization of a system, normally an open system, increases in complexity without being guided or managed by an outside source. Self-organizing systems typically (but not always) display emergent properties.
Self-organization usually relies on four basic ingredients:
- Positive feedback
- Negative feedback
- Balance of exploitation and exploration
- Multiple interactions
But what does that really mean for a software team?
Well it implies a state of flux and constant change. It also implies that outside forces will eventually affect the team and influence its growth. However, these outside forces are not allowed to guide or manage the growth of the team. The team will, instead, react to the pressures of the outside world and adapt to them in order to operate more effectively. It really is a powerful statement, but how on earth does it work?
Positive Feedback/Negative Feedback
The purpose of a good retrospective is to look back at the previous sprint or iteration, and identify what things contributed to the successes and failures of the team. Often teams will identify many positive driving factors which helped them, as individuals, feel as if they were doing a good job. They will also identify negative factors which slowed them down, or made them feel as if they could have done better.
Balance of Exploration and Exploitation
Identifying what went wrong in a sprint is an excellent starting point, but that knowledge would be of little value if the team didn’t have ideas for how to fix the problems or prevent them from occurring in the future. Perhaps even more importantly, if the team isn’t aware of ways in which it can repeat the positive factors of the sprint, the benefit from them may quickly be lost.
The primary artifacts of a successful retrospective are knowledge and action. The team is empowered with knowledge of what works, and what doesn’t. This way each team member can learn from the experiences of their teammates. The team takes action based on this new knowledge, in order to help become more effective and efficient.
While I go into a fuller analysis at my blog, I believe it is apparent that the sprint retrospective is one of the biggest keys to self-organization success. It provides many of the key properties a team requires in order to grow and achieve results. I can say from personal experience that the most important part of effective sprints, for me, has been effective retrospectives because they have allowed me to identify key areas for growth and learning. Perhaps one of the most important things you can do as a team, at least as a first effort, is figure out how to make these meetings flow smoothly and provide value effectively.
“I have but one lamp by which my feet are guided, and that is the lamp of experience. I know no way of judging of the future but by the past.” (Edward Gibbon)