by chapel on 12/21/12, 7:03 PM with 32 comments
by nthj on 12/21/12, 8:38 PM
Software isn't just about flow. It's about managing complexity. I'm better at managing complexity than some guys by a factor of 10. And I've worked with people who are better than me by that same factor of 10.
We aren't all made equal. This is "everyone is a winner" nonsense, and it's not how the real world works. I agree with all of the article's arguments, but the conclusion is a non sequitur.
by freework on 12/21/12, 9:09 PM
When I'm forced to work on something I don't think maters, I'm not a 10x developer. I'm really obsessed with code quality, so any task that involves refactoring, I am 10x or even 50x. If the task is to track down a complex bug in a PHP system, and I'm under strict orders to not refactor anything (which is common), then I will be a 0.01x developer. With my personal projects, I'm always 10x or more.
by dglassan on 12/21/12, 7:43 PM
I don't think it has anything to do with "getting in the zone." A novice programmer that spends 4-5 hours straight focused on a problem is still a novice programmer no matter how far "in the zone" he gets. 10X can only come with experience. And that has to be experience working with other 10X programmers.
A programmer that has 15 years of freelance experience may be good at his/her job, but I doubt they would be as productive as a programmer with 15 years of experience working at top tier companies like Google, Amazon, Facebook, etc.
I really think the only way to become 10X is to watch and learn from other 10X programmers and that will still take years of learning.
by Itaxpica on 12/21/12, 9:14 PM
I wrote a pretty significant research paper about this stuff once upon a time... one of these days, I should sit down and write up a proper blog post on it.
by d--b on 12/21/12, 8:01 PM
by aardvark179 on 12/22/12, 1:16 AM
I see a lot of talk on here about removing all distractions and not allowing anything to interrupt your flow so that you can be a 10x programmer. Sometimes you may need to shut out everything, but is it really going to help your team in the long run if you do that a lot?
If you can allow for some degree of distraction and interruption then you may find you pick up on others' problems early, and by having that quick conversation you may help them be a lot more productive. Taking the time out to discuss areas or to pair on problems will also pay dividends.
Much as our egos would be boosted by it the world doesn't need us to be 10X programmers, it needs us and those around us to be more productive overall.
This still involves trust and discipline. If you're constantly on twitter or HN then you're probably not doing that much actual work, but equally if you aren't at least glancing at things like that then you may well find you're missing out on a lot.
Equally you and your colleagues need to trust each other that interruptions won't be too great, and that urgent requests can always be met with, "can this wait a few minutes so I can get to a stopping point."
by hndude on 12/22/12, 12:13 AM
I think I'm going to print this out and put it on my wall. Old concept but this says it in a very simple way.
by beagle3 on 12/22/12, 3:43 AM
I'm older now. I produce about as much functionality as my peers, and at comparable time, but I do so at about 1/10 to 1/100 of the code length.
I haven't tried going back to crunching code at the 10x rate, and I'm not sure I can - I spend the majority of my time now figuring how to NOT write any code (or very little), and still achieve my goals. In a way, I'm still a 10x programmers - 10 times less code, works as well, and is usually much more future proof.
If I wasn't coding for my own startup, that might have hurt my compensation, but I think in the long run, I'm doing as good or better job than I did 15 years ago, even though I'm not faster than my peers these days.
by cek on 12/21/12, 8:02 PM
FWIW, I use Dave Cutler as my prototypical 10X developer.
by mooreds on 12/22/12, 3:28 AM
* experience
* really understanding what the client or business needs, so I don't spend my time building something that doesn't meet the needs of the user
* finding a tool or library that gets 80-100% of the job done rather than me writing the code (my favorite scenario!)
I believe there are many domains where the above factors are enough to make you a great developer, though perhaps not a 1000x dev.
by michaelochurch on 12/21/12, 8:45 PM
10x Work: this is the state of flow OP described, that can only be achieved in a healthy environment. I also think OP was right to emphasize trust. It goes both ways. Managers who ask for status (context switches) leave the engineer unable to trust the environment.
See also: What Programmers Want ( http://michaelochurch.wordpress.com/2012/10/30/what-programm... )
10x Learning: pick interesting projects, and socialize with people doing different kinds of stuff. Attend conferences. Take MOOCs. If you can help it, try to limit work that you don't learn from to 2 hours per day. (This may lead to political adversity, so be prepared for that.)
10x Experience: related to the above, it's hard to become a great (2.0+) programmer if you don't get a continuing stream of good projects. It's hard to de-crap your work life and it's a process that requires social skills, which leads into...
10x Communication: your work will have much more of an impact if you are able to communicate to other people how to use it. Make it easy for them. Don't write some software-as-spec system that turns into a black-box, then a legacy system. Build visibly awesome things instead.
10x Problem: this is more of a CEO/founder concern. Some problems are just 10+ times more important or rich in opportunity. Others are unimportant.
Of course, each of these factors can swing the other way and become 0.1x or even 0x (annihilating everything).
There is a talent factor, but I don't know how much of a swing it is. I've seen very smart people write awful code.
by bitwize on 12/21/12, 9:59 PM
You are going to be interrupted and there's going to be meetings. It's the nature of the beast in a business environment. If you can't function in that sort of environment, then you are a poor programmer for that sort of business, and they are better off hiring someone who can, even if they're not a "10X".
If your boss favors open-plan offices to foster collaboration, maybe it's just because he values something besides raw productivity, like being a team player and making sure everyone is on the same page when undertaking a major project on which millions of dollars and perhaps the lifeblood of the business are riding. When you're paying the bills then you get to build your own coder mancave, invincible against the slings and arrows of the outside world. Till then, either shut up and roll with the punches or work someplace else.