1. 34

A while ago I came to the conclusion that programmers should take an oath, just like doctors and engineers. I couldn’t find one that resonated with me, so I wrote one.

Have a look at it and let me know what you think.

  1.  

  2. 18

    Point zero is arguable. Is it never permissible to write code that hurts others? Well, that’s the same question as whether self-defense is ever justified, or whether the existence of weapons is ever justified, or whether the existence of a military is ever justified. Not being a pacifist, I cannot agree to it as it stands, and being a pragmatist, I suggest you punt the issue as being outside of what this oath should try to make all programmers everywhere agree on.

    1. 6

      I suggest you punt the issue as being outside of what this oath should try to make all programmers everywhere agree on.

      If you want something everybody agree upon, write an ode to motherhood.

      But being a pragmatist, I wouldn’t suggest to make an oath that “all programmers everywhere agree on”.
      Such an oath would be meaningless, thus useless and pointless.

      If we need an oath (and I think that our profession is still too primitive to get one) it must have a meaning.

      The Hippocratic Oath indeed was not politically neutral.
      It didn’t contain the primum non nocere rule. It was much more!

      It imposed to generations of doctors an ethical and political conduct through practical prescriptions.

      And, as the husband of a doctor, I can assure you that it’s still taken seriously!

      1. 5

        From my understanding of human nature I would say that doctors who put patient before profit would have done so without an oath, and those that put profit before patient do so, naturally, regardless of the oath.

        1. 1

          Well in Italy a doctor that violates his oath can be punished by the Orders of Doctors, up to the ban which forbid him the practice.
          And such ban is legally enforced.

          That’s why a oath must have a meaning: to enable an ethical comittee to evaluate and judge when bad things happen!

          And note that even the family of the doctor is legally bound by her Oath!

          A list of carefully crafted unenforceable intentions and unfalsifiable statements worth nothing.

          1. 1

            This is true of any service/product. Engineers (typically their employers) have been sued for malpractice [1] as have been contractors (for supplying substandard materials etc) [2] as have been architects [3]. None of whom have sworn oaths. There is nothing special about the hippocratic oath.

            1. 4

              There is a difference between being sued by a customer and being banned from an association of peers for your ethical misconduct.

              In particular if such ban will prevent you to practice your job for the rest of your life!

              This put a positive pressure to doctors in Italy to thinks about the ethical conseguence of their act.
              It doesn’t prevent bad behaviours from criminals just like the law doesn’t.
              But it prevents a careless conformism, and force good people to reason about aspect of their profession they would ignore otherwise.
              Also, sometimes it makes generational difference evident: as it happens when my wife and her father discuss of some therapies side effects or about their costs and so on.

              However as I said our profession is still too primitive to synthesise an Oath.

              The simple fact we are afraid of a meaningful one, is a proof of that.

              1. 1

                In India a common practice is to order a huge panel of tests for a patient. The tests cost a lot of money and are often done at specified vendors. In the United States this particular practice is slightly less common but there are well documented problems of doctors prescribing therapeutics from particular vendors. It’s possible that in Italy the Hippocratic Oath vastly reduces such misconduct, while in India and the US it doesn’t, but I am skeptical, again from my observations of human nature.

                1. 3

                  Italian doctors are not saints.

                  They have their issue with the economics of the profession (which actually are not part of their oath afaik).

                  But just like you judge a programmer upon their skills, you can do that with doctors.

                  But the fact is that it is common to listen very skilled doctors talking not just about technical aspects of their work, but about ethical concerns of their actions. Actually its more common they spend time about this than about new therapies that are discussed or shared very rapidly.

                  At least it’s commont if you spend time with several of them outside their work hours.

                  Its much less common to listen programmers talking about ethics. Actually most of us care more about tha next JS framework to try, then about the final effect of our work!

                  Talking about hackers ethics, or even just about the difference between free software and open source makes a lot of us feel uncomfortable or even upset.

                  This lack of social responsibility is due to our naive interpretation of our role in the society.

                  It let us code addictive dopamine based games and then go home and spend time with our families as if we hadn’t harmed anyone.

                  Any good person working as a competent architect to build a dangerous bridge would struggle about the people that could die because of him.

                  We don’t.

                  We are not bad. We are just ignorant.

                  Isn’t this a clear sign of the primitiveness of our profession? How can we produce an oath now?

                  1. 2

                    I suspect we are at an impasse.

                    I believe that ethics is something that requires many decades of education and guidance to develop and that this is absorbed from social mores (which we codify as laws and codes of conduct and what not) and that an oath, while nice, is very far from a major mover in making an individual ethical. Self regulation sounds nice, oaths make for nice ceremonies, but it’s all superficial.

                    Your belief is that oaths are very important and govern individual behavior and are therefore central.

                    However, I will make one note: Your remark “They have their issue with the economics of the profession (which actually are not part of their oath afaik).” surprises me. In most things, medicine especially, but also the legal and law-enforcement professions, economic incentives are a big part of un-ethical behavior and oaths are directed in large part at this.

                    The medical oath is supposed to guide doctors so that they look not to the profits of drug and testing companies (which give them kickbacks) or to hospital ordained surgical and diagnostic quotas (which also reflect economic incentives back to them) but to the safety and wellbeing of their patients who can be hurt when unnecessary treatment is inflicted on them.

                    In fact, your different interpretation of the oath reminds me that an oath, like anything else that is ceremonial and traditional, is so open to interpretation that it is basically useless.

                    1. 2

                      Perhaps the real significance of a professional oath is its ceremonial and public aspect. I think that what @Shamar has been saying is that someone under such an oath – sworn before an organized body of peers with some jurisdiction over them – feels bound by their peers appraisal of their ethical conduct, more than just their own. In other words, codified social mores.

                      1. 1

                        Yes, in part it is.

                        Like ethics and morality in general, like any other normative behaviour, a ritual is designed to benefit the community and thus is enforced by peers. It was true in Neanderthal tribes and it is true now.

                        A neutral and business friendly oath would be useless.

                        If it can be enforced by managers, the reproach from peers is pointless.

                      2. 2

                        Your belief is that oaths are very important and govern individual behavior and are therefore central.

                        No.

                        Let’s explain this in another way you might understand.

                        Let’s measure the ratio between ethical topics and technical topics in the dialogues that the members of a community engage in their free time. I can observe this in two well defined communities, the community of programmers and the community of doctors.

                        Put the frequency of these ratios in a graph. You will get something like a gaussian.

                        Then compare the two graphs.
                        The community with an Oath will have an higher average and higher deviation.

                        Doctors are more conscious of the ethical implication of their work than Programmers.

                        Obviously, you can cluster both Doctors and Programers according to some feature (their specializations for example) and you will see different graphs with different deviations.

                        For example, according to my observations, the Free Software hackers discuss more about ethics than Open Source communities. Both are deeply concerned with technical aspects, but Open Source communities feel unconfortable with ethical considerations even when they have practical and legal effects.

                        The same happens with different groups of doctors.

                        And both communities may expose different graph at different age groups.

                        Still the difference exists.

                        1. 1

                          Your remark “They have their issue with the economics of the profession (which actually are not part of their oath afaik).” surprises me.

                          @kghose let’s make an example, just to explain the difference in practice, with the sort of economical issues I’m talking about.

                          Two weeks ago my family and I were with my father-in-law for launch.

                          The father of my wife got a phone call from a patient with flu, that was asking the permission to go back to work despite being still sick. After some questions and answer about the course of the desease, the my father-in-law accepted.

                          Knowing the patient, after the call, my wife objected.

                          Her father stated that the patient need to work and his company need him back for a day (I do not know why… that was what the patient said). As a doctor, he cared about the patient life wholefully, not just the flu.

                          My wife (which is a family doctor just like her father) stated that no matter how bad the company wanted him back, the patient had to stay at home. Not just to recover from the flu. To avoid spreading the flu to collegues!

                          The dialogue became a bit harsh, actually, but always respectful. It took half of the launch. It stopped thanks to our daughters, that were a bit scared and confused (and bored).

                          To me, instead, it was extremely interesting.
                          Both of them implicitly referred to their Oath (it was not even needed to name Hippocrate, it was evident in their dialogue).

                          Their Oath is not neutral. It is a serious thing to them. It has practical effects.
                          It has Political effects.

                          Indeed because of it, they have issues with the economics of their behaviour.

                    2. 1

                      It’s very common in the Mid-South. Im actually visiting someone right now who is getting a bunch.

          2. 5

            “First, do no harm” has quite the backstory as an opening gambit in a professional oath.

            1. 11

              The question is precisely whether weapons do more harm than not having weapons, and I’m saying that question is too big for this oath to tackle. Doctors can lead with “First, do no harm” because, first, they’re usually focused on treating a single patient more than building a tool with broad utility, and, second, biological warfare is universally banned and reviled, so doctors can’t participate in the offensive aspect of warfare.

              1. 3

                I suspect all questions are too big to be tackled by oaths and all.ambiguity will be resolved by doing what I think makes sense (which is also how I resolve things without oaths).

                I don’t think they’re bad points or principles but I don’t care for oaths.

              2. 2

                You have a link to that?

              3. 4

                This is a good point that I hadn’t considered. What about something like this:

                I will only undertake honest and moral work. I will stand firm against any requirement that causes unnecessary harm.

                Obviously the necessity of the harm is in the eye of the beholder, but that’s a pretty deep philosophical rabbit hole.

                1. 3

                  Is it never permissible to write code that hurts others?

                  I belive that you’ve phrased it inadequatly. It should rather be something along the lines of “those who take this oath, promise (which in the end really isn’t that much) not to work on software that causes harm” – after all there’s no coercion to take this oath, it’s just something, certain people want to do, because they belive in the values and ideals it’s written by. Personally, I’d even find it wierd if an oath were not to include this, if only for symbolic reasons, even if everyone who signed it were to cause “harm” on a daily basis. Most people aren’t naive Christians, in the nietzschian sense, and know when to promise and lie, after all, regardless of what the categorical imperative, utilitarian analysis or anything elese says.

                  That being said, there is still a certain naïve hopefulness, I belive in those who (quite literally) commit themselves to these theses. How is one to really quantify harm. Is writing an open source library that ends up being used by the NSA good or bad? Is discovering a security hole in some particularly widespread software, and (maybe a bit stupidly) telling the developers about it in a public mailing list, whereby hackers and other malicious agents get the opportunity to about it, while it remains unpatched, good or bad? What about inventing TCP/IP? Certainly the basis for creation one of humanities greates network of resources and information, doesn’t seem bad or harmful, in itself, but what about the other side of the coin it’s also the basis of one of the greatest surveillance projects ever (one that the Gestapo or the KGB could have only have dreamed about – and all of that under the guise of “freedom” and/or practical necessity). Or what about Facebook and other social networks, which by influencing what who gets to see, become some of the greatest factors in the modern political process, while also creating addictions by carefully studying human psychological profiles? I take this, for reasons I’ve sketched here not to be an absolute life-or-death commitment, but a practical ideals one lives by in their immediate life, to try and stop what one can stop, where real harm is obvious, since the literal interpretation just seems to be to stupid or void of meaning to be taken seriously. And when one looks at it this way, I belive that it is understandable why it should be included. One must never forget that words (and their absence no less) always say more that just what each word by itself would tell us.

                  1. 1

                    Personally, I’d even find it wierd if an oath were not to include this, if only for symbolic reasons, even if everyone who signed it were to cause “harm” on a daily basis.

                    It’s weird to me only if taken by people working for monopolistic incumbents, those built on surveillance with history of unethical behavior, stuff supporting police states, maybe games designed mostly to be addictive, and so on. Such workers would be contributing to many forms of damage. Such contributions contradict their stated oaths, pledges and so on.

                  2. 2

                    I agree. I’d argue that weapons are a necessary evil. I personally hope to finish my career never having put my hand to the creation of such things, but I recognize the necessity of their existence, and for those who feel that they can morally sanction their own work, I don’t feel qualified to tell them different.

                    1. 1

                      If we alienate the people who write code for weapons, we can’t work with them to improve our skills, or (arguably more importantly) theirs.

                    2. 11

                      Ooooh.

                      That sort of Oath.

                      And there I was mentally bellowing “BY STROUSTRUP’S BEARD!”

                      Admittedly we really really could do with something better than “WTF!”

                      1. 1
                        1. 3

                          I mean, the entire tribe of us just, soooo, lame.

                          There was a beautifully mad homeless person who infested the local railway station in The Bad Old Days. Now there was a person with oaths. Biblical, arcane, sacred and profane, it was artistry pure.

                          But no, whether Torvalds or Gates, what do we have? The F word.

                      2. 10

                        Some aspects remind me of the ACM’s Code of Ethics.

                        1. 7

                          This is currently being updated. Here’s the latest draft (3). Here’s the diff for Draft 1 from the 1992 version.

                          1. 6

                            I can take the ACM version more seriously, since it presumably entails some means of enforcing this contract. Without that, this is just… well, a nice expression of good intentions. But, ACM membership isn’t much of a requirement for practicing as a “computing professional”, nowadays.

                            When being kicked out of the ACM for violating their Code means that your career is effectively over, then we’ll be on par with the other engineering disciplines – doctors and lawyers aside. I think we’ll get there eventually, but it may take quite some time. The professionalization of civil engineering, for example, took many decades of collapsing bridges and the like.

                            If you’re serious about any of this, go study some history.

                            1. 4

                              To really be enforceable it’d need more than ACM being able to kick individual computing professionals out; it’d also need ways to effectively enforce it against the employers of computing professionals, who are often ultimately the ones asking employees to do unethical things (there are also “rogue” unethical acts, but I don’t think it’s the biggest part of them). In legally regulated areas of engineering that’s done with laws that make it very bad for employers to pressure or retaliate against engineers doing certain kinds of work. If you’re fired for refusing to do something that violates civil-engineering ethics, you can sue, and the company can also be subject to fines/sanctions. I don’t see a near-term mechanism where someone at Google or Amazon can say “no” to a manager’s request, citing a professional code of ethics, and be legally backed up in doing so, which is what would be needed to give it teeth.

                              1. 1

                                When being kicked out of the ACM for violating their Code means that your career is effectively over… I think we’ll get there eventually, but it may take quite some time

                                Wait, hold up; are you saying that this would be a good thing?

                                1. 9

                                  If we’re going to use terms like “good” or “bad” here, it would help to qualify for whom. To the point, “bad” for practitioners who expect to make high wages with little or no formal training, accreditation, or personal responsibility for the consequences of their mistakes (honest or otherwise) may well be “good” for the general public. It can get pretty complicated, especially once you start considering the employers of engineers as ethical agents too.

                                  Yes, I’m in generally in favor of professionalization, but I’m not exactly holding my breath. I think it will happen inevitably, if slowly, as a consequence of our field maturing and society realizing how potentially dangerous our work really is.

                                  1. 2

                                    I agree with your analysis in theory, but I have a near 100 kg objection: me.

                                    I have no formal training. I’m completely self-taught. And I really feel this as limit and as a pain.
                                    But I’ve found several accademics and formally trained developers with very weak understanding of their own field.

                                    My recent article about AI misconceptions was born after a debate with an AI researcher and professor.

                                    And in my professional work, it happens even more frequently. I can honestly say that I often meet very incompetent people with both high technical responsibilities and high accreditations from University. And I can also honestly say that several very skilled developers I know, are self-taught geeks.

                                    How this can happen?

                                    My opinion is that our profession is still at its infancy.
                                    The fact that we are afraid of an strongly ethical Oath is a proof of this.

                                    But also, our profession has little entry barrier: everyone can learn how to program if she has a computer.

                                    We should not be afraid of this and create artificial barriers to entry the profession.
                                    We should find something better. What? I do not really know.

                                    But given my experience, I’m not sure that an artificial barrier to entry would benefit humanity.

                                    At least not yet.

                                    1. 1

                                      I hope I didn’t give the impression of being in favor of premature professionalization! I completely agree, the field of computing is still too young to have a really meaningful and enforceable code of ethics, because we can’t yet ground such a code in a strong consensus about normative practice. All the talk of “best practices” mostly goes to show this lack of agreement. Even a brief comparison with, say, the International Building Code shows how weak these norms are.

                                      When there is broad and stable academic consensus about safe and unsafe practices in computing, then perhaps a generation later we’ll be able to hold practitioners to a standard of professional conduct. Again, there is a rich history of this kind of thing in the other engineering professions. The details will depend on historical circumstance, but the general trend is pretty clear I think.

                                      But, even then, I don’t see that having a brighter line between amateur and professional programmer should necessarily discourage amateurs. For example, the aircraft manufacturing industry in the US is very highly regulated. But amateurs can build non-commercial aircraft for their own use without being held to any engineering quality standards at all. The risk in home-build aircraft is mostly assumed by the builder-pilot, rather than the public.

                                      1. 1

                                        I’m pretty sure that one generation is not enough. One generation has already gone, indeed.

                                        and… just to be clear… I’m not an “amateur”! I’m a self-taught and professional programmer. ;-)

                                  2. 5

                                    This is essentially what happens in civil engineering, and to a lesser (but still extant) extent in mechanical engineering. I don’t have anything but anecdotal evidence to support that being a good thing, but I and other people I know who work in mechanical design generally support it. Having the stakes be that high for corner-cutting means that a professional engineer’s sign-off on something really carries weight.

                                    1. 5

                                      That’s how it works for doctors here in Australia; if you commit major malpractice you can be deregistered, meaning you can no longer practice medicine.

                                      None of the doctors I know have expressed any concern about this (the last case I heard of was a gynecologist deregistered for sexually abusing dozens of patients).

                                2. 9

                                  I feel like this is pointless and somewhat childish. If you want to commit to an oath, join a professional order and be audited and actually accountable for your actions. The signature could have at least be using cryptographic signature or signed commit.

                                  1. 3

                                    Childish is the first thought I had when I started reading this. I started reading and wondered “how old is this guy?” The language used definitely doesn’t help. The more serious it wants to be, the less seriously I can take it.

                                    I understand there are good intentions here, but it seems goofy to me to have some sort of oath. It’s like a digital pinky swear.

                                    1. 3

                                      It’s deeply amusing to me that out of all the work I’ve released publicly, this is the first to have the label “childish” applied.

                                      For the record, this includes quite a few joke libraries and a game where I made every sound effect with my voice.

                                      1. 2

                                        Don’t take it personnally. I’m not calling you a child and looking at your work you definitely come off as someone mature. I could explain the childish sense by something that is to be taken seriously, but end up as somewhat naive and rely on low-effort action without actual consequence. It gave me the similar feeling as the “Tag someone you love” image posts on Facebook… I’m sure it has good intentions, but in the end it is still too simple and vague to bring value to what already exists and it doesn’t bring any ideas about ways to enforce it.

                                        For the record, this includes quite a few joke libraries and a game where I made every sound effect with my voice.

                                        Joke libraries and game with sound effect from your voice are not childish, they are just fun.

                                        No strong feeling :) Just trying to describe how I feel about this content.

                                        1. 1

                                          Yeah, I want to echo this. It’s childish in the naïve “send this to 10 people or you will have bad luck!” sort of way. I think “low-effort action without actual consequence” is the best way to describe it.

                                  2. 9

                                    I liked this line from Engineer’s Obligations:

                                    When needed, my skill and knowledge shall be given without reservation for the public good.

                                    1. 4

                                      That has a really ominous parsing for me.

                                      I assume the intention is something like:

                                      When needed, my skill and knowledge shall be given for the public good, without reservation.

                                      1. 3

                                        And paid Id add. The markets and taxpayers that cover lots of unnecessary stuff should be able to cover these people working for the public good.

                                      2. 4

                                        I’ve worked for a defense company that encourages employees to tweet support for that multi-billion-dollar over budget fighter jet, a health insurance company where I literally watched millions of peoples’ premiums wasted during the height of the ACA debate, a debt collection firm whose call center was filled with people on welfare collecting bad debts from others on welfare, TOMs shoes (fuck that place, their shitty shoes and their bullshit shoe drops), …

                                        The least unethical for-profit work I did was for two telecommunication companies, a government ministry and a travel agency.The most ethical place I worked at was a University. It didn’t pay as well, but man was it a good, clean, honest job.

                                        I think it’s very difficult to work ethically in our industry. I have never signed a post-employment non-compete agreement and that’s about the extent to which I negotiate ethics in my contracts. It’s never really been an issue until just this past year, where I had to walk away from two jobs for the first time ever because they wouldn’t hire me without signing a non-compete.

                                        1. 4

                                          There was one already! Not the most find-able name though: https://github.com/mixinmax/Turing-Oath

                                          In any case, glad that you were inspired. I hope this one gets more traction than the Turing oath, or ignites a spark to virality.

                                          1. 3

                                            I don’t want to stop anyone creating or signing any oath they like, but if I were to sign one with an “honest and moral work” clause then I’d want to be sure that my fellow signers agreed with my view on what comprises moral work.I’m pretty sure that most people here would disagree on which of the following fall under that banner:

                                            • Creating an ad server that uses supercookies
                                            • Building a mashup of airbnb, uber and tinder data
                                            • Writing robocall software for the GOP
                                            • Writing a cryptocoin miner in javascript
                                            • Creating a website to hook Ohmibod users up with patrons
                                            • Writing firmware that misreports emissions data when a car undergoes regulatory testing
                                            • Writing an Android app to teach bump stock modifications
                                            • Adding password decrypt into your service to allow SRE to diagnose user account problems
                                            • Creating a query interface for a database of racial profiles
                                            • Writing a “find my nearest abortion clinic” app
                                            • Employing machine learning during hiring to predict amount of time candidates will take off from work for medical reasons
                                            1. 1

                                              Well said, this is the biggest problem with the oath as it stands. Oaths like these aren’t supposed to just say, “Hey, be Good,” but are supposed to help define what Good looks like. This is especially true when you have a profession like ours where the creation of a software artifact is so far removed from the circumstances in which it might be used.

                                            2. 3

                                              I don’t really see the purpose of these oaths.

                                              When somebody gives an oath, he’s given some kind of power and you want him to promise you with an oath that he won’t use that power for bad.

                                              A president or bureaucrat gives an oath before taking office.

                                              A doctor gives an oath before starting his job.

                                              A soldier gives an oath before being commissioned.

                                              All these people have to make some decision at some point that might harm the people he’s not supposed to. And they have to make a promise that he will try really hard not to do that.

                                              On the other hand, a programmer, like an engineer, don’t make these decisions. These problem-solvers create a solution, but somebody else deploys and executes those tools.

                                              A programmer might design a a guidance system of a missile. Then a soldier who would fire those missiles will take an oath before being put into a position where he actually gets the fire the missiles. The soldier will promise he will only use the weapon against an enemy. And the politician who makes the final authorisation to use the weapon will have taken an oath for the same.

                                              An engineer oath would then be something a long the line of “we will make a really good missile”. But you don’t need an oath for that, because you can test out the missiles before buying them. With a soldier, you don’t know for sure until the time comes if he’s gonna turn his gun around or not, so you make him promise, for whatever it is worth. An oath then is a guarantee for future actions, while for a programmer/engineer, we only really care about past actions, the actions already made in implementing the solution.

                                              Not to mention the actual oaths here are really personal guidelines like “admit failures and ask questions” and repeated too. 3 5 and 9 all just say you should leave your ego at the door.

                                              tl;dr nobody asks a blacksmith to take an oath to make a sharp sword, because if he doesn’t you can just fire him. you ask the soldiers to defend the senate and the people of rome when you give him the sharp sword, because by the time you know he’s not doing his job and you want to fire him, he has already crossed the rubicon and coming for you.

                                              1. 2

                                                Usenix published a System Administrators’ Code of Ethics a few years back, which aligns with a few of your points: https://www.usenix.org/lisa/system-administrators-code-ethics

                                                1. 2

                                                  Robert C. Martin also has one, which actually me and a friend have signed: http://blog.cleancoder.com/uncle-bob/2015/11/18/TheProgrammersOath.html

                                                  1. 6

                                                    I like Uncle Bob’s oath, but I don’t think I could sign it.

                                                    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.

                                                    Every piece of code I produce will always be my best work? I’m human, I don’t think that’s something I can swear to uphold.

                                                    I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.

                                                    A sure proof that every element of the code works as intended, for every change? I don’t think that’s even necessarily possible. Under tight professional constraints, there’s no way I could sell that to my manager.

                                                    I’m being very careful to consider what should be an aspiration and what is a hard and fast rule I can swear to uphold for the rest of my career. I think those two above points are lovely aspirations, but not realistic to achieve all day every day.

                                                    What do you think? Do you feel that you rigorously uphold those two points in your work?

                                                    1. 5

                                                      pretty sure, by quick, “sure and repeatable proof” Martin means tests. But of course, a test is not a proof.

                                                      I also think the Oath (that turns out to be a promise) is accidentally ironic

                                                      I will not make promises without certainty.

                                                      1. 2

                                                        On both points I totally see what you’re saying, and on the second point I’m lacking especially.

                                                        On the first point, personally I don’t see it as easy to break this one. “Best work” is contextual as I see it. “I will never write purposefully shitty code just because” is how I see it. If the professional constraints dictate I can’t write great code, that’s fine, but that’s a constraint the business side has agreed to. Do you see what I mean? And I go back and refactor if at all possible.

                                                        Second point, I don’t think it’s necessary possible or necessary. Robert wrote it with his viewpoint of “always write unit tests for everything”, TDD as it were. I’m a bit more liberal on that. But how I apply this point is I look for anything that makes me nervous about releasing the code to customers. If I’m not confident that it’ll work on production, I consider that a lack of automated testing and I add more tests .

                                                        I’m being very careful to consider what should be an aspiration and what is a hard and fast rule I can swear to uphold for the rest of my career. I think those two above points are lovely aspirations, but not realistic to achieve all day every day.

                                                        What do you think? Do you feel that you rigorously uphold those two points in your work?

                                                        Commendable. Personally I need a code that is possibly unachievable, as any less I get the impression is very easy to do. The code you wrote I perceive as more from a human perspective, while Robert’s code is more from a “we can’t and shouldn’t fuck up” perspective.

                                                        The former I would have no problem upholding, I think, though to be humble of course I’m human so I may fuck up.

                                                        Robert’s code is such a high call to duty, the only way I can think of describing it, that it actively has a bigger effect on my behaviour, I think.

                                                        So no, I don’t think I’m upholding it 100% all the time. But at any point that I can, I am.

                                                    2. 1

                                                      For me it seems Rule 0 and employment seems pretty close to mutually exclusive. There’s no ethical corporation.

                                                      1. 1

                                                        one item I would insist on seeing in any oath or User Bill of Rights: software may not make use of any system resource without express consent from the user. a moderate amount of CPU and RAM are implied at launch, but an application had better ask before autoplaying audio, downloading large datasets, or pegging CPU or memory.