The 10X developer

Mar 14 2019

A "10X Developer" is

An individual who is thought to be as productive as 10 others in his or her field.
The 10x developer would produce 10 times the outcomes of other colleagues.
(Techopedia)

But in the field of software development its hard to define what *10 times the outcomes* means.
How can we measure one's productivity?

  • 10X more LOC (lines of code) - Many times huge code blocks can be replaced by smaller elegant solution.
  • 10X more efficient code - But at what cost? Over/pre-optimization has its shortcomings.
  • 10X more bug fixes - Lots of minor bugs are not the same as one major bug.
  • 10X more experience - I would rather team up with a competent junior developer over a 10 year incompetent veteran any day.
  • 10X more work hours - No one can maintain such pace for long.

Programer

Therefore, one may argue the there is no such thing as 10X developer at all - its a myth!
On the other hand, others may say there is such thing. Even better, there are 100X monsters among us!

But we all can agree there is such thing as an efficient developer.

Pareto principle states that 80% of the effects come from 20% of the causes.

I believe that a 10X developer is simply an efficient individual. Its a person who provides 80% of the value, and 20% of the effort.

I believe anyone can become an efficient worker.
Moreover, I believe such individuals under the right care, make any group a 10X team.

10X is not a unicorn, it's a work culture with two pillars - communication & autodidacticism,
and one nemesis - perfectionism.

Understand the task

An efficient developer knows to prioritize tasks, and break them into sub tasks.
In order to do so, we must be able to separate the wheat from the chaff.

At any time, for any task, we must see the big picture and be able to answer the big W.W.W.

  • What needs to be done.
  • Why it is needed.
  • When should it be done.

With those answers, we can set goals and define milestones for any process.
We can define what is our "must have" feature and what is a "nice to have".

For example, lets say the client request us to build a landing page with a login.
That is the what in our equation, or at least part of it.
Before diving in - communicate. Make sure you understand where the value is.

Why & when is the feature needed?

  • Maybe the client has a big presentation in a week
  • Maybe the login doesn't need to work at all, but its extremely important that the design would be responsive and work cross device/browser.
  • Maybe all he cares about is passing a security review, and needs the login logic to be robust.

Time management

An efficient developer knows to manage his/her quality time.

Some are early risers, some are night owls.
Some get to the office and get cracking right away, others would would zombie-walk till the coffee dose kicks in.

Know yourself. When is the best time for you to be focused? What part of the day is your work quality the best?
Protect those hours jealously.

  • Reduce interruptions. Get the phone out of reach. The dancing kitty clip gramma just sent will be hilarious in an hour too.
  • Push back meetings. Mark busy hours on your calender.
  • Know when & what is good enough. In many cases the "perfect solution" is worse then the "bad solution".

Dancing kitty

Know the basics

An efficient developer knows to avoid common pitfalls that would need to be fixed later on.

You don't have to be an expert full of theoretical knowledge, but you should be
able to architect a solution and explain its reasoning.

Use tools and automation

An efficient developer knows to use his tools.

An efficient developer is lazy. He doesn't waste time on mundane tasks.

  • If you find yourself repeating a manual operation too many times, write a script for it.
  • Define custom snippets.

Keep learning

An efficient developer stays updated.

Progress waits for no one. If you're not catching up, you'll be left behind.
Make it a habit to learn something new every day.

You don't need to be an expert on every new framework that pops out.
Just know enough to handle small talks without appearing clueless.

Share & support

An efficient developer shares his/hers knowledge.

Never be the smartest one in the room.


Being an efficient developer is great, but working in an efficient team...

Its magical

Guy Y.
Software Developer
Back to Blog