Maximizing Your Time: Applying Concepts to Software Development

Learn how to master time management and productivity with a comprehensive guide that covers everything from setting a time budget to applying revealed preference theory.
A clock with different task categories around it, representing a time budget.

On this page

Marc Brooker's article on "How do you Spend Your Time?" highlights the importance of time management in productivity, emphasizing setting a time budget and dividing time into themes for better accountability. Adherence to the time budget and the ability to say no to non-essential tasks is stressed. Marc Brooker discusses common pitfalls like trend chasing and unproductive meetings and shares his themes in their time budget. He identifies three main categories of tasks: business, learning, and customers. Marc also discusses the value of time management, its application to teams, and the concept of 'revealed preference' theory, suggesting that a person's actual time usage reveals their true priorities.

How Do You Spend Your Time? - Marc’s Blog

Developer Checklist

Establish a Time Management Plan: Create a time budget, dividing your time among five or six themes. Regularly adjust this plan in consultation with your manager or team lead.
Define Success Metrics: Clearly define what success looks like for each theme in your time budget. Discuss these definitions with your manager or team lead.
Stick to Time Budget: Adhere to your time budget. While short-term flexibility is acceptable, maintain long-term stubbornness. If consistently failing to follow the plan, analyze whether the plan is wrong or identify the reasons for not sticking to it.
Learn to Say No: Develop the ability to say no to tasks that are not essential. Prioritize important tasks over non-essential ones.
Avoid Common Pitfalls: Avoid mistakes such as focusing too much on visibility, trend chasing, or overcommitting to unproductive meetings. Be mindful not to get too caught up in urgent but not always important tasks.
Identify Time Management Categories: Categorize tasks into main areas such as business, learning, and customers. Be explicit about how time is spent in each category and evaluate time usage regularly.
Apply Time Management to Team: Encourage your team members to be mindful of how they spend their time. Discuss the size of different task 'buckets' for different levels of software engineers and compare these sizes to the current situation.
Understand Revealed Preference Theory: Acknowledge that how a person actually spends their time reveals their true priorities, regardless of what they might say or believe their priorities to be. Apply this concept to time management.


Time Management and Productivity

Marc discusses his struggle with feeling productive but not accomplishing valuable tasks. He found a solution by setting a time budget and dividing his time among five or six themes. This long-term plan helps him stay accountable and is adjusted in consultation with his manager twice a year. He emphasizes the importance of defining what success looks like and discussing these themes with their manager.

Importance of Adhering to Time Budget

Adherence to the time budget is crucial. While short-term flexibility is acceptable due to unforeseen tasks and business cycles, long-term stubbornness is recommended. If there's a consistent failure to follow the plan, it is necessary to understand whether the plan is wrong or the reasons for not sticking to it.

The Necessity of Saying No

Sticking to a time budget often requires saying no to tasks that aren't essential. Being a capable person attracts many requests for help, but always saying yes to unimportant tasks can prevent you from accomplishing important ones.

Avoiding Common Pitfalls

He discusses common mistakes, such as focusing too much on visibility, trend chasing, or executive face time, which he found unhelpful. He also warn against getting too caught up in urgent but not always important tasks, and losing control of one's time by being in too many unproductive meetings.

Marc's Themes

  • Individual Contributor Responsibilities:
    Marc's role encompasses foundational tasks of software engineering, including writing, reading, and reviewing code; debugging and testing; engaging in discussions about code and design on a whiteboard; and creating and evaluating design documents. These activities constitute the essence of Marc's practice in software engineering.
  • Mentoring and Education:
    Marc's responsibilities also involve spontaneous mentoring, scheduled one-on-one meetings, and maintaining availability for discussions about career development with colleagues. Additionally, Marc categorizes activities such as delivering technical presentations in this segment, highlighting the importance of knowledge sharing and professional growth within his sphere.
  • Strategic Planning:
    Marc engages in contemplating the future direction of projects, including short-term (next year) and long-term (next five years) planning, analyzing industry trends, anticipating customer needs that could significantly impact strategic direction, and identifying necessary skills development for himself and his team to stay competitive.
  • Operational Management:
    Marc's daily activities cover the operational aspects of the business, which have varied throughout his career, including more business reviews and less sprint planning. This includes direct involvement with the business's technical aspects (such as operations reviews, security meetings, and analyzing tickets and metrics), financial considerations (business reviews, etc.), and personnel management (talent reviews, interviewing, etc.).
  • Continuous Learning:
    Marc dedicates time during his workday to learning, which includes reading academic papers, exploring potentially impactful algorithms, and reading books. While this investment may initially seem difficult to justify, it has proven its value over time through a series of successful outcomes that have benefited the business.
  • Customer Engagement:
    Interacting with customers is a priority for Marc, as it keeps him connected to the most crucial aspect of the business. His conversations with customers not only provide valuable insights but also foster meaningful relationships that benefit both parties.

Value of Time Management

Marc stresses the importance of being thoughtful and explicit about how time is spent. While the exact categories and their boundaries are not crucial, the act of categorizing and evaluating time usage is valuable. This process aids in identifying areas of improvement and optimizing work efficiency.

Applying Time Management to Team

Marc applies this method of time management to the organizations he works with, encouraging both individual contributors and managers to be mindful of how they spend their time. He advocates for discussions about the size of different task 'buckets' for different levels of software engineers and how these sizes compare to the current situation. These conversations are seen as a learning opportunity and a way to identify surprising insights.

Revealed Preference Theory

Marc references the concept of 'revealed preference' from economics, which suggests that a consumer's actual purchases reveal their real preferences. Marc suggests this theory can be applied to time management, indicating that how a person spends their time reveals their true priorities, regardless of what they might say or believe their priorities to be.

Subscribe to SmartJots newsletter and stay updated.

Don't miss anything. Get all the latest posts delivered straight to your inbox. It's free!
Great! Check your inbox and click the link to confirm your subscription.
Error! Please enter a valid email address!