10 habits of 10x developers

by Adam Loving on December 20, 2011

Last week, I discovered The Rise of Developeronomics via Brad Feld. As long as I’ve lived, it has always been a great time to be a software developer. The economics keep getting better for us. My favorite quote:

The one absolutely solid place to store your capital today — if you know how to do it –  is in software developers’ wallets. If the world survives looming financial apocalypse dangers at all, this is the one investment that will weather the storms. It doesn’t matter whether you are an individual or a corporation, or what corner of the world you inhabit. You need to find a way to invest in software developers.

The article also introduced me to the concept of a “10x developer,” and linked to a thoughtful explanation.

The 10x effect is the anecdotal observation that great programmers aren’t just a little more productive than average ones (like 15-20%). They tend to be 10 times more productive.

The second blog post is a fascinating analysis of 10x engineering in terms of thrust (high value flow state work) and drag (administrative necessities).

All this got me thinking, what do I do that makes me a 10x developer? I quizzed Ben Sharpe, Collin Watson, and Jonathan Locke, author of Coding – On Software Design Process. Here is what we came up with.

1. Only do the work that needs to be done. Use the agile process. Involve yourself in UX design. Communicate first. Coding might not be the solution. Premature optimization is the root of all evil. Choose the simplest solution that solves the problem.

2. Build on the shoulders of giants. Use open source frameworks. Use shorthand languages (HAML, Jade, Coffeescript) to go faster. Don’t re-invent the wheel. Leverage package managers for public and private code distribution. Don’t be at the mercy of Central Command (i.e. Microsoft) to fix a bug in a library. And don’t wait for your employer to let you learn it. Learn it on your own, and get a new job that pays twice as much.

3. Know your data structures and algorithms. Our profession is open to self taught tradesmen, but you can’t be a 10x developer if you don’t know when to use quick sort, identify an O(n2) routine, or write a recursive function. Be multilingual – so you can see how different frameworks solve the same problems over and over again. Know enough about the plumbing to be able to make informed decisions (how is this Web framework storing the session state? What is a cookie actually).

4. Don’t be afraid of buying tools that save you time.  Ben says: “I bought a bitmap font tool yesterday for $50. It easily saved me more than $200 of my time.”

5. Find focus. Don’t keep your email open all day. Same for Twitter, Facebook, HackerNews, and Techememe.  Minimize interruptions during productive moments.  Close email, turn off chat, put headphones on… whatever it takes to not be interrupted. Tiny hack:  I wear headphones at work even though I don’t listen to music because people don’t interrupt me.

6. Refactor early and often. Kill your darlings.  Sometimes you have to throw out clever code to do what’s right by the project, but that’s OK. If you have to touch code on an existing project, always leave it better than you found it.

7. Just do it. Think small. Do your weekend project, participate in Startup Weekend. I bought a Mac and worked in a Windows Virtual Machine on .NET projects for a year before I was able to fully leap to Unix and Ruby on Rails.

There are 3 more tips below. Click one of the sharing buttons to reveal tips 8, 9, and 10..

wrote this post.

{ 14 comments… read them below or add one }

Marc Roberts December 20, 2011 at 5:12 pm

Funny how your point about IDEs is self-contradictory. I’m sure there will be a lot of debate on this.

Commenter December 21, 2011 at 9:40 pm

If you are going to do a click wall article and it targets developers, make sure the click wall cannot be defeated by techniques like “view source.”

Adam Loving December 21, 2011 at 11:26 pm

Thanks for reading! I’m glad you could hack around the click wall. What did you think of the content?

matjazmuhic December 22, 2011 at 7:46 am

Great article…

I totally agree with:”… And don’t wait for your employer to let you learn it. Learn it on your own, and get a new job that pays twice as much. …”.

Commenter2 December 22, 2011 at 2:02 pm

The clickwall for 8,9,10 is a sleazeball tactic, don’t make you content contingent!

Leon December 22, 2011 at 5:00 pm

The IDE point is so… 90th. Try to jump through references and call trees with VIM, gonna be really funny. Some of the other points have their validity though!

bob December 22, 2011 at 6:42 pm

I have known several 10X developers who did not use ANY of these tips. Your tips sound like marketing hype.

ObjT December 23, 2011 at 8:30 am

I absolutely agree with all mentioned points. Especially the multilingual part and the part that says “learn multiple editors”, because everyone is always discussing about “the best” language or editor, while the best is always different for different jobs.

Martin December 23, 2011 at 9:22 am

Another unnecessary blog post littering the web.
All it says is “Know your stuff and do good work,” basically.
Boring.

Adam Loving December 23, 2011 at 4:13 pm

Well said ObjT. I find that there are a lot of arguments for a language or editor being “better” when it is really just what that person is used to.

web site tasarımı December 27, 2011 at 10:07 pm

thanks, like it…

tanu February 24, 2012 at 8:51 am

All it says is “Know your stuff and do good work,” basically.
Boring.

David Aronchick February 27, 2012 at 7:20 pm

We (at hark) believe so strongly in no fixed tools, that we ask candidates to bring their laptop workstations in to project on the wall during their interview using their tools and setup. It’s completely what you feel comfortable with.

Adam Loving February 27, 2012 at 8:46 pm

David, that’s very cool. I would suspect that is a great way for both parties to be exposed to new development tools.

Leave a Comment

{ 13 trackbacks }