Programmer's Oath in Action

Programmer's Oath in Action

These are the slides I delivered at BBS (lunch and learn session) at Scotty Turkey. We discussed each point one by one with the engineering team.

Dafc4723e9a1c067796c0fec6f509774?s=128

Lemi Orhan Ergin

October 10, 2019
Tweet

Transcript

  1. 2.

    The fact remains that we programmers are in a position

    of tremendous power that the people whom we serve do not well understand; and that we hardly understand any better. With great power comes great responsibility. We, as programmers, should recognize that responsibility and determine to be conscientious servants of our society. We should set the limits and standards of our behavior. We programmers, not our employers, not our governments, should decide what it means to accept the responsibility of the power that has been placed in our hands. - Robert C. Martin
  2. 6.

    I will not produce harmful code Code should not be

    harmful to anyone or anything, including customers, users, government, companies and even other programmers. [1]
  3. 7.

    do not knowingly release defects that cause harm do not

    knowingly build software that will fail do not harm the structure of software and architecture do not make code hard to understand & hard to change remember you don’t code for computers, but for people stand firm against any req. that exploits or harms people I will not produce harmful code [1]
  4. 8.

    I will be humble and recognize that I will make

    mistakes No one is perfect, as you, your colleagues, your managers, your customers, and the output you produce, like your code, your documents, even your understanding. [3]
  5. 9.

    I will be humble and recognize that I will make

    mistakes respect the previous developer do not be ashamed to say "I don't know” ask for help when you are stuck respect the lessons learned by those who came before me listen to others carefully and with respect [3]
  6. 10.

    I am ethically responsible for my decisions and I will

    act according to my conscience Have a responsibility to consider the potential for my software to violate people’s rights before I start to implement it. [2]
  7. 11.

    I am ethically responsible for my decisions and I will

    act according to my conscience consider the possible consequences of code and actions do not make people do things that you didn't mean to reject projects which facilitate the abuse of human rights do not develop software violating human rights & liberties have open communication with users if violation happens share post-mortems transparently [2]
  8. 12.

    The code that I produce will always be my best

    work In the moment code is written, you write that to the best of your ability. [1]
  9. 13.

    The code that I produce will always be my best

    work write your best code in that time be diligent and take pride in my work feel you have done your best job afterwards do not knowingly allow code that is defective do not allow broken windows do not deceive people about your work do not hide known defects deliver feedback for getting the best from your team [1]
  10. 14.

    I will produce, with each release, a quick, sure, and

    repeatable proof that every element of the code works as it should You should always test your code and make sure it is reliable, repeatable, and as idempotent as possible. [1]
  11. 15.

    I will produce, with each release, a quick, sure, and

    repeatable proof that every element of the code works as it should provide examples to show that code is working do not skip testing features before deploying to live do not cheat on tests, create fake tests test in multiple levels of abstraction for the system [1]
  12. 16.

    I will make frequent, small, releases so that I do

    not impede the progress of others Respond to you customers’ and other programmers’ needs fast by making frequent, well-crafted releases [1]
  13. 17.

    I will make frequent, small, releases so that I do

    not impede the progress of others shorten development cycle time shorten feedback loops avoid staying at branched too long build continuous delivery steps with care [1]
  14. 18.

    I will fearlessly and relentlessly improve my creations at every

    opportunity You should always look to improve both your code, and the code you work on. [1]
  15. 19.

    I will fearlessly and relentlessly improve my creations at every

    opportunity leave things better than you found them never make the code worse agree on team standards and conventions have multiple feedback loops to inspect and adapt [1]
  16. 20.

    I will do all that I can to keep the

    productivity of myself, and others, as high as possible You will do your best to keep the productivity of you and your team high and will not do anything to sabotage that. [1]
  17. 21.

    I will do all that I can to keep the

    productivity of myself, and others, as high as possible the only way to go fast, is to go slow and well keep quality high to keep productivity high retrospect with team to inspect productivity issues [1]
  18. 22.

    I will continuously ensure that others can cover for me,

    and that I can cover for them Spread the wealth of knowledge, wisdom and experience with people around you. The more you give, the more you get. [1]
  19. 23.

    I will continuously ensure that others can cover for me,

    and that I can cover for them do pair and mob programming share your knowledge with your teammates help people before you ask for it never blame people for defects and bad code [1]
  20. 24.

    I will produce estimates that are honest both in magnitude

    and precision Estimate with the best of your knowledge, and never hide your concerns if you have any. [1]
  21. 25.

    I will produce estimates that are honest both in magnitude

    and precision do not make promises you believe in do not deceive people about the progress share your concerns with courage say no if you do not believe in the promise [1]
  22. 26.

    I will never stop learning and improving my craft Always

    look for ways to improve your craft [1]
  23. 27.

    I will never stop learning and improving my craft you

    should own your career, worth it the more you are better, your work becomes better do not fall into mediocrity trap feel good about your work, but never satisfy [1]