Clean Code Development: The values
The value system of Clean Code Development comprises the values of evolvability, correctness, production efficiency and continuous improvement.
You are not simply a Clean Code Developer, but you develop into one over time and over many exercises. It is not about learning a few principles and practices by heart, but about deeply internalizing the entire value system. That is why the value system of Clean Code Development (CCD) is divided into 5 levels, which you climb one by one as a developer. However, the entire process can be seen as an eternal cycle: anyone who has worked through all grades starts all over again.
Starting at the red level, it is important to incorporate a first part of the clean code developer components into daily work and practice again and again. The red grade is designed in such a way that any developer can get started with minimal effort. Changes to project conditions should hardly be necessary. Anyone can therefore start their journey as a clean code developer “quietly” without directly informing the entire team.
After the foundations for the continuous improvement process have been created in the red grade, the orange grade is about applying some fundamental principles to the code and gaining initial experience to increase productivity: automating processes. Since only correct code is good code, automation is used to check correctness. It is therefore not about a nice-to-have property of code, but about its essence.
The yellow grade is all about automated testing. At orange, it was still about integration tests that could be carried out from outside. They did not necessarily need to interfere with the code. After the yellow grade, however, it is no longer possible without tests under the surface. And not only that: The smallest possible units should be tested, not just functional punctures. This means a change in coding practice, because otherwise individual classes cannot be tested in isolation, i.e. independently of services used. That is why the yellow grade also includes object-oriented principles, because only with them is it possible to detach code to be tested from its “background”.
Automation continues at a green temperature. This is the key to productivity and responsiveness. Only when a maximum of many tasks in software development are automated can the Clean Code Developer concentrate on the essentials: implementing customer requirements. Without automation, development often depends on small details — which takes time. Correctness checks and releases are then more punishment than means to success. After automating the tests, however, production is now on the agenda. Testing code at a developer's workplace is one thing. Translating and testing it successfully on an independent computer is another. This is the only way to find more or less subtle dependencies on the individual developer workstations. This practice is then garnished with further principles for code structuring and a tool for better architectures.
With the blue grade, you are on the home straight of the CCD value system. Now it's a matter of taking automation one step further. After translation and testing, deployment is now on the agenda. However, the blue grade is now primarily about aspects of software development beyond code and tools: Clean Code Developers not only take care of good structures on a small scale, but also plan them on a large scale from the outset. It is therefore about architecture. However, since we are aware that no planning can define a perfect solution, not only architecture, but software development as a whole also includes a suitable process model. This is iterative and should now also be practiced while working at the blue grade.
At the black level, the CCD prospective customer wears a black bracelet to identify himself as a “seeker.” However, he does not work on himself every day in accordance with the CCD value system. The black grade bracelet simply signals interest and reminds you to create the conditions for working on the red grade. Black bracelets can therefore be distributed without restriction. They are viral advertising posts for Clean Code Developers.
The white grade completes the circle. It combines all principles and practices of the color grades. Anyone who has reached the white level is constantly working on all facets of the value system. However, since such consistent attention is difficult to achieve, we expect the Clean Code Developer to start working in the grade system again after some time. After starting at the red level again after 21 days, he can concentrate a bit more on a part of the value system in his daily practice. This serves to refine the application of the aspects of the individual grades. Example: The practice of version control is not binary. Anyone who has used them from the red temperature on doesn't necessarily exhaust them. When he goes back from white to red, he gives himself the chance to go deeper into version control during repetition. There is no principle, no practice that would not benefit from revisiting it in repeated runs of the grade system.
The value system of Clean Code Development comprises the values of evolvability, correctness, production efficiency and continuous improvement.
To become a Clean Code Developer, you need to internalize a number of virtues: Appreciate variation, only do the bare minimum, isolate aspects etc.