The Magical 10x Developer – How?
The elusive 10x developer produces ten times as much output as a decent 1x developer. Who are these rare, mythical, magical 10x developers? Can you become one too – and how?
In this tutorial, we’ll unravel the mysteries of the 10x developer. As it turns out, there’s nothing magical about it. We’ll discuss productivity, focus, deep work, and smartcuts you can use to increase your hourly output.
It’s exciting! Let’s get started.
- Achieve More By Doing Less
- Focus: Do One Thing
- 10x Developers Prioritize
- Why Do You Need Productivity?
- Distractions, Deep Work And Flow
- 10x Output: Automation And Batching
- Further Reading
Achieve More By Doing Less
What’s interesting, is that a 10x developer doesn’t work 10 times as hard as a 1x developer. They don’t write 10 times more code. They don’t work 10 times more hours. We all have the same amount of productive hours in a day, right?
Software development isn’t a linear discipline. You don’t just start your day, begin typing, and stop working 8 hours later. Building apps involves creative work, emotional labor, decision-making, and communication.
Efficiency, i.e. using less resources to produce the same output, doesn’t get you farther. Effectiveness, i.e. using the same resources to produce more output, is what makes a positive difference for 10x developers.
Think about the concept of a lever. A lever amplifies any input force to provide a greater output force. You can lift an elephant with your index finger, provided the lever is long and light enough.
So, what’s a software developer’s best leverage? As you’ll learn in this tutorial, they are:
- Focus and prioritization
- Setting the right goals
- Deep work and flow
- Batching and automation
Every one of these principles uses a lever to do more, with less. You don’t have 10 times as much hours in the day, so the increased output as to come from somewhere else – your leverage.
Focus: Do One Thing
The 10x developer’s weapon of choice is focus.
As a kid, you surely tried to burn stuff in the backyard with a convex glass lens. Such a lens converges rays of light on one point. If the light is bright enough, you can easily set a bit of tinder on fire (or worse).
Productive focus works the same way. It’s not about intently staring at one thing, or forcing yourself to “stay focused”, or being forceful and controlling in your way of working.
In fact, like most of these things, focus is paradoxical. As it turns out, it’s much easier to focus on the task at hand when you’re calm, quiet and non-controlling. It’s about letting go, instead of holding on.
As you learn later on in this tutorial, focus and flow are two sides of the same coin. Most developers, including 10x-ers, typically describe some kind of mental state in which they experience “flow”. This flow is often brought about by initial focused effort.
If you find it hard to focus, and if you feel that focus often escapes you, try the following exercise:
- Get a pebble or other small object, the size of a small coin
- Place the pebble on a flat, empty surface, about 60 cm (24″) in front of you
- Look at the pebble for about 30 seconds, and then look elsewhere
- Don’t stare intensely at the pebble, but calmly look at it – just enough for focus to naturally occur
What you’re experiencing is focus. It’s a calm, restful, quiet kind of attention. You’re not stressing or straining, commanding your mind to focus, or trying to shut things out.
You can’t focus for long periods of time, so that’s why you’re looking away after a few seconds. You will find though that it gets easier to focus if you practice.
Once you get the knack of the feeling focus gives, it becomes easier to let focus arise in your mind. In a focused state, it’s easier to get your work done more effectively. And that’s the hallmark of a 10x developer.
10x Developers Prioritize
If focus is a bit too vague for you, then let’s talk about prioritization.
The concept is simple:
- Some tasks are worth doing – they’re important – and get a higher priority
- Some tasks aren’t as important, and get a lower priority (and maybe don’t get done at all)
A 10x developer knows which tasks produce a desired end result. They can focus on the tasks that are important, and let go of tasks that aren’t. This is the same kind of less-is-more leverage that we talked about earlier.
Want to get better at prioritization?
- Start your workweek with an hour of planning (do this on Friday, so you can hit the ground running on Monday and let go of work during the weekend)
- Make a list of all the things you want or should do the coming week
- Give each task a score from 1-10, based on whether the task helps you or your goals move forward
- Discard any task below 4, unless they’re absolutely necessary or urgent (“call the fire department, otherwise house burns down” kind of urgent)
- Postpone any task below 7 to next week, unless they’re absolutely necessary
- Focus on the tasks above 7, starting with the most important task
The reason you’re aggressively discarding unimportant tasks, is because it gives you space to focus on the tasks that do matter. It also helps you keep your to-do list short.
You’re postponing tasks of medium importance, because it’s easy to get lost in these tasks. You can’t discard them, but they aren’t moving you forward much either. By postponing them, you can assess their priority again next week.
Moreover, some tasks just magically disappear if you ignore them, and other tasks underscore their importance by becoming more urgent.
Some tasks simply can’t or shouldn’t be discarded or postponed. You need to eat, sleep, pay bills and clean your desk. But what about urgent phone calls, things your boss needs you to do, or obligations you can’t cancel?
It’s important to be ruthless here. If it isn’t helping you move forward, it’s holding you back, because these tasks steal time and effort away from the tasks that do matter.
What a 10x developer does here, is finding the usefulness of a task that doesn’t appear important at first. Find ways for these tasks to help you reach your goals.
That urgent phone call, is it an opportunity to help someone else? That thing your boss asks you to do, is it a way to show what you’re good at? That obligation, could it give you an opportunity you didn’t see before?
If an urgent-but-unimportant task really doesn’t help you, consider whether the negative consequences are that bad if you don’t complete the task. What’s the worst that could happen? What’s the best that can happen if you do something important instead?
Why Do You Need Productivity?
If you type “productivity definition” in Google, you get this as a result:
- the effectiveness of productive effort, especially in industry, as measured in terms of the rate of output per unit of input
- the rate of production of new biomass by an individual, population, or community; the fertility or capacity of a given habitat or area
They contradict each other, right? The first focuses on effectiveness, the second on efficiency.
Here’s how they are different:
- Efficiency is the rate at which you can climb a ladder. Climb fast and get the most out of your resources, and you reach the top in less time.
- Effectiveness determines if the ladder is leaning against the right wall. Is it worthwhile to climb it? If not, which wall should you pick?
When talking about productivity, we often mistake efficiency and effectiveness. It doesn’t matter if you complete a task efficiently, if it’s the wrong task to begin with. The 10x developer leverages this distinction.
It’s like a car that’s stuck in sand. You rev the engine, the wheels spin, but there’s no traction so you stay stuck. What you need is leverage, something for the wheels to get a grip on. Then, the engine power gets hold, and you’re out of the sand.
Why do you need to be productive? It’s so you can reach your goals. It’s about going where you want to go. So, before you can work on increasing your productivity, you have to find out what your goals are. As a 10x developer, where do you want to go?
Without a goal, it’s difficult to score!
Distractions, Deep Work And Flow
How much time did you spend today on the following things?
- Browsing Facebook, to see what friends were doing last weekend
- Responding to urgent but unimportant chat messages
- Being at a meeting that should have been an email or 5-minute chat
- Reading BuzzFeed about the 5 traits successful millionaires have
- Checking your email. Again. And again. And again. And again.
- Thinking about something stupid you said 5 years ago
- Daydreaming about the moment you get out of this place
We all do this and that’s okay.
What’s not okay, however, is that all these distractions keep you from the work you set out to do. You already know this, though. You know you shouldn’t check Facebook, put your phone to sleep, and only check your email 2-3 times a day.
So, what’s not working here?
It’s not that you don’t have self-control. You do! If anything, the reason for compulsively checking email and Facebook is that you have too much self-control.
By creating all these rules for being productive, being a digital monk, trying to retain control, you’ve created so much friction and resistance. Constantly resisting and giving in costs a lot of energy and effort. Ultimately, it eats away your focus and calm.
The answer lies in focus and flow. In his book Deep Work, author Cal Newport describes a state of mind that’s called flow. 10x developers are intimately acquainted with flow.
When you’re in flow, code you write appears effortlessly on your computer’s screen. You’re zoned out, sometimes for hours on end, emerged in a soothing, blissful and productive state.
The problem is – there’s no step-by-step guide for achieving flow. Here’s what helps, though:
- Do work you love and enjoy – it’s hard to get into the flow of washing the dishes or doing laundry (unless that’s what you love!)
- Work on something important, like getting to your goals; a task that makes you feel good when you’ve accomplished it
- Do this task first thing in your workday, so don’t postpone it by doing urgent or unimportant work
- Find your “peak time”, i.e. experiment to find out which hours of the day help you get into a flow and be more productive
- Let the flow naturally come about, don’t force it, but also learn to recognize how it feels, so you get to know it better
What’s most important, is to clear away any distractions. It’s impossible to get into a flow state if you’re constantly interrupted by notifications, emails and people walking into your office.
Some ideas about not getting distracted:
- Close any apps on your Mac/PC that produce realtime notifications, such as chat and email
- Put your phone in flight mode, and place it face-down somewhere you can’t see it (give it a try, even if it makes you feel uncomfortable)
- Shut your office door, or put on noise-cancelling headphones if you like (some people have a headphones on = don’t talk to me policy)
With a little bit of practice, you can work deeply for 1-5 hours like this and get a lot of work done. Being able to work focused and undistracted is of paramount importance to become a 10x developer.
10x Output: Automation And Batching
Can you automate some of your work with the help of scripts, apps and tools? That’s what we’ll discuss next. It’s exciting, because automation typically comes naturally to 10x developers!
You can’t outsource software development work to a computer, but you can automate a lot of other things.
- Use continuous integration (CI/CD) tools to automatically kick off a new iOS app build when you push a commit or tag a release. You can let it push the app to TestFlight, or even to the App Store. This saves you at least a day.
- Use Zapier to create a digest of notifications or updates, like Twitter replies. Send these replies to yourself by email once a week, and batch reply to anyone who’s mentioned you on Twitter.
- Learn keyboard shortcuts for your favorite programs, instead of mousing over to every button. Keyboard shortcuts aren’t faster in general, unless you use them for repeat tasks, such as editing a video or archiving email.
As with anything, eliminate before you automate – otherwise you’re automating tasks that shouldn’t be executed in the first place.
Don’t know what you can or should automate? Keep track of all tasks you do in a given 1-2 week period. For every task, consider if it can be automated, or eliminated, or made more efficient with some tool.
Don’t be afraid to go low-tech. Ironically, many apps don’t make us more productive! You don’t have to use a fancy to-do list app, if pen and paper suffices. You could even quit Twitter and Facebook, if you want to.
Another way to work more productively, especially during repeat tasks, is batching. The concept is simple:
- Imagine you’re preparing a meal. You need to wash veggies, chop them, cook them, and put them on a plate.
- One way would be to do these tasks individually for each vegetable. You take the tomatoes, wash them, chop them, cook them, and put them on the plate. You do this for each vegetable.
- It’s probably faster to first wash all veggies, then chop all of them, then cook them together, and finally put all of them on plates.
This example is a bit contrived of course, but you can see how it applies to answering email, filing papers, fixing bugs, and any task that involves a series of repeatable steps.
The biggest advantage of batching is that it reduces overhead. You only have to set up each step once. This also reduces downtime from switching tasks, because you only have to switch to a new task once.
Think about it. If you were a pastry chef, would you make every pastry one by one, or would you do all bottoms, all creams and all tops in batches?
The 10x developer doesn’t do the work of a 1x developer 10 times as fast. As it turns out, 10x developers aren’t magical: they just get more results by doing less.
Their leverage can be found in:
- Focusing on one thing at a time
- Prioritizing tasks, and simply not doing unimportant tasks
- Figuring out what their goals are, and how to get there
- Eliminating distractions and getting into a flow state
- Automating tasks that can be automated, and batching other tasks
Awesome! Want to learn more? Check out these resources:
Code Swift right in your browser!
Go to the Swift Sandbox