I wrote a piece earlier this week about the concept of "10x" in programming – the idea that some programmers are ten times more productive than the rest.
I got some pushback for the main statement I made: "10x programmers practice their art with ten times the love." I stand by this, but it does deserve more explanation.
There's a common misconception that programming is a science. It's not; it's an art. There's a huge technical component, for sure, but music shares this, and it's not a science.
It's meaningless to say one musician is "more productive" than another, because there are no appropriate measurements to compare. One singer might have a wider vocal range and produce more decibels at full volume, but we don't rank singers based on their numbers, as if they were athletes.
Think about a program you liked. It had quirks, but they were fine. Then the "big update" came out. It promised measurable improvement: better performance, more features.
The new version was worse. On paper, all the stats were better, but it no longer served its purpose as well. Your feeling towards it soured.
The true measurement of a program's success depends on how people feel about it. That's what makes programming an art.
Making something people like is not the same as giving them what they ask for. A good programmer has to understand human nature, and have the discipline to give people the right thing. Just like a good musician doesn't "flex" their technical capabilities for their own sake – they play what the communication requires.
This combination of soft skills has little to do with the mechanics of technology. Instead, it represents a form of devotion to the craft. I wrote earlier this week that software belongs to its users. Writing software – notice that verb, an art – is an act of service.
All of this, just to rephrase without the "L" word: 10x programmers are ten times as devoted to serving their users.
I stand by that statement as much as the first, but it's a boat load less catchy, isn't it?