In November 2015 Robert “Uncle Bob” Martin, the person behind the great software book – Clean Code and a co-author of the Agile Manifesto, published an ethical framework for developers called “The Programmer’s Oath.”
Robert Martin believes that experienced programmers should share and teach less experienced software professionals good practices.
The Programmer’s Oath, goal is driven from the clean code series – how we can develop better and cleaner code, following good and ethical methodologies.
The Programmer’s oath as published originally:
“In order to defend and preserve the honor of the profession of computer programmers, I Promise that to the best of my ability and judgment:
- I will not produce harmful code.
- The code that I produce will always be my best work. I will not knowingly allow code that is defective either in behavior or structure to accumulate.
- I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.
- I will make frequent, small, releases so that I do not impede the progress of others.
- I will fearlessly and relentlessly improve my creations at every opportunity. I will never degrade them.
- I will do all that I can to keep the productivity of myself, and others, as high as possible. I will do nothing that decreases that productivity.
- I will continuously ensure that others can cover for me, and that I can cover for them.
- I will produce estimates that are honest both in magnitude and precision. I will not make promises without certainty.
- I will never stop learning and improving my craft.”
Going over the statements, we can see that velocity, efficiency and quality are tightened together hand in hand. So other than goodwill – what else can help developers to follow this oath (I’m considering myself as a developer and I strongly believe in the above)? The answer in my eyes is quality intelligence technology.
Learn More About Quality Intelligence
Quality Intelligence technology facilitates the collation and analysis of data from multiple sources thus providing software development teams with sufficient insight and visibility into factors affecting the velocity, quality, and efficiency of their software engineering processes and deliverables.
We can clearly understand that pushing untested code to production is breaking our programmer’s oath. In order to release software quickly and be efficient, we should leverage the data generated across our software pipeline, and plan our quality activities based on real insight. Based on data we can understand where additional tests should be developed, where additional tests bring no value and what is the actual status of my builds. Going over the statements again with quality intelligence technology in mind will look simpler.
Adding Quality Intelligence platform to our toolkit can help us keep the programmer’s oath!