[フレーム]
BT

InfoQ Software Architects' Newsletter

A monthly overview of things you need to know as an architect or aspiring architect.

View an example

We protect your privacy.

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Unlock the full InfoQ experience

Unlock the full InfoQ experience by logging in! Stay updated with your favorite authors and topics, engage with content, and download exclusive resources.

Log In
or

Don't have an InfoQ account?

Register
  • Stay updated on topics and peers that matter to youReceive instant alerts on the latest insights and trends.
  • Quickly access free resources for continuous learningMinibooks, videos with transcripts, and training materials.
  • Save articles and read at anytimeBookmark articles to read whenever youre ready.

Topics

Choose your language

InfoQ Homepage News Uncle Bob Proposes an Oath to Programmers

Uncle Bob Proposes an Oath to Programmers

Nov 28, 2015 4 min read

Write for InfoQ

Feed your curiosity. Help 550k+ global
senior developers
each month stay ahead.
Get in touch

Uncle Bob proposes an oath to software programmers as other professions have, considering the importance of this craftsmanship.

A year ago, Robert C. Martin, a.k.a. Uncle Bob, noticed the importance of the software programmer, writing:

We rule the world. …

Nothing happens in our society without software. Nothing….

Without software: Phones don't ring. Cars don't start. Planes don't fly. Bombs don't explode. Ships don't sail. Ovens don't bake. Garage doors don't open. Money doesn't change hands. Electricity doesn't get generated. And we can't find our way to the store. …

Martin went on observing that having such a great role in the society programmers should be responsible and follow a code of ethics, to use the power they have for the good of the society. Programmers should decide what is to be their responsibility and it should not be imposed on them by the government or the employers. And he sketched a code of ethics inspired by the Order of the Engineer. A year later, Martin writes again on ethics, this time more about the quality of the code written, proposing The Programmer’s Oath that every member should take to “defend and preserve the honor of the profession”:

  1. I will not produce harmful code.

  2. The code that I produce will always be my best work. I will not knowingly release code that is defective either in behavior or structure.

  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 the code at every opportunity. I will never make the code worse.

  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.

Martin’s proposal had various reactions on Twitter, from:

(削除) @ (削除ここまで)klenkes74: my assumption is that my employer will fire me if I live strictly by that rules.

(削除) @ (削除ここまで)QuiteVague: Most programmers are in no position to commit to these- the balance between quality and business needs isn't in their hands. … I've raised almost every one of these to a variety of managers. And, as I've said, you win some, you lose some :)

(削除) @ (削除ここまで)DamienPetrilli: very utopian, totally not applicable in the real world for most.

(削除) @ (削除ここまで)asthasr: #9 is the only valid one. Others are impossible ("proofs") or rely on external factors over which we have no control.

(削除) @ (削除ここまで)sleepyfox: I would argue that 8. is impossible to uphold, due to inherent uncertainty. An estimate is at best a guess, not a promise.

to:

(削除) @ (削除ここまで)brianvhughes: #5 is a hope, at best. #8 is impossible. But, it’s not all bad

(削除) @ (削除ここまで)simonbrown: "I will never stop learning and improving my craft." <- yes!

(削除) @ (削除ここまで)Khris_Fernandez: I would love we all sign this in every project I work on from now ! Sadly, some will never do. Anyway, thanks Bob.

(削除) @ (削除ここまで)GGrell: I laughed, I cried, I rejoiced. This is some of what I strive for writing software every day.

Answering to some of those not convinced by the need of an oath, Martin argued that software engineers should have ethical responsibilities, and like doctors, lawyers and engineers they should have an oath which is “dogmatic by definition”.

On the same note, the founders of Rugged Software have written a few years back The Rugged Manifesto, a collection of principles that programmers are invited to abide by:

I am rugged and, more importantly, my code is rugged.
I recognize that software has become a foundation of our modern world.
I recognize the awesome responsibility that comes with this foundational role.
I recognize that my code will be used in ways I cannot anticipate, in ways it was not designed, and for longer than it was ever intended.
I recognize that my code will be attacked by talented and persistent adversaries who threaten our physical, economic and national security.
I recognize these things – and I choose to be rugged.
I am rugged because I refuse to be a source of vulnerability or weakness.
I am rugged because I assure my code will support its mission.
I am rugged because my code can face these challenges and persist in spite of them.
I am rugged, not because it is easy, but because it is necessary and I am up for the challenge.

With an oath or not, following the lines of a manifesto or not, perhaps everybody agrees that all software engineers should aim at writing good software. What that means and how to achieve it is another story.

Rate this Article

Adoption
Style

Related Content

The InfoQ Newsletter

A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example

We protect your privacy.

BT

AltStyle によって変換されたページ (->オリジナル) /