13-7-2023 Carl Riis
For me, working inefficiently means not working at all, and working efficiently means being able to keep working in the face of distractions, uncertainty, low motivation, etc. The goal is to keep up your momentum. In theory, that sounds easy to do: just keep working, but reality is messy, and messiness gets in the way of momentum.
I want this guide to be ultra-practical. Often, guides and advice like this ignore the messy parts of reality to be more straightforward. My strategy to combat this is to invent a fake person (Bob), who we will be following as he works. Throughout Bob’s workday, I will present tangible advice that he can use to overcome his work-related obstacles.
Our fake person Bob is fresh out of school and has recently started a new remote job at FeatherTrack, a software company specializing in Pigeon racing. The company provides solutions to manage the contestants of races in real-time and historical scoreboards that rank all pigeons from best to worst. This is Bob’s dream gig.
He has only worked at FeatherTrack for a little over a week now, but he already feels overwhelmed. So many things are pulling at him for his attention. His manager encourages him to pick up at least three tasks a day to get up to speed. His HR person wants him to fill in their “newcomer-feelings-chart”. And the security supervisor reminds him that he has only completed 4 out of 11 security steps on his company laptop.
This will be the most tangible of all my advice. Put the stuff you need to do in a list.
Writing everything down in a list allows you to stop worrying about everything that needs to be done and start focusing on one task at a time.
Working your way down the list, crossing things off, also gives you a sense of accomplishment. There is also the convenient benefit that you can’t forgot something that needs doing.
A list is nice because it summarizes the purpose of a working day into one goal, finish the list. It organizes chaos.
Bob makes his list:
[ ] Finish 3 coding tasks [ ] Fill in HR feelings-chart [ ] Complete security steps
He knows that the two last tasks aren’t critical to get done today. Getting some coding done is his priority.
Bob messages the team asking if there are any tasks he can pick up. One of them answers:
Hi Bob. Glad you asked :) Something that desperately needs doing is to migrate all RaceRanker’s legacy AppSiteV3 DTOs to the new EggFirst format, then re-index.
What? This is utter nonsense to him. It follows a tendency he has noticed recently. After becoming a familiar face in the team, people lose track of what he can reasonably know and what he can’t. As a result, he is tasked with things that make no sense to him.
He considers asking a quick follow-up question to the task, but in this case, he wouldn’t even know what to ask. He doesn’t know what he doesn’t know.
This predicament is stressing him out. He has other tasks he needs to do today, but this one has him stuck. Why is everyone expecting him to just “pick things up”? It becomes very tempting to procrastinate the day away.
You’re not always expected to succeed, but you’re always expected to make an effort. What’s more, there is always somewhere you can direct your effort.
Often, when we think we have no options left, it’s because we’re overwhelmed, and the options left are the most inconvenient.
Distancing yourself from your own situation can help. Ask yourself, “What would a reasonable person do in this situation?”. Often, this means talking to someone who has more context than you.
Bob decides to call the coworker that gave him the task. It takes a while, but eventually, he understands everything that was asked of him, and with a little extra help and time, he completes the task.
Feeling the momentum from completing the last task, Bob decides to pick up a new one. The available task he finds is to create a button on FeatherTrack’s website where pigeon managers can mark a race pigeon as being retired.
Bob realizes that he doesn’t quite understand how the website connects to the rest of the system. Suddenly, he gets the brilliant idea of doing a deep-dive into all FeatherTrack’s systems, figuring out how they connect. This would take a while but would make the button task easier.
This might be a tendency specific to me and Bob, but we tend to overprepare for a task instead of jumping straight into it. This is a form of procrastination that disguises itself as preparedness.
Doing open-ended research into your area of work is a good idea, but not when you have a specific thing you’re trying to accomplish. You risk spending valuable time teaching yourself concepts that don’t apply to what you need. And while these concepts might become useful later, this is not guaranteed.
When you have the time, I highly recommend diving into rabbit holes, but when you have a concrete goal, it’s best to take the straightest path.
Bob decides to research only the systems relevant to the button and starts making solid progress, when he suddenly encounters a dilemma. The designs he’s using are incomplete. It’s very clear how the button should look for a non-retired pigeon, but what if a pigeon is already retired? Should it be possible to un-retire a pigeon? If so, how should that button look? This is unclear to Bob.
He knows the designer often takes long to respond to messages. Maybe it’s best to just make an educated guess about the button, so he can finish his task quicker?
A lot of working time is spent re-doing old work because it was done wrongly. This is, in many cases, unavoidable, but sometimes it’s easily preventable with some extra consideration.
Especially when encountering dilemmas, we tend to be overly optimistic in our ability to predict the future. This causes us to take shortcuts in the form of hasty decisions, avoiding the trouble of getting more clarity. But facing a hard dilemma now is much better than later - when it will inevitably come into question again.
Shortcuts aren’t just limited to dilemmas. Annoying tasks, decisions, messages, etc., can all be tempting to avoid dealing with. Pushing these off almost always comes with uncomfortable consequences in the future, which could have been avoided if dealt with upfront.
Bob calls the designer to ask how the button should work/look for already retired pigeons. He learns that pigeons can be un-retired, and the designer sends over some new designs for him to implement.
After implementing the button, Bob is tired. He knows he should finish another task, but at this point, he’d much rather rest. He considers stopping for now and waking up early tomorrow to finish the last task.
When doing something difficult, it’s far too easy convincing yourself that it would be better to work later rather than now. Of course, there are times when it’s fully reasonable to push off work to rest early, but often, you convince yourself to quit when it’s smarter to push on some more. Putting off work can risk it piling up, which leads to more stress. A general rule of thumb is that it’s better to work now, not later.
Ideally, to avoid procrastination, you shouldn’t let yourself stop working without planning when in advance. Planning ahead also solves the complication of breaks. Breaks are necessary, but they should be planned, e.g., 10 minutes every hour.
Stopping work to relax feels much more satisfying when you know it’s fully justified and planned.
Bob gathers his strength and prepares himself to take on a last task. He can’t find a good task in FeatherTrack’s task management system, so he messages his boss. He’s told that there isn’t anything easy to pick up and to just study some of the FeatherTrack codebase instead.
Bob is slightly confused by this vague task description. It doesn’t fit neatly into his list since it doesn’t have a clear definition of done. The FeatherTrack codebase is enormous, and not possible to study fully in one day.
This is an extension of Advice 1 and 5 about keeping a list and planning ahead. It’s for those of you who decide to keep a daily list of stuff to do, but get stumped by tasks that don’t have a clear end in the near future.
The solution to this issue is very simple; boundless tasks are defined by time, not scope—ideally, smaller chunks (max one hour).
A typical example of a list from my personal life could look like this:
[ ] Write 30min [ ] Email insurance [ ] Code 1hr [ ] Code 1hr [ ] Buy food
The task to “code 2 hours today” is split into two 1 hour tasks. This is to make them more manageable and gives me a sense of accomplishment after completing each one. I, of course, also take a break between these hour blocks, which creates a natural Pomodoro-like rhythm around the tasks.
Bob decides to study the FeatherTrack codebase for an hour, then finally declare his tasks for the day done.
Having reached the end of his workday, Bob can’t help but reflect on his future at FeatherTrack, his career, and his personal development in general. He has a lot he wants to achieve, but he can’t help but think he isn’t cut out for it. His coworkers seem to be a special breed of people that got to where they are because of some secret sauce that Bob doesn’t possess. Maybe it’s best to accept that his ambitions won’t lead to anything?
“Growth mindset” is often thrown around by people as a simple solution to guaranteed success, it’s not. Some scientific sources even question its efficiency, which is a discussion I won’t get into; instead, I’ll present growth mindset the way I see it, which I believe improved my life tremendously.
A growth mindset is all about how you view challenges and your abilities. Specifically, the belief that your abilities aren’t set in stone, making it possible for you to achieve challenges that currently seem impossible. It’s about using your common sense, but leaning heavily on the side of “I can” rather than “I can’t”, and a general optimism towards what you’re capable of as a person, given enough time.
The opposite of a growth mindset is the “fixed mindset”. This is the belief that your abilities are permanent, making it unattainable for you to achieve things that currently feel impossible.
A fixed mindset is often rooted in how we view others’ success. When someone has achieved something impressive, the easy and romanticized answer is that they must have some special ability. This convenient explanation avoids us having to reflect inwards and accept that the answer is grounded in hard work. In reality, success isn’t found in special high-IQ high-talent people, it’s found in people who are able to make consistent progress toward new challenges they haven’t been able to complete before. People who gravitate towards challenges despite the failures and embarrassments that doing so brings.
Bob reflects on the future with newfound confidence. But for now, there are more important things than work. His cat Jerry needs feeding, and a new episode of his favorite show just came out. He’ll worry about being efficient later.