I am an enthusiastic advocate of Agile software development practices like SCRUM. Its ability to allow teams to focus on delivering product and communicate status has made it one of the easiest and best software development techniques I have seen in a career that has used ad-hoc, Waterfall and everything in-between.
Recently research out of New Zealand has furthered the cause by performing a study that involved 58 practitioners, in 23 organizations over 4 years. In reading a forwarded article on "Smarter Software Development" and then looking at the thesis "Self-Organizing Agile Teams: A Grounded Theory" it had two interesting takeaways:
1) Self organizing scrum teams naturally perform a balancing act between:
- Freedom and Responsibility -- The team is responsible for collective decision making, assignment, commitment and measurement and must choose to do them.
- Cross Functionality and Specialization -- The team is responsible for deciding when to distribute work across team members or have each focus on a certain part of the project.
- Continuous Learning and Iteration Pressure -- The team is responsible for delivering on their own schedule and the retrospectives to improve each sprint.
The advantage of giving this balancing act to the team is that they take ownership of the solution with the full understanding of all the trade-offs that will need to occur each sprint. By distributing the work to the team, it also makes them accountable to one another to making sure that the goals are achieved.
2) Self organizing teams have its members assume some well defined roles spontaneously, informally, and transiently to help make their projects successful:
- Mentor -- Guides the team in the use of Agile methods.
- Coordinator -- Manages customer expectations and collaboration with the team
- Translator -- Translates customer business requirements to technical requirements and back.
- Champion -- Advocates agile team approach with senior management.
- Promoter -- Works with customers to explain agile development and how to collaborate best with the team.
- Terminator -- Removes team members that hinder team’s successful functioning.
These roles are an emergent property that come from using agile development methods. They are not prescribed explicitly as part of any of the agile development philosophies, but they arise as part of successful use of the methodology.
I am eager to see more research emerge as to where Agile software development practices succeed and where they need improvement. There is a large body of evidence that shows it to be a successful strategy, and having the research to back it would help encourage its adoption.
No entries found