Prioritize your Tasks Effectively
How do great software engineers prioritize their tasks based on urgency and importance
We all have a laundry-list of items we want to complete or accomplish. But, the list just keeps on increasing and make us feel overwhelmed. I read a lot of articles and talk to a lot of great software engineers at or outside work. Everyone has their own way of managing and prioritizing but every way seems to be inspired from the one and only
Eisenhower Matrix for task prioritization
How to Prioritize ?
Create a to-do list
Create a laundry list of tasks you want to complete, it can just be a laundry list of tasks with no priority
Slot each task in one of the box
Categorize each task in your list of tasks into one of the 4 boxes in the Eisenhower matrix
The definition of these categories is different for different individuals. For example,
Your project deadline for you is “Important and Urgent”, but for your manager it might be “Important but not urgent”. Hiring and growing team for future projects might be “Important and Urgent” for them.
For a junior engineer ramping up, onboarding to a new team will be “Important and Urgent”, but for his onboarding mentor, it might be “Not important but urgent” or any other category.
Example from Hemant’s POV
- Important and Urgent : Project Deadlines, Medical Emergencies, Working Out
- Important but not Urgent : Mentoring, Finding future scope, Side Projects and Side Hustle
- Not Important but Urgent : Random emails, interruptions, replying to colleagues for low impact tasks
- Not important and Not Urgent : Watching Netflix, Useless Meetings, Scrolling Reels
Do, Schedule, Delegate or Eliminate ?
Every category should be handled with a particular action item. We need to clear our unimportant tasks to make time for the important ones
Not Important and not Urgent - ELIMINATE
These are non-important tasks and thus you need to get rid of these. Talk to your manager or find ways to delegate to someone for which these might lie in important boxes.Not Important but Urgent - DELEGATE
These are important and needs to be get done but does not hold much importance to you. Delegation is a great way to execute this. For example, a staff engineer can delegate implementation work to junior engineers and focus on more impactful tasks.Important but not Urgent - SCHEDULE
Schedule these tasks for future in your calendar. These are your potential future “Important and Urgent” tasks.
Important and Urgent - DO
These are the most important tasks in your life. These are your P0 tasks and you need to set a time on your calendar in immediate future to execute these. Use time you get back after scheduling, delegating and eliminating tasks from other categories.
This is not as simple as it looks, you need to iterate, improve and see how it works for you. But, it is a tested way to get started with and improve your time management skills.
Love the Eisenhower matrix for prioritization!
The only tricky part I have is "delegation." It's hard to delegate as an IC 😂 so it just becomes "low" priority for me or try to bucket and group get them done all at once
Eisenhower matrix works great in most areas of life, great examples Hemant!