For The Perfect Programmer


There’s nothing to read here for you. Really, nothing at all.

You are a perfect programmer. Your code is the best you’ve ever seen. We all bow to your wisdom and awesomeness.

There’s nothing more for you to learn. There’s nothing left to practice. There’s nothing left to read, no conference that can teach you things, no community that can advance your skills.

There’s nothing for you in this blog post.

Sure, your code has bugs. But that’s not your fault. It’s either the manager, the technical lead, the project manager, the analysts, the testers or the customer.  And anyway, who writes code without bugs? You’re perfect as you are.

Sure, it takes time to add simple features to the code. But that’s not your fault. Many people worked on that code base and did the worst job possible. If only you would have been there, the code were perfect.  You can’t fix all their mistakes, you just write your perfect code for your tasks. The other code can’t be fixed, not even by the perfect programmer that you are. Anyway, it was the customer’s fault as well. They always change their minds.

There are some crazy people in this industry though. They claim the code you write is not clean and difficult to change. They claim that with a few additional skills you could reduce the number of bugs to near zero. They claim it’s possible to make changes to existing code faster, even when they know nothing about the domain or the code.

These people don’t get it. The code you work on is much more complex than others’. Your context is different and much more complicated. It takes new developers six months to become productive in this code base, so there’s no way some crazy dude would jump in and make it better in the first few days. It’s just impossible.

So you go on doing the same things you did for the past years, and ignore all these crazy silly people who tell you to change. You’ll keep doing what you do, and you’ll be appreciated, and you’ll get raises and bonuses and you’ll climb the career ladder. After all, you can always move to another company who appreciates you more if this doesn’t happen.

So you see, there’s nothing for you to read here. You’re just perfect as you are. You have no reason to change. No reason to read. No reason to go to conferences. No reason to attend community meetups, other than to impart your wisdom with the lost souls out there. But they won’t listen anyway, so why bother?

There’s no reason for you to practice clean code, refactoring, unit testing, test driven development, changeable & incremental design, pair programming, simplicity, problem solving, lateral thinking, techniques for working effectively with legacy code, usable software design.

There’s no reason for you to be part of a community of practice, to accept feedback, to practice assertive communication, to give actionable feedback.

There’s no reason for you to trust your colleagues and to prove trustworthy for them. There’s no reason for you to become more disciplined, although it’s obvious the team needs to be more disciplined. Just not you.

There’s no way you would go back to feel like a beginner and practice beginner’s mind.

It’s not your job to learn about your customer’s constraints, extract more precisely their intent and the desired features, negotiate with them daily on the scope of the experiments you’re making, advise them on the best course of action.

There’s nothing for you here.

So why did you read until the end?

Add comment Reflections on design, craft and software

A new home for merging ideas about design

It is my strong belief that software design can learn a lot from other design disciplines. I wrote blog posts, a book and did talks on this topic, and it was time to group them all together. These ideas have now a new home: My plan is to add more blog posts there, and to involve other people doing work in this area.

Read My Book “Usable Software Design”

How UX techniques can be applied to software design to develop software better (given that the developer is the user of software design).

Read My Book “Coderetreat Hosting And Facilitating”

Learn how to facilitate and host a coderetreat from two of the most experienced coderetreat facilitators.