Time management for software engineers

Guillaume Belanger
4 min readNov 9, 2022

I work at a software company where every six months, all of the engineering leads meet up in person to do two things:

  1. Reflect on the past 6 months’ objectives
  2. Define objectives for the next 6 months

Every time, most product leads end up not completing all of the objectives they set out to do. And that’s ok. Here I don’t want to focus on doing the most things but doing the important ones.

What is the important thing? Let’s take an example. You are starting your own car company. Before you start hiring engineers and building your factory, you think of what are going to be the key attributes of your car. Here let’s list all the attributes that come to mind:

  • Cheap
  • Fast
  • Safe
  • Drive smoothly
  • Drive sportily
  • Drive itself
  • High MPG
  • Large cargo capacity
  • Comfortable
  • Great audio
  • Custom paint
  • Elegant

Obviously you can’t do all of those things. The first reason is that there are physical constraints between some of those options. The second and most important reason is the fact that you simply don’t have enough time. As the founder you have a given amount of money and can’t work on R&D for an infinite amount of time. Ultimately you have to choose on where to place focus. Here let’s say we choose the following attributes:

  • Cheap
  • Safe
  • High MPG
  • Large cargo capacity

This is a great first step. The toughest thing to do however is not to decide what our product should be, but to let go of all of the things that it could have been. I mean it, this is truly difficult.

“No. You’ve got it wrong, Mike, Everything you didn’t circle just became your Avoid-At-All-Cost list.” Warren Buffet, Berkshire Hathaway

Selecting what are the important things will provide focus and a framework for making decisions. When working on your projects, people will pull you towards doing things that are not the important ones. These people will be customers, potential customers, internal teams, journalists, friends, family, people on Reddit, and many more. And these people will have strong opinions on what your product should be. If you don’t know what are the important things, you will try to do all of the things. And you won’t succeed. Why? Because there’s not enough time.

This means that you will have to say no a lot. Saying no is hard. It is especially hard when we say no to attributes that we think are interesting or important or that your competitors are doing especially well. But the reality is you would have to say no anyway, but unconsciously. Let’s say you are focused on making your car have the highest potential MPG. This problem itself is a hard one and if you really want to differentiate yourself in the market and build the car that has the highest MPG of the industry, you will have to spend a lot of time solving this problem. If a customer comes to you and ask you to work on having great audio and you say yes, you are actually saying no to focussing on having the highest possible MPG. You are saying no to what you said was the most important.

“You can only do so much. There are five more projects you want to do, but you pick the three that are really going to matter, and you try to do those really well, and you don’t even try to do the others.” Sheryl Sandberg, Meta

Now, you may have noticed that there’s nothing of what I said here that is specific to software engineering. And that is correct. It is true for approaching any problem where time is a constraint, which is pretty much all of the problems. This includes the problem of how to live your life. Life goes on for only a limited amount of time, something like four thousand weeks.

“We’ve been granted the mental capacities to make almost infinitely ambitious plans, yet practically no time at all to put them into action.” Oliver Burkeman, Four Thousand Weeks

You will have to make decisions in life. Do you want a family, do you want this new job, should you move to this new country, should you do a Ph.D., should you train for a marathon and many many more. The difficult fact to accept is that you will not do all of the things that you could do. In fact, you will not do most of the things you could do. It is especially important to know what you value in your own life to make sure that you end up in places you want to be. For example, if what you value the most is your family and spending the most amount of time with them, then perhaps you shouldn’t take this new VP position that was offered to you. You need to know what you value most to make good decisions. This being said, what you value will be different from what others value and that’s ok, we are all different. What you value will also change over time, the goals of a 19 years old are very different from the ones of a 90 years old and that’s also ok.

Thinking about the finitude of life can be scary, but it can also be liberating. Once you have accepted that you will not do all of the things and that you have decided where to place your focus, you can appreciate more the time you spend doing those things.

--

--

Guillaume Belanger

Guillaume is a software developer from Montreal who writes about bip bop stuff.