When an organization is experiencing quality problems with their products, agile software development often isn’t the first solution that comes up in people’s minds. I see people trying to address them using classical waterfall based planning approaches, only to find out that it will make problems even worse.
Agile software development engrains quality by applying visual management, using empowered teams and by inspecting and adapting to continuously improve the way of working. Therefore I recommend agile, not only to deliver working software faster but also with the right quality. This posts shows how empowering the team helps to increase the quality of products.
Adding people doesn’t work
In many organizations the solution applied when project are experiencing major quality issues is to add more people to do testing, add people for fixing defects, or both. Unfortunately that rarely solves the quality problems. On a short term it often makes things worse and delays deliveries. In the long term it might work, if done carefully to not disturb the stability of teams.
Of course adding people to do testing will help to find more defects, and you need to find them before you can remove them. But you can’t test quality in. Finding more defects when you already have a big list doesn’t help to improve quality, it is better to solve the defects that you have already found and remove impediments to increase the capabilities of the testers that are already on the team, allowing them to find more defects
Adding people to solve defects helps to lower the number of resident defects, but there is a big risk that new defects are introduced if the new people do not know the software. Bad bug fixes are a nightmare, you don’t want that on top of the quality problems that you already have.
Adding people either for testing or solving defects destabilizes a team. Team members will have to spend time to learn each other and to help the new people to get started in the team. Brooks’ law states that adding people to a late project makes it later. Also the bigger the team becomes the more time it takes for team members to communicate, the overhead in the team will increase. To conclude, adding people is usually not an effective solution to address quality issues.
Of course it is better to prevent big quality problems from happening, either by addressing them when issues are smaller and fewer, or by changing your way of working to assure that they do not happen. But if it’s too late for that, and you are experiencing major quality problems, what can you do?
Empower the team!
Agile teams are self organized. They don’t need managers to decide for them. Teams are empowered and able to decide what to do and how to do it. So how does empowerment help to address quality issues?
Most quality issues are complex problems. They need multiple views to solve them. Agile teams have the diversity that is needed to find solutions and known how to collaboratively come to effective and lasting solutions.
When there is a major issue, swarming can be used to address it effectively and quickly. The whole teams focuses on the issue and together they will do whatever is needed to solve it. Agile teams are cross disciplinary, so they have all the skills and knowledge that is needed. They know how to communicate and collaborate to get the job done. Reaching the goal is what counts and every team member will do the best he or she can.
What can managers do to enable their teams to solve the quality issues. Telling team members what to do isn’t needed, in fact if they try it will create more problems in stead of solving them. What they can do is remove any impediments that teams have. By acting a a servant leader they will help their teams to be successful.
Quality is still free
So next time when you are experiencing quality issues it is better to address them before they get out if control. Empower you team so that they can solve them effectively and quickly works better than adding people. With agile self organization teams can increase their performance and capabilities to deliver high quality products. No budget increase is needed, it is a matter of mindset, focus and giving attention and time to things that really matter : People!
This blog post will become part of the book What Drive Quality? Understanding Software Quality to Prevent Problems, a book based on the successful series What Drives Quality that is written and delivered using a lean and agile approach. Understanding what drives quality enables you to take action before problems actually occur, saving time and money.