10X Developer

There’s been a lot of discussions on 10x developers, whether they exist or not (for example, here and here). I believe they do exist and by following a blueprint eventually we can all become one. Based on my 10+ years experience as a software developer I put together a list of actionable guidelines that can help anyone get closer to 10x.   

Avoid Decision Fatigue

Decision making is like a muscle, there’s only so much decisions we can make in a day before our brain will get completely worn out. As Barack Obama put it, ‘I don’t want to make decisions about what I’m eating or wearing because I have too many other decisions to make.’ Try to reserve as much brain power as possible for the really tough problems. Use design patterns, SOLID principles, KISS , YAGNI, JIT and other industry’s best practices.

Ever wondered why pilots have checklists: http://www.drjohnizzo.com/airline-pilots-have-checklists-maybe-leaders-should-too/?

Solve Problems for Others

Developers are hired to solve problems. Solving 10 times more problems in the same amount of time equates to 10x productivity. You may wonder how one can solve 10x problems? Solving a problem is the most difficult and time-consuming for the first time. For the second time, it’s easier and takes substantially less amount of time. That means that the fastest way of solving 10 problems to have them already solved previously.

There’s no free lunch and to be a great problem-solver one have to solve as many problems as she can and be eager to learn and experiment with new things. Create your own github repository today and start playing with some of the interesting technologies you came across recently. Learn from other people’s experiences (read books and blogs), and attend local meetups, conferences, etc.

Another idea can be to look for tough problems at your workplace, like the ones that others have already given up on. Solving those problems will give you an edge that will put you above most developers (http://www.nscblog.com/miscellaneous/ten-years-experienceor-one-years-experience-10-times/).

For example, on one project I worked on, a certain exception started coming up in the logs. Since it didn’t seem to be a major issue, I just ignored it. To me, that problem didn’t even exist. But there was this other developer from the team and as soon as he saw the stacktrace, he felt an urge to immediately dig into it and eventually found and fixed the bug in our code.

When we face a problem in the codebase, at least 80% of the time it’s safe to assume we’re not the first ones with this type of issue. So why not ask google or visit stakcoverflow to find the answer and save our time for more important issues?

Create Value

The reason we were hired in the first place was to create value for our organization. 10x developers can create 10x value for their employer. To give an example, there was an initiative in one of my previous places where the estimated hardware costs were in the range of EUR 1.5m. That’s a lot of money to spend. Well someone found a way to build a similar infrastructure which would only cost 10% of the original estimate. That’s over EUR 1m difference in savings! No surprise he was publicly praised at the town-hall meeting and were handed over an envelope as a gift for his efforts. How much money might have been worth for that company to save EUR 1m?

This is exactly what Jim Rohn talks about in this video (at 7:44):

That 11 min video is a real eye-opener and must watch for anyone looking for ways to grow in their career.

There are many creative ways on creating value at our workplace, including saving costs, improving processes (Scrum, XP, etc.), improving customer conversion rate, coming up with ideas for potentially new features or products (http://www.eweek.com/c/a/Messaging-and-Collaboration/Googles-20-Time-Projects-Pay-Dividends-for-The-Rest-of-Us/, though the 20% policy is not in effect at Google anymore).

Don’t reinvent the wheel

Though it may be tempting to roll out our own CMS in our favourite language, we may get things done in no time by relying on proven and well-tested open-source frameworks.

Frameworks Are Not Born, Code Becomes It By Evolving Through Constant Refactoring

There’s no way to second guess the problems a framework will have to solve in the future. I know it may be very tempting, and who hasn’t fallen into this trap anyway? I cannot count how many times I spent the extra time to make a feature generic to make it future-proof and later on never feel the need for it. Building something clean and simple will allow us to maintain the code for longer period of time and to be able to refactor it over and over until it eventually becomes a standalone framework on it’s own. Remember the YAGNI rule – You Aren’t Gonna Need It! Or in other words, “Perfection is Achieved Not When There Is Nothing More to Add, But When There Is Nothing Left to Take Away” (http://lifehacker.com/5962245/perfection-is-achieved-not-when-there-is-nothing-more-to-add-but-when-there-is-nothing-left-to-take-away).

Smelling code

There’s a difference between a 10x developer and the rock star developer who can solve some very tough problems but writes code that makes you want to cry. When you create value, think about both the short- and the long-term impacts. Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live (http://blog.codinghorror.com/coding-for-violent-psychopaths/)

Doing the Right Things vs Doing Things Right

I could be the fastest developer typing code on earth, but if I wasn’t working on the right thing, that wouldn’t make any difference at all.

Here’s an example. Many times we feel the urge to immediately jump into writing code when given an interesting task, but often times spending a couple of hours upfront on analysis may saves us days of work.

Use shortcuts

To increase productivity one simple idea is mastering the tools we use on a day to day basis. Find a quick way to launch the softwares you use frequently by creating shortcuts on the quick launch bar. Use Ctrl+R to search through your bash history instead of typing every command by hand. Print a cheatsheet of your favourite IDE shortcuts and memorize as much of them as possible. Use your IDE’s refactoring capabilities wherever possible instead of doing it by hand, etc.

Have you ever worked with a 10x Developer or do you have a few ideas to 10x software developer’s productivity? Share your stories and thoughts in the comment section.

Wrong form ID