loading...

Discussion

markdown guide
 

Really cool question. My programming ethics have changed so much over the years. I'm not sure all of these can be called ethics but they're my development/career guidelines.

  1. Make the best thing you can with the resources you've been given. If you can't build the best product, be clear about that to stakeholders. If the best you can do isn't good enough for your own standards, don't do it.

  2. If the application you're making doesn't make the world a better place, you shouldn't be doing it. Money should never be more important than your impact on the world.

  3. If something can be made open source, make it open source. There is someone out there with your exact same issue and they could use your help.

  4. Help junior developers. You had mentors when you started, they should too. There are no stupid questions, just interested developers who haven't had the time you've had to figure things out.

  5. Stay healthy. Don't kill yourself over a project, it's not worth it. Eat well, work out, read, watch tv, hang out with friends and do side projects that make you happy. Your happiness and health are the biggest factors in your productivity. An unhappy developer is a bad developer.

Those are the most important rules I have when it comes to development, in no particular order.

 
 

Wait, you had mentors when you started? #sadface.jpg

 
 

Here are mine:

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:

  1. I will not produce harmful code.
  2. 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.
  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 my creations at every opportunity, I will never degrade them.
  6. I will do all that I can to keep my own productivity and the productivity of 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.
  10. In all my communications (especially written and public ones), I will not allow myself to be offended by what people say to me, but I will do everything I can to not offend the people I speak to.

I've hosted them on dmerej.info/oath.md.

Items 1 to 9 come from the Programmer's Oath by Robert C. Martin.

The last one is mine, adapted slightly from the Crocker's Rules.

 
  1. Always do your best
  2. Keep your client's interest as main focus
  3. Never stop learning
  4. Contribute your knowledge and experience to the universal development community
  5. Have fun
 
  • I will not participate in intentional exploitation of others.

It leaves money on the table. But not being dead inside benefits all aspects of life.