Effective agile teams are able to decide how to do their work, and to continuously learn and improve their way of working. Team working enables them to deliver high quality software that satisfies the needs of their customers. They can use techniques like swarming and pair working to solve complex problems quickly and reduce their technical debt.
Quality through team working
How does agile team working help to deliver high quality software? It has to do with multidisciplinary teams that are able to solve complex problems, driven by their motivation and empowerment.
Most often quality issues are complex problems. They need multiple views to solve them. Agile teams are multidisciplinary, they consist of professionals with different skills and knowledge. Such teams have a diversity that helps to find innovative solutions and the known how to collaborate for effective and lasting solutions.
Giving people freedom to decide how they will do their work will empower them. Self organization gives freedom to teams. In such teams motivation is often high since people feel that they are in control. Reaching the goal is what counts for the team and every team member will do the best he or she can to get there.
Team techniques for quality software
When there is a major issue, swarming can be used to address it effectively and quickly. The whole teams focuses on a single issue, together they will do whatever is needed to solve it. Agile teams should have all the skills and knowledge that is needed to deal with problems effectively. They know how to communicate and collaborate to get the job done.
Team members can work in pairs to increase the quality of the software while writing it. They can take turns on the keyboard, and switch to remain sharp and spot problems or opportunities to improve code and reduce technical debt. Pair working makes it possible for professionals to learn new skills or develop existing ones. If you’re very deep into something, chance are big that you start overlooking stuff, this is where pair working can help you. Also, 4 eyes can see more than 2 eyes :-).
Managing teams for quality
Agile teams should be self organized. They don’t need managers to decide for them. So you might wonder what can managers do to enable their teams to deliver high quality software as telling them how to do their work isn’t needed (in fact it will probably result in lower quality).
What managers can do is:
- Make clear that quality matters to them.
- Reward teams that deliver high quality software.
- Remove any impediments that teams bring up.
- Act a a servant leader to help their teams to be successful.
- Arrange for coaching and mentoring for teams.
- Give room to teams to learn and improve.
Learning to deliver high quality software
Software quality is free, teams that invest time and energy in building the right products with good quality will save money. Team working enables them to deliver high quality software.
The book What Drives Quality explores how quality plays a role in all of the software development phases, it takes a deep dive into quality by listing the relevant factors of development activities that drive the quality of products. It provides a lean approach to quality, which analyses the full development chain from customer request to delivering products.