The Scribe’s Oath

Andreas Loizou
3 min readMay 8, 2018

I wouldn’t consider myself to be a “Software Engineer”.

Instead, I consider myself to be a Software Craftsman.

Using technology, I try to create beautiful, sharp, well-designed and architectured code that can solve real problems and improve our lives. By no means is my work perfect, but I do consider myself to be professional.

More often than I would like, some companies rush to put not thoroughly tested products/features into production. They emphasize on producing “something that seems to be doing the job”.

Of course, time and deadlines are limiting factors, but producing unfinished products will result in “unexpected” (very expected) behaviours. By “unfinished products”, of course, I do not mean products with missing features but rather products not adequately tested.

Holy sh*t, how have we missed that case?

And then the company’s engineers are always busy fixing the mess instead of producing valuable work.

We, engineers, have to work more on the quality of our work. Fixing bugs while in production can be very costly, time-consuming and stressful. And the worst is that several of these bugs could have been prevented while in the development phase.

Not having proper manual/automated testing beforehand is not very wise since -sometimes critical- bugs will arise. Writing unit/integration tests, test cases, and test plans can be time-consuming, but it is crucial since the time and money one can spend on fixing/patching staff can be greater. Plus, by writing tests, you can have more confidence in your code, and other engineers can easily understand and work on your code.

Robert Martin (Uncle Bob) is a well-known figure in the Software Engineering industry. He is the co-author of Agile Manifesto and has written several widely read books on Software Engineering. These include the Clean Code, The Clean Coder and Clean Architecture.

He has also written the following oath. It’s an oath that many people, including me, have adopted. The Software Engineering world would be much better if we had some of these in mind.

Uncle Bob’s — Scribe’s Oath

  1. I will not produce harmful code.
  2. The code that I produce will always be my best work. I will not knowingly allow code that is defective either in behaviour or structure to accumulate.
  3. I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.
  4. I will make frequent, small, releases so that I do not impede the progress of others.
  5. I will fearlessly and relentlessly improve my creations at every opportunity. I will never degrade them.
  6. 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.
  7. I will continuously ensure that others can cover for me, and that I can cover for them.
  8. I will produce estimates that are honest both in magnitude and precision. I will not make promises without certainty.
  9. I will never stop learning and improving my craft.
GOTO 2017 • The Scribe’s Oath • Robert “Uncle Bob” Martin

Is there anything you can use to help improve yours’ and your peers’ work?

--

--

Andreas Loizou

Software Engineering Trainer | Director of Engineering @ https://www.qbeat.io | @UniofOxford alum. No limits. Dares the Unknown