Time Management for Software Engineers

Optimizing when & how we work to become more effective.

It's really clear that the most precious resource we all have is time.

- Steve Jobs

Step one: Understanding Where our Time is spent

Types of Work

Software Engineering encompasses much more than just coding. Regardless of level, a typical software engineer will spend their day on many different activities.

  • Design
  • Coding
  • Process tasks
  • Team building
  • Self Improvement
  • Mentoring
  • Fire Fighting

Categories of work

We can break down these activities into two main categories of outcomes.

Material:

  • Architecture & Design
  • Code
  • Documentation
  • Operations

Social:

  • Decisions
  • Planning
  • Alignments
  • Coordination
  • Strategy

Conflicting Categories of work within Engineering Organizations

There are many roles within Engineering organizations, and with those roles, you have different focus areas.

 

  • Some roles have a higher focus on work that produces material outcomes.
  • Some roles have a higher focus on work that produces social outcomes.

 

For roles that produce material outcomes, work gets done as an individual or pair focuses on creation. Work gets done for those that make social outcomes by gathering people and engaging in discussion.

Step Two: Identifying where our time should be spent

An Engineers Day

For many Engineers, a typical day may look like the schedule on the right, split between meetings and focus time.

 

As engineers, we feel that our time is best spent producing material outcomes requiring focus time. But often, the reality is our roles require balancing both material and social work.

 

Example Ratios (*may not reflect your role or organization):

  • Junior-level Engineers - 90% Material, 10% Social
  • Mid-level Engineers - 75% Material, 25% Social
  • Senior-level Engineers - 60% Material, 40% Social
Meetings: 4hrs
Focus: 4hrs

Finding Your optimal Ratio

While Engineers at all levels should expect to participate in social work, many engineers struggle to balance a social-based workload.

 

As an individual contributor, you should strive to ensure the material workload stays above 30%. Anything less will result in a struggle to remain relevant and have enough depth to contribute effectively.

When in doubt, ask your leaders

If you struggle to find your optimal ratio, ask your organization's leaders what the balance should be. Their answer is what you are being measured against.

Step Three: Optimizing for Material Work

Prioritize meetings

When inundated with social workload (meetings), it is best to prioritize which meetings you go to. Have a certain number of hours allocated for meetings (based on your ratios).

 

If you limit your time for each request, you must ask:

  • Am I Required or Optional?
  • Did my leader or another leader ask me to join?
  • What happens if I don't show up or cannot make it?
  • Will I get or provide value by attending?

Delegating Meetings

If you have too many meetings for your ratio, one option is to delegate the lower priority meetings to others.

 

  • Many times, multiple people are invited to a meeting. Does everyone need to join?
  • Is this something another team member (with fewer meetings) can cover?
  • Would it help them take more responsibility or grow?

Asynchronous Communications

Does this meeting need to be a meeting? Could it be an email instead? Can a 1-hour meeting become a 15-minute meeting with a detailed email sent in advance?

 

For the lowest priority meetings, maybe there doesn't need to be a meeting. It's ok to ask the above.

Schedule for Focus Time

Reserve focus time by scheduling it on your calendar. But be aware of how you schedule focus time.

Reality
Meetings: 4hrs
Warm Up: 1.25hrs
Focus: 2.75hrs
Perception
Meetings: 4hrs
Focus: 4hrs

Our focus cannot be turned on & off like a light switch for most of us.

 

At the beginning of each focus session, there is a "warm-up time" before becoming effective.

OPtimized Schedule

It is possible to optimize your schedule to reduce warm-up time and improve the effectiveness of focus time.

 

  • Group meetings into chunks to reduce the number of times you stop & start.
    • If meetings are scheduled during focus time, suggest another time that aligns with your groupings.
  • Don't just book one big block of time; too much focus time leads to writer's block.
    • In a day, having a short block and a large block is best for optimal focus.
  • Get more meetings done by adopting 15-minute and 45-minute timeframes.
  • Try not to code up to the last minute of the day; it's easier to detach from a meeting than from that one block of code you almost have figured out.
  • If you can, align as a team on when to meet and when to focus.
Meetings: 4hrs
Warm Up: .5hrs
Focus: 3.5hrs

Step Four: Make focus time more effective

Create a Goal for the Day & Week

The best way to ensure you feel accomplished at the end of the week is to create a list of tasks or goals. Identify what you want to achieve that week and each day.

 

  • Keep it realistic
  • Have stretch items
  • Identify 1 or 2 "big" things that take a lot of time
  • Have a list of "little" one-off items that you can do in less than an hour

Work on one-off things when short on time

You can accomplish more in your day by using your small blocks of time for quick one-off tasks.

 

Prioritize what you focus on based on the time you have available. If you don't have time to start the complex multi-day project, don't start it. Work on your list of small one-offs, and accomplish more in your day.

Breakdown Complex Work

Some work is complex and can take a lot of time to complete. Try to break up this work into smaller chunks; we cannot break down everything thoroughly, but break down an 8-hour task into two 2-hour and one 4-hour task. It becomes more manageable.

Summary

  1. Understand where time is spent.
    • Track what you spend your time on (focus, interruptions, social).
    • Are you providing the right value?
  2. Identify where you should spend time.
    • Find the right balance for you.
    • Ask your leader what your balance should be.
    • Where do you provide the most value?
  3. Optimize your time to allow for more focus.
    • Group non-focus time to give yourself more continuous focus time.
    • Find the proper outlet for non-focus work (email, messages, meetings).
    • Delegate and sometimes deprioritize what is not essential.
    • It's not all about you; what is not essential to you might be necessary to others. Make sure you prioritize based on the organization and mission.
  4. Make your focus time more effective.
    • Create a to-do list of big complex things and another for simple, quick items.

Bonus: Calendar Hack

Most Calendar systems have some way to categorize meetings, whether that's a unique calendar per subject (Apple) or just a tag-like category that users can apply to any meeting (Outlook).

 

By categorizing meetings, you can color code and prioritize meetings at a glance. You can also use automated rules to automatically apply categories based on sender, subject, or more.

Categorize Meetings with Automation

  • Important
  • Kinda Important
  • Meh
  • Not Important

EOF

Benjamin Cane

Twitter: @madflojo 
LinkedIn: Benjamin Cane
Blog: BenCane.com

Distinguished Engineer - American Express

Time management for software engineers

By Benjamin Cane

Time management for software engineers

This talk outlines where software engineers spend their time and how to restructure your time to spend more of it working on material outcomes.

  • 720