My Programmer's Oath
Objective is to provide a public statement to state my aspiration and values similar to Robert “Uncle Bob” Martin’s Programmer’s Oath, on his Clean Coder Blog, in November 2015.
The Start
I realized I’ve been working on this idea though a variety of documents, tech talks, job postings, and profile descriptions.
I am committed to the continual learning and improvement of my craft as a Software Development Professional through the relentless pursuit of mastery in Extreme Programming (XP) principles of Test-Drive Development (TDD), Refactoring, Pairing, and Simple Design, and Clean Coding practices.
I want to use my time in this profession, to find ways of applying software and technology to worthy aspirations to help us be more human, more effective, and more intentional!
That’s a start, but there is plenty more to dig through.
Reflecting on the Original Oath
As I work through this thought process, I want to go through each of Martin’s original statements, documenting thoughts and questions with each reflection. Thinking about these as words we could offer as a promise to the world.
I will not produce harmful code.
Placeholder to elaborate…
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.
Placeholder to elaborate…
I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.
Placeholder to elaborate…
I will make frequent, small, releases so that I do not impede the progress of others.
Placeholder to elaborate…
I will fearlessly and relentlessly improve my creations at every opportunity. I will never degrade them.
Placeholder to elaborate…
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.
Placeholder to elaborate…
I will continuously ensure that others can cover for me, and that I can cover for them.
Placeholder to elaborate…
I will produce estimates that are honest both in magnitude and precision. I will not make promises without certainty.
Placeholder to elaborate…
I will never stop learning and improving my craft.
Placeholder to elaborate…
I will continuously ensure others can cover for me, and that I can cover for them.
Elaborations:
- I will not create overly complicated code that cannot be maintained by others.
- I will create code that can safely and efficiently be maintained and enhanced by others after I stop working on this codebase.
Thought Backstage
A place to put information as I work on this particular thought to help with organization.
Questions / Backlog
- What if we had a “Programmer’s Warranty” that made a coder responsible for their code, even after employment?
- Would that cause programmers to change how they work or make it easier to abide by the oath (skin in the game)?
- Transparency: how I write my code, what resources I use, do I use machine learning, coding assistance from GitHub Copilot, ChatGPT, third party libraries like Resharper, Intellisense, etc.
- How to address that most people appear to take on jobs or titles that are challenging, offer growth, and not necessarily that they have mastered? This causes conflict with getting into situations without having “done this before”.
- When higher-level developers, architects, and leadership “try, but fail” is too tempting to find another job, abandon those who they were leading, and “try again.” Much harder and more painful to deal with the mess and then decide whether to move on.
Resources and References
- The Programmer’s Oath, Robert “Uncle Bob” Martin, Clean Coder Blog, Nov 2015.
- The Programmer’s Oath: The Clean Coder, Episode 45, Robert “Uncle Bob” Martin, CleanCoders.com, Feb 2017
- The Scribe’s Oath, Robert “Uncle Bob” Martin , GOTO 2017, YouTube, Jun 2017.
- Artificial Intelligence: Last Week Tonight with John Oliver (HBO), John Oliver, Last Week Tonight, YouTube, Feb 2023.