Want to Produce More Quality Work as a Software Engineer?

Photo by Lucian Alexe

In a 2004 interview, Haruki Murakami, a famous novelist, discussed his daily habit as a novelist- he will wake up at four a.m and work for five to six hours. Then, Murakami will go for a swim, listen to music for the rest of his day, and go to bed around 9 AM. He said that he would hold on to such repetition to keep up his artistic sensitivity. Another great writer Ernest Hemingway’s daily routine will write every morning from 6 to 12 PM because those times are when no one disturbs him so he can have a deep focus on his work. Not only novelists have such an uncommon schedule, but also Software Developers.

In the book about game development company, Masters of Doom, David Kushner reflected on the company’s ace coder’s unconventional working style, John Carmack.

To increase his productivity and find a break from distraction while working on his breakthrough Quake engine, Carmack adopted an aggressive active - he began gradually shifting the start of his workday. Eventually, he was starting his programming in the evening and finishing just before dawn.

On the other hand, the schedule of entrepreneurs Gary Vaynerchuk is broken down into tiny slots, mostly comprising meetings, which can be as short as 3 minutes. He will make calls, post content on various social media, and resolve issues within his company during those meetings. In brief, his daily schedule consists of managing, organizing, and booking schedules.

We tend to read and listen about the people’s schedules that we admire and learn from them by waking up early every day at 4 AM or skip breakfast to become as productive as they are. However, we often miss one indicator that these people have different types of work. Thus, their specific schedule and routines are what bring them that 10x result of work.

We can classify the types of work that we do into two types of schedules - maker and manager schedules. If you want to become productive and want to produce good quality work as a software engineer, you will need to know how to switch between these two types of schedules during your day to day activities.

What are the Makers vs. Managers Schedule?

Paul Graham of Y Combinator described this concept in his essay of 2009 essay. From Graham’s perspective, doing creative work or overseeing other people requires a two distinct set of habits and routines. Those routines start from how we construct our time.

A Managers Schedule

Usually, a manager’s schedule is tiny slots, each with a specific purpose decided in advance.

Managers put a lot of their time resolving the issue and doing reactive work.

For instance, when there is a production issue or an employee makes a mistake or needs advice, an engineering manager usually will go and sort out the problems.

Therefore, managers need to make fast and smart decisions and be on the feet to figure resolved issues because they might have the potential to resolve the issue through their judgment and expertise. There is no deep focus needed.

The Makers Schedule

On the other hand, a software engineer, or a novelist, someone whose task is to create, designs, or thinks and requires a tremendous amount of creativity, will require a long time to reserved for focusing on particular tasks. Breaking their schedule into time slots of a few minutes will result in doing nothing.

For instance, in his essay, Paul Graham mentioned that he would start writing code from dinner to 3 AM every day because there is no interruption at night. The novelist will go to a cabin and lock him/herself up for a couple of months with a typewriter to write their next novel. These makers need to have an intense focus and need to do one thing well and leave the rest to the managers.

Therefore, meetings hurt makers’ schedules because they restrict their ability to get into the “zone.”

You can operate on these two schedules if you are a maker or a manager. However, the conflict starts when both makers and managers work together.

Photo by Priscilla Du Preez

We live in the manager’s world, where the manager got to control the team’s schedule. Therefore, a single standup in the morning might blow a whole afternoon by breaking it into two pieces that are too small to do anything substantial. Open office and Slack helps managers to collaborate with makers conveniently. However, these environments fit well within managers’ schedules, but it suffers from those who want undivided attention to do deep work.

If you are makers, how did you preserve your maker’s schedule in the manager’s world?

Office Hours

The first technique Paul Graham recommends is to create an “office-hour” in your schedule.

Office hours are chunks of time that makers set aside for meetings, while the rest of the time, they are free to go into a “Do Not Disturb” mode.

You should block out at least 5 hours in your calendar to do deep work. You are leaving 1 or 2 hours open for anyone who will step into the office hours.

One of the reasons is that studies say we need an average of 30 minutes or more to get into the flow. Once you get into the flow state, you can have a deep focus on your work.

If you are a manager, you should reserve the time of collaborating with your team and create a time for your team’s makers to do deep work.

It would be best if you understood that it is okay not to be immediately available to your teammates when you focus on your work.

Break up Your Weeks between Manager’s and Maker’s Schedule

In one of his interviews, Adam Grant, a Wharton professor, became a Manager mode in the Fall and had meetings with students. Then, during the spring and summer, he switches to a maker schedule to focus on his research.

As a software engineer, you can block off your schedule during certain days of the week for deep work, leave someday open for collaboration with teammates, or conduct meetings.

During those periods of deep focus, you can either block off your schedules. Put the slack notification message to a “do not disturb” sign, and reply to your co-worker messages when you have that tiny break between your focus.

Many of the conversations and messages during the workday are usually repetitive questions that they can’t find the answer on their own. Thus, not having that immediate response from your teammates might be a blocker. Your team needs clear documentation of the internal knowledge base to minimize the number of repetitive questions bounced around the office to resolve this. It also allows new team-members to on-board themselves in a distributed environment.

Routine and Rituals

Routine helped you set up a day where your Maker time is sacred and shouldn’t be touched. On the other hand, rituals are what help you transition away from managing and into Maker mode.

This is why Haruki Murakami will start writing at four a.m. every morning, or Paul Graham starts programming from dinner until midnight.

While routine aims to make the chaos of everyday life more containable and controllable, ritual aims to imbue the mundane with magical elements. - Maira Popova

Think of Maya Angelou, who only wrote in small hotel rooms. Or Jack Kerouac, who made sure to touch the ground nine times before starting his creative work. Or even Beethoven, who counted 60 coffee beans for his daily brew before getting started.

You might need to drink a cup of coffee before getting into the zone, or need to wait for 11 PM before start coding. Whatever it takes for you to get into that flow state, that will serve as your rituals.

Conclusion

As a software engineer, we usually do best when we are in the maker’s schedule.

To protect ourselves and forced into the manager’s schedule, we can block out most of our time in our workday and leave some time for “Office Hours.” We can also treat each day of the week as “Maker’s mode” or “Manager’s mode.”

Lastly, everybody has their routine and rituals. Find that once you find that routine and rituals, leverage that into your schedule to help you get into the flow state.

If you incorporate these techniques and change your schedule, you realized that you could produce many excellent quality outcomes in your projects and tasks.

Source

Like this Article?

Sign up for my newsletter to get notified for new articles!

Subscribe

* indicates required

Related Posts

The Downside of Functional Data Structure

It is not performant enough

Parsing Json with Circe - Beyond the Basics

Encode and Decode ADT with Circe

Let Me Teach You How To Implement Monad With Cats

Create your own Custom Monad with Cats Library

How To Randomly Split Up An Elements From A Stream Of Data In Percentage

How to randomly split up element from a stream of data without knowing the total amount of it?

What is really so special about JavaScript Closure?

It is easy to explain what it is but hard to understand why you need to use them.