Put First Things First

Put First Things First

One of the first things I advise my engineering mentees to do is take the time to read The 7 Habits of Highly Effective People by Steven R Covey¹.  I usually get an odd look and a healthy dose of skepticism that a pop culture business book published over 30 years ago could be relevant for software engineers.  But when I tell them that there is an audiobook available, they usually relent and give it a try. And, more often than not, they begrudgingly admit to finding it helpful².

I suspect I will be able to mine a couple of good articles out of Covey’s book, but the one I want to focus on today is Habit 3: Put first things first. Mastery of this tool is critical for every software engineer.

It is extremely common to hear new senior software engineers complain that they are “always busy but never get anything done.” Earlier in their career, it was reasonably straightforward to understand their impact.  They could count the number of lines of code written, the number of bugs fixed, or the number of hours on-call.  But senior engineers need to work with and through other people to succeed, and thus a more sophisticated time management system is required.  

Covey’s system uses the Eisenhower method to organize tasks based on importance and urgency.  The name of this time management method came from Dwight D. Eisenhower, who was quoted as saying, "I have two kinds of problems, the urgent and the important. The urgent are not important, and the important are never urgent."  The four quadrants on the graph are as follows:

  • Quadrant I: Urgent and important (Do) – live sites, important deadlines, and custom escalations
  • Quadrant II: Not urgent but important (Plan) – long-term development like refactoring problematic code, designing new systems, building relationships, etc.
  • Quadrant III: Urgent but not important (Delegate) – interruptions, meetings, your boss dropping by your desk
  • Quadrant IV: Not urgent and not important (Eliminate) – frivolous distractions, social media, stock price, etc.

If we don’t intentionally plan how we will spend our time, we will naturally spend all of it on items in Q1 and Q3 (or even Q4 if we aren’t careful). We will find ourselves busy fixing high-pri bugs, dealing with customer escalations, and rushing to meet each deadline instead of refactoring problematic code, designing proper quality gates, and adequately planning development sprints.  In other words, we will always be busy fighting fires but not getting the strategic things done.

Covey suggests the best way to avoid this is to take the time to identify and explicitly set aside time for Q2 tasks during the week. I find it is best to block time out on my calendar, and personally, I find it best to schedule these blocks earlier in the mornings when I have the most energy.  By being intentional with how we spend our time, we can be more effective at our jobs.

One of Covey’s other key insights is that we often have multiple distinct roles in our jobs.  This is especially true for senior software engineers that may be the tech lead for one project, the domain expert for another, and still trying to turn out lots of code.  Covey suggests taking the time to track tasks in a planner by role.  I use a simple Google doc for this, with columns for Role, Task, Quadrant, Expected, and Actual time spent on key tasks.  I also keep a set of ‘long term goals’ at the bottom of the page that I can slot in when I have lighter weeks.  

Each Monday morning, I fill in the planner and keep rough track of my weekly hours (inserting in any Q1 tasks that come up).  At the end of the week, I take a few minutes to analyze and reflect on where I spent time and add Q2 tasks to the backlog.  Finally, I send a copy of the planner to myself and my manager (which comes in really handy at review time).

The whole system sounds like a lot of work – and frankly, it is.  But I have found it is time well invested.  Half an hour at the beginning of the week intentionally planning and scheduling time for Q2 work and a few minutes each day to update a work log can help engineers gain powerful insights into how they spend their time and work more effectively.  Give it a try – what do you have to lose?

Be Happy!

Like this post?  Please check out my other articles, and subscribe to my weekly Flegg’s Follies newsletter for more articles on software engineering and careers in tech.

Footnotes:

  1. Covey’s son also wrote a book, The Seven Habits of Happy Kids. While I wouldn’t go so far as to say it was my son’s favourite bedtime story, we did enjoy reading it together, and it enabled some good conversations.
  2. The first time I attempted to read the book, I was in high school and only got through the first chapter.  I always joked that the first habit really should have been to finish what you start :-). 


Please note that the opinions stated here are my own, not those of my company.

To view or add a comment, sign in

More articles by Brett Flegg

  • Getting Old(er)

    When I first started my professional career, it was hard to envision what it would be like to have a life-long career…

    7 Comments
  • A Tough Year to Graduate

    Summer internships are wrapping up, and rising seniors¹ are heading back to school for their final year. All signs…

    3 Comments
  • The Joys and Sorrows of Soft Delete

    If you are browsing the ConfigMgr database schema (a perfectly normal Sunday afternoon activity for at least some of…

  • Dress like DJam Day

    I am on vacation this week, so just a super short article to remind everyone that this coming Saturday, August 13th is…

    5 Comments
  • Synthetic Transactions

    At Google, we call them probers; at Microsoft, they are called runners; more generically, they are synthetic…

    16 Comments
  • Seagull Management

    One of the favourite parts of my job that the pandemic took away was the chance to walk through team rooms at the end…

    6 Comments
  • Consistency Checkers

    In my article on queues, I alluded to one of the mistakes I often see developers make in modern microservices design:…

    1 Comment
  • Optimal Stress

    In this week’s article, I will discuss stress and its relationship to productivity. A couple of important disclaimers:…

  • When to use a Queue

    I conduct many systems design interviews, and I have recently noticed that candidates seem to have an unnatural…

    4 Comments
  • The Sun Never Sets on Software Development

    Heads-up. If I am interviewing you for an L7 product management position at Google, I will probably ask how you would…

    4 Comments

Others also viewed

Explore content categories