Posts categorized as: humility-driven-development

Egoless Programming #3: No Matter How Much Karate You Know, Someone Else Will Always Know More

Published by Matt Stine

In 2001, Lamont Adams of TechRepublic chiseled what would become ten commandments of Gerald M. Weinberg’s timeless wisdom: Egoless Programming. Today we’re going to learn its third commandment: No matter how much “karate” you know, someone else will always know more. First of all, this is a good thing. My friend Neal Ford has said that as soon as you are the smartest person in the room, it’s time to look for another room.

Egoless Programming #2: You Are Not Your Code

Published by Matt Stine

In 2001, Lamont Adams of TechRepublic chiseled what would become ten commandments of Gerald M. Weinberg’s timeless wisdom: Egoless Programming. Today we’re going to learn its second commandment: You are not your code. This is without a doubt one of the hardest lessons for any early-career engineer to learn. As humans, we take pride in our creations. Unfortunately, software is soft because it’s meant to be changed, rewritten, and very often discarded completely.

Egoless Programming #1: Understand and Accept That You Will Make Mistakes

Published by Matt Stine

In 2001, Lamont Adams of TechRepublic chiseled what would become ten commandments of Gerald M. Weinberg’s timeless wisdom: Egoless Programming. Today we’re going to learn it’s first commandment: Understand and accept that you will make mistakes. This one should be obvious. But we engineers often behave as if our fallible human nature does not extend to our chosen craft. And as much as I’d love for that to be true, it simply isn’t.

The Ten Timeless Commandments of Egoless Programming

Published by Matt Stine

In 1971, Gerald M. Weinberg wrote1 these Ten Commandments upon the stone tablets of The Psychology of Computer Programming. Well, they weren’t really written in stone. But they have stood the test of time. Wise is the software engineer who learns them and puts them into practice. 1. Understand and accept that you will make mistakes. Assume that you will write bad code. Find it and fix it before it affects users.