Monday, November 14, 2011

Being a 10X programmer

Jack Templin just sent me this excellent article called How to be the 10X programmer. A 10X programmer is a single person who has the effectiveness of 10 programmers. While this at first sounds like an impossible or at least unsustainable model of one super hero doing more work than a team, it is reasonable when you think of one person having the effect of increasing the productivity of everyone around him. That is, the productivity increase is not limited to his/her own output. Here is the kernel of the argument.

The 10X programmer is hypersensitive to problems. Solving a problem that costs other programmers a minute of waiting will gain a lot more than a minute for any programmer who then encounters that problem later. This is because of flow).


Importantly, the 10X programmer fixes the problems that knock her out of flow. Fixing problems - even "trivial ones - , leaving documentation so people can understand faster, keeping a database of common problems, and so forth, all potentially make a much larger difference because of flow than just a few minutes it takes to fix them.

I feel like I have worked around people like this and have had fleeting episodes when I have added that value. The true challenge is that the 10X programmer quickly becomes a bottleneck because he/she is the pivot point through which many decisions get made. The temptation to fill up his/her time with meetings is too great. Also, there is the question of compensation. Can the employer really afford to pay these programmers what they are truly worth?

What is probably more realistic is to establish a culture where everyone on the team thinks like this. I love the Pragmatic Programmer books because they help inspire you to do great work that makes you and your peers more productive. Maybe you don't get a full team of 10X programmers but a team of 5X programmers is nothing to complain about.