Lucy was feeling overwhelmed. She was leading a small team of four developers, and wherever she looked, more work was piling up with no end in sight.
Her email inbox was overflowing, let alone all those unread Slack messages!
It looked like the team had overcommitted in the current sprint again, so they had to drop some work and could not make the improvements to the build system they wanted.
Urgent incoming bug reports prevented them from going forward.
The next sprint was nearing, and Lucy had yet to write the specifications for five features.
On top of that, a 2-hour meeting with the stakeholders was going to cut her afternoon in half, and she needed to talk to Paul: His code was still showing the same quality flaws she had already seen two weeks ago.
As a result of all this, Lucy was feeling like all she ever did was react to events. She just could not find the time to plan ahead.
A common problem
She is not alone in such a situation, of course. Especially new team leads and team managers find themselves exposed to so many requests, tasks, crises, and responsibilities, that they hardly know where to begin. And whatever they do, it never seems enough, and the work seems to become more and more.
A common strategy is to find better ways of organizing yourself and your work: Inbox zero, Getting it Done, Pomodoro Technique. The list goes on. People turn to different techniques in order to become more productive.
This works up to a point.
Production is not everything
However: In order to become sustainably more productive in the long run, you have to give up producing 100% of your time.
This sounds counterintuitive, and I’m not asking you to take my word for it. However, how about the word of Stephen Covey, author of the world-famous book The Seven Habits of Highly Effective People?
To illustrate his point, he gives an analogy: In Aesop’s fable of the goose that laid golden eggs, the farmer who owned the goose obtained one golden egg per day from the miraculous bird. This was fantastic, but at some point, he grew impatient and greedy. He wanted to have all the golden eggs at once, so he killed the goose to get at all the eggs inside it.
Of course, there were no golden eggs inside. And, now that the goose was dead, there would be no more of them, either.
Covey uses the fable to illustrate the concepts of Production (P) and Production Capacity (PC).
P is what you produce. PC is what you are capable of producing.
P is the golden egg. PC is the goose. The farmer can obtain a golden egg per day, but he has to nurture the goose and treat it well so that it keeps laying golden eggs.
If the farmer feeds the goose well, the golden eggs will be bigger. If he neglects it, they will be smaller.
If he lets it die, they will stop coming entirely.
Let’s take that principle and transfer it to modern working life. As a knowledge worker, what will happen if you focus all your energy on P alone?
If you are a software developer, and all you ever do is implement the next task, and then the next task, and then the next task — your production will be high, but your skills will eventually become obsolete as new technologies and practices emerge. Your PC will become less.
If you do quality assurance, and all you ever do is test the next feature manually, you will be busy, and maybe your P will be good for some time. If you do not invest in automation to increase your PC, however, your P will not be enough any more as the application scales up.
If you are the Product Manager of a web app, and you churn out features like you always have, you might have a high P. However, if you don’t invest in learning about new technologies and their possibilities, if you don’t read trends and think about strategy, you will fall behind, and your old-school features will not be enough any more.
In order to stay effective and productive in the long run, you must not focus on P alone. It’s your PC that will be the decisive factor.
Strengthening your PC is what Covey calls a Quadrant II activity. This term refers to the productivity matrix, also called Eisenhower Matrix, after the 34th president of the US.
It is helpful to draw this matrix once in a while, and reflect on what it currently looks like in your own context. I drew mine in the picture below.
The matrix has an axis labelled “urgent”, and one labelled “important”. This leads to four quadrants.
Quadrant I contains the urgent and important tasks. These are the time-critical things that you absolutely have to take care of. Crises, outages, and closings with a strict deadline go here. If you do not take care of them, harm will be done, or opportunities missed.
Quadrant III, on the lower left, are the urgent but not very important things. A meeting that you don’t actually know how to contribute value to, and that you don’t get anything out of. The report that you have to hand in on Monday that no one will read. They have a deadline, or somebody is urging you to do them, but nothing will fall apart right away if you don’t do them.
Quadrant IV, on the lower right, holds the non-important, non-urgent things. Some email falls into that category, and reading certain Slack channels. Busywork like compiling data that does not help anybody make a decision can also be found here, along with pleasant time-wasters like reading Dilbert comics or browsing the social network of your choice.
And then, there is Quadrant II.
Quadrant II comprises, you guessed it, the important, but non-urgent things. These are the activities that nobody is urging you to do, but that will make a big difference in the long run.
It is here that you build up your PC.
It is here that you strengthen your mental muscles.
It is here that you strategize, where you figure out what you should actually spend your time on.
It is here that you prevent future crises and outages from happening.
Now, I hear you saying: “But Tom, I’m just an individual contributor! A software developer who does not get to decide where and how to spend her time! I’m usually told what to work on, and I simply do it. End of story.”
First of all, if you really work in such a place where your autonomy and your own thinking are not wanted, and where you are really only a short-order cook, then do yourself a favour and get out of there quickly.
Second, even with limited autonomy, you can focus on Quadrant II activities at certain times. What is more, if you do so, you will open up new opportunities in the future. More on that later.
First, let us look at some Quadrant II activities that you can do as an individual contributor who works in software development.
There are few more satisfying things than spending a couple of hours to automate something that costs you and your co-workers a few minutes every a day. But even if it wasn’t for the enjoyment, automating things is a great investment of your time and a classic Quadrant II activity.
I remember when I had to hand in a report every Friday. I had to retrieve some numbers from various dashboards, do some calculations with them, and put the results in the proper format. I also remember how much I dreaded and sometimes procrastinated doing that.
So I took the time — several hours — to automate these steps, which easily cut the time in half that it took to create the report every week. Not just did this investment save me time in the long run, but it was also a huge relief in terms of the cognitive load I was carrying around.
Now, I did not worry about the report so much any more.
I didn’t dread its due date.
Instead, it was even kind of a pleasure to press the button and see all these numbers come out.
What is more, the little piece of software I wrote also benefitted others who had to create similar reports. By making your creation reusable, you can double and triple your return on investment.
If you don’t have reports to create, then how about automating code quality checks, setup procedures, your build process, or health checks and alerts? Often, these kinds of things are one-time investments with little maintenance later on, and, after a short while, you will not be able to imagine working without them any more.
Automating things is a Quadrant II activity, because it makes you faster and expands your range of action. It frees up time you can devote to more Quadrant II tasks, or to urgent things that might come up. It makes you more responsive and flexible, too: After automating my report generation, I could have answered to an ad-hoc request much faster than before.
This way, more opportunities open up. Being able to react more quickly further increases your circle of influence, as well as your Production Capability.
Increase test coverage
If your software gets released often (as it probably should), it can be a challenge to keep the defect rate low. Manual testing might work as long as you release once a week, but what if you double that frequency?
What if you need to run tests multiple times a day?
At some point, developers and QA engineers have to work together to automate testing as far as possible (and reasonable).
Of course, writing automated tests is rarely considered urgent. I have yet to see a business owner running up to the development team in panic, waving hands and shouting: “We need to write these integration tests, or else we will not be able to hit our revenue targets!”
Therefore, writing tests is often neglected when deadlines loom and time is running out — distinctive characteristics of a Quadrant II activity.
Writing automated tests might be mostly non-urgent, but is it really that important?
Well, it depends a bit on the tests you write. While covering every little getter and setter might not be the best use of your time, you will benefit greatly from being able to test your core functionality with a single command, many times a day. It will give you more confidence in your software, it will allow you to release more often, and it will let the QA engineers focus on manually testing the really tricky stuff, or the short-lived code.
Being able to release more often is definitely an improvement to your PC. Therefore, increasing test coverage is a Quadrant II activity.
Learn new techniques and tools
I worked with an engineer once who constantly had trouble with our development environment — which was quite complex, admittedly. At regular intervals, the build would break on her machine and she would not know what to do.
Had she forgotten to update her configuration so that she was still using the old database connection parameters?
Was she using the wrong Node version?
Was she building the right-to-left version of the app, but did not use the correct assets?
Was the application cache invalid, and she forgot to delete it?
Was she downloading software packages from a wrong registry?
There could be a lot of reasons. Every day, troubleshooting like this caused her an hour and sometimes more of wondering, trial and error, cursing, and frustration. Most of her colleagues were happy to help, but she did not like interrupting them all the time, and there was not always somebody available.
Then, she decided to make a conscious effort to understand the development environment in all its aspects. Every day, she set aside half an hour in the morning to examine how it all fit together: The various branches, the build variants, the order of the build steps, the different environments, the caching layers.
After two weeks, she was significantly more autonomous in her work.
After four weeks, she rarely ever had to ask somebody when she encountered a hiccup in her development environment. She could apply what she had learned, and she could fix her own problems.
Seeing the huge amount of time that her new skills and knowledge saved her, she stuck to the habit of the 30 minutes study in the morning. She would simply deepen her knowledge in some technology that was useful to her at the moment, or could be in the future.
Covey, the author of “Seven Habits”, calls this “sharpening the saw”: If you consciously and constantly deepen your knowledge and refine your skills, the payoff will be enormous over time.
Just remember that consistency is everything: Half an hour a day is not that much, and is easy to do once. It will also not have that much of an effect.
However, doing it on 100 consecutive days is an entirely different story.
It is still not that much per day.
However, it is not so easy to do any more.
But also, the payoff will be enormous, so go for it!
Work on your “next”
So you have mastered your field. You know all the programming languages you need to know. You know all the build tools. You know the database technology. You know your framework like the back of your hand.
But why stop there?
As soon as you start feeling comfortable with what you are doing, ask yourself one question:
Chances are you will not do the job you are currently doing for the rest of your life. Do you think that, in the next one, you will be using the exact same tools and technologies, and perform the exact same activities?
Would you even want that?
If the answer is “yes”, then that’s fine. Technology is evolving fast, and as a software engineer, you will always have enough on your plate by keeping up with the latest and hottest.
However, as a senior engineer, there might also be opportunities to do other things besides development.
For example, you might be asked to mentor somebody.
Or, you might be asked to teach classes for your colleagues.
Or, you might even be asked to teach classes at a college or university.
Or, you might get an opportunity to do some freelance work.
You might do conference talks. You might write articles. You might write a book. You might create a video course. You might become an IT consultant. You might transition into business, or into design, or into marketing. The possibilities are endless.
Maybe luck also plays a role in which opportunities open up.
But you know how the saying goes: Fortune favours the prepared mind.
Therefore, prepare your mind for whatever might be next for you. Write your first article. Prepare your first in-person class. Install a screencasting software and create a video teaching something useful. Become an expert in a non-IT field that interests you.
Opportunities will open up.
Build and foster relationships
The opportunities we just talked about do not fall from the sky, however. In most cases, other people will be involved. And then, what will happen?
If a colleague leaves to become the founder of their own company with a hot new product idea, will they ask you to join?
If somebody in a different department is in search of rare expertise that you possess, will they know about it, think of you, and approach you?
If somebody out there is looking for a speaker for a conference, will they consider you?
Conversely, if you need a few hours of a designer’s time to help you with an under-the-radar side project, will you find somebody to do it?
Or, before a new project is allocated to a different team when your team is actually the right team to tackle it, will you know about it soon enough? And will you be able to influence the decision?
The answer is always the same: It depends on your relationships with the persons involved.
If you have a good relationship with the new company founder, of course they might ask you. However, if you hardly ever exchanged a word, it is a lot less likely.
If you have good relationships with a lot of people, you will hear of important news — and opportunities — sooner, and have more influence.
With a good relationship in place, that designer is a lot more likely to sacrifice some of her time for you.
And it goes both ways.
Think of somebody you would immediately support with five hours of your time over the coming week.
Now, think of somebody you would not support like that.
What is your relationship with each person?
See what I mean?
Good relationships of any kind take some care, time, and effort, but all of this is necessary. Because, when that moment comes where you need somebody’s support, it is too late to build that relationship on the spot.
I hate the word “investment” when talking about human relationships, so I will talk about care instead. This care has to be put in before you actually need the support.
Covey, the author of “Seven Habits”, talks about emotional bank accounts. In each of your relationships, you maintain such an emotional bank account. You can make a deposit to this account, and you can make a withdrawal. However, the deposit has to come first. Otherwise, you will go into debt, and this might damage the relationship.
There are numerous ways to build relationships. You can simply ask somebody how their week is going. You can ask them what their biggest challenge currently is. You can do them a favour, or ask them for a favour (small favours that are done in a minute do not strain the emotional bank account). You can inquire about the well-being of their family. You can tell them something personal about you.
There are also many places where you can build relationships. You can do so in the company, at conferences, on Twitter, or in other social networks. Some relationships will be with people you depend on for your work, others will be with people outside your organization who share similar interests or challenges as you do.
For example, in Inspired, Marty Cagan advises product managers to find a friend in finance, because it can give them valuable insights into the monetary dimension of their product.
Before you start building new relationships, also think about the ones you already have, however subtle they might be.
Are there any that you have neglected?
Any that you should intensify, or revive?
Maybe one or two that take up a lot of time, but that you don’t enjoy?
Regardless of new or existing relationship: Always think win-win. Don’t just start a relationship with somebody to take advantage of them. Show genuine interest for them as a person and for their work, and do your best to make the relationship enjoyable for both sides. Otherwise, we will all end up in House of Cards, where it’s quid pro quo, and nothing else.
I talked earlier about new opportunities that will open up if you spend a good deal of time in Quadrant II. Let’s look at Lucy’s case from the beginning:
- She still has some specifications to write. Why does she write them all herself? Some of them could certainly be written by one of her team members. This would free up time for Lucy to work on more strategic tasks so that fewer emergency situations would occur. It would also prepare her team better for times when she is not available.
- Improving the build system of the application would likely increase the team’s production capability (PC) and should not be postponed for long. Again, faster builds and more reliable releases free up time to do other things.
- Paul’s output is problematic, because the quality is not where it should be. This has been going on for a while already, and diverts Lucy’s time and attention from more important things. The appropriate Quadrant II response would be to free up time for deliberate training, so that Paul’s PC goes up, and so that he does not affect the team’s performance any more.
- The urgent incoming bugs might be prevented by better automated testing, or better training. Early detection of bugs prevents future crises, and lets the team use more time and energy for the development of useful functionality.
- Lucy is overwhelmed by the number of emails and Slack messages she receives. Here, setting up a system to organize the communication and writing some email templates could save a lot of time in the long run.
- The meeting with stakeholders takes very long. A Quadrant II response would be to design a new meeting structure that makes the meeting more efficient, and convince the other participants of its benefits.
Realistically, Lucy will not be able to do all these things at once. However, getting rid of one pain point by thoughtfully spending time in Quadrant II can already be a huge relief, and make room for further such improvements.
If you find yourself in reactive mode for the majority of your time, take a couple of minutes and map out your activities using the urgent vs. important matrix.
Are you spending around 20% to 30% of your time in Quadrant II? If you’re like most people, you are probably not.
I’m no exception here.
However, this is what you should strive for.
Start with one activity that will free up time in the long run. Find something to increase your Production Capacity. If you start now, and keep at it consistently, then your effectiveness will be in a totally different league a few months from now.