Egoless Programming #8: Fight for what you believe, but gracefully accept defeat.

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 eighth commandment:

Fight for what you believe, but gracefully accept defeat.

If you’re willing to have your mind changed, you know how important a good debate can be. I remember several times walking into a room believing I had the best solution, only to walk out knowing I was wrong. And when I focused on the team’s success as the ultimate goal, it wasn’t that difficult to walk out gracefully.

Here are five truths to help you do the same:

Multiple acceptable solutions exist.

No technology problem has a single solution.

Each has a solution space, and multiple solutions from that space are “good enough.” Your team’s job is to figure out which ones will work and then to choose the one it feels best about. And that solution won’t always be yours.

Conflict is both inevitable and necessary.

Difference and disagreement are part and parcel of value creation.

I can’t think of an innovation that wasn’t an example of a human daring to challenge the status quo. Your customer deserves your team’s best work, and sometimes that requires an argument. Avoiding conflict by failing to participate in the debate is failing to bring your best to the table.

You can debate effectively and be kind.

Keep your focus on the idea, and keep your emotions in check.

The best technical debates I’ve witnessed have also been the most dispassionate. You don’t need passion when ideas can be defeated with facts and unacceptable tradeoffs. And failing that, most ideas can be validated with a quick spike.

You can win or lose gracefully.

Your colleagues are more important than the debate’s outcome. Act like it.

If your solution is the last one standing, let the team take credit for it. If your solution dies on the whiteboard, forget about it. It’s not about you.

As a team, you can rally around a single decision.

Once a decision is made, it becomes the team’s decision.

While it’s important to capture the solutions that were considered and the tradeoffs associated with each, these belong in a decision record and on a scoreboard. As you walk out of the room, the team’s decision is all that matters.

Previous
Previous

What I Learned Helping My High School Senior with a Physics Project

Next
Next

Egoless Programming #7: The only true authority stems from knowledge, not from position.