10x programmer

Antirez, the author of Redis, wrote a piece called ”The mythical 10x programmer".

I don't disagree with the list of the characteristics of good programmers, but I've been thinking that the "10x" framing is misleading.

The 10x productivity is often attributed to the speed of the software development. Speed is important, but what really makes one competitive or unique is that he or she, the superior programmer, has done things that are impossible to others. The lightning speed is just one of such impossibilities.

I think that focusing on the extended capability, making impossible possible, is better strategy than just focusing on being faster. Because you can be replaced by cheaper labor if you are just a "speed" programmer and the development speed isn't critical (or isn't considered critical) for that project. Also, you consequently attract projects with tight deadlines. You won't be replaceable if you can do things that cannot be done by other 10 mediocre programmers.

The problem is that, there aren't always such hard problems which can be solved by a few smart people. As a "possibility" programmer, You need hard problems. Some companies know that and lure smarts by advocating hard problems. More often though, you'll have to find such problems by your own.

Another caveat is that, even though I emphasize possibility over speed, many smart programmers prove that the speed is one of the critical foundation of their impossible-looking achievements. In other words, faster programmers tend to solve harder problem. You cannot simply ignore the speed.

Note that Antirez is one of such people who has done an impossible job: Building Redis. From the list it is clear that he knows what 10x really means. He just didn't state it in that way.

I didn't write English sentences at all while I'm off from work, and I feel I'd better exercising some. So here you go. Forgive my slippery text, my Japanese-reading friends.