Ethics
Ethics
Because the default in the world, in anything is chaos and to insure order, we must have rules, ethics and principles. We present the oath.
— Unknwon
Notice
These ethics have been taken strait, as is from the programmer’s oath coined by Robert Martin in the Clean coder blog: TheProgrammersOath
The Programmer's Oath
18 November 2015
In order to defend and preserve the honor of the profession of computer programmers,
I Promise that, to the best of my ability and judgement:
- I will not produce harmful code.
- 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.
- I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.
- I will make frequent, small, releases so that I do not impede the progress of others.
- I will fearlessly and relentlessly improve my creations at every opportunity. I will never degrade them.
- 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.
- I will continuously ensure that others can cover for me, and that I can cover for them.
- I will produce estimates that are honest both in magnitude and precision. I will not make promises without certainty.
- I will never stop learning and improving my craft.
Other unwritten rules
- You're responsible for code quality, use meaningful names and write code that expresses intent.
- Code should speak for itself. Less comments = less maintenance. Comments are often lies waiting to happen.
- The boy scout rule: Leave the code better than you found it.
- Single-responsibility code, i.e A function does only 1 thing well. Less arguments = better function. cohesiveness; most methods use most of the class properties.
- Write and test every line of code (TDD); integration and unit tests
- Work on big picture skeleton, then fill in the details later; interface first, implementation later.
- Always aim to create independent components that can be used in different places.
- Never allow bad code to stay.
- Master your craft.