BugsZero Kata is something that Johan Martinsson created in the awake of the movement BugsZero. It is the idea that bugs are optional, and we can improve the system that bugs exist less and less.
This happens at many levels: specifications, coding, deployment. The idea is to fix not only the bug, but also the root cause, that is often the design. There are two cases: either we have a bug and we fix it, and see how to make that type of bug impossible, or not likely, or we look in code review how easy it will be to work with this code in the future. So we need to question the design up-front in the code review process. We don’t look only at code, we also look at design and we are looking at potential issues that might appear because of the current design. When doing that, a lot of experience is useful, but not necessary. Johan says we can look at code that we don’t like and that we can spot very quickly and then ask ourselves if the code is bug prone.
In order to understand how to improve your code so that it respects the BugsZero quality, we need to constantly look with a critical eye at the code and if we don’t fine anything, the code is good. If we find anything we need to find alternative design.
We also can look at major and minor defects from the past and understand which was the root cause of that defect. Almost always the root cause is design, architecture, or other high level concepts.
Never blame the user, try to change the system. In the case of programming, the user of the code is the programmer. Try to fix the system (design, architecture, review process, deployment, etc) whenever some defect appears.
This video is part of a #RemotePairProgramming session that I had with Johan on the topic of BugsZero. Check it out for more details.
Check the BugsZero kata here
On Twitter you can find a lot of ideas around BugsZero here
My YouTube channel here