I’ve spent the past year as a technical lead for the first time in my career and there have definitely been a lot of lessons learned but in this post I want to focus on personal productivity and time management and the techniques that have helped me in this area.
As an individual contributor on a dev team, decisions about what you should be working on are mostly made for you. You pick up tasks from the sprint board or tackle tickets as they’re assigned to you. Tech leads’ tasks tend to be much more fluid and it’s usually up to you to track them in addition to what the rest of the team is working on. That being said there should still be plenty to take away from this post for non tech leads as well.
None of these ideas are really original or groundbreaking. This is more of a collection of tips, hacks, and recommendations from various productivity systems I’ve read about over the years.
Write Everything Down
Capture everything! The less you try to hold in your head the more you free up your brain to be creative and focus solely on the task at hand. This especially applies to action items. As a lead you’re much more likely to be given random tasks at random times… while walking out of a meeting, in a comment on a JIRA ticket you need to follow up on, or during a quick call with a product owner.
To be able to handle this effectively you need a task management system that let’s you quickly jot things at any time. There are approximately a million todo/tasks/list/note app available so you should be able to find one that works for you but I would recommend one that allows quick entry from both desktop and mobile. I’ve personally been using Remember the Milk for well over a decade.
If you’re able to build this habit then everyone you work with will start to build a trust in you that tasks they delegate won’t fall through the cracks if they don’t remember to follow up with you.
A lot has already been written on the importance of minimizing distractions and focusing on a single task at a time so I won’t rehash it here, but I’ve found that how I manage my attention to be a key factor in how productive my day is. This is so important in fact that my company invested in several hours of mandatory training for everyone on the topic.
As leader part of our job is doing what we can to make our team as a whole more productive, so we don’t always have the luxury of tuning out all distractions entirely but there are things you can do make it easier.
Create focus blocks
Try to create dedicated blocks of time where you can focus and get into a flow. For me, some variation of the pomodoro technique has worked really well. This post does a great job of describing a way to apply it to development work as well as explaining how interruptions are especially bad for technical work.
Making use of Slack’s “Do Not Disturb” mode is great way to minimize distractions during these blocks. It effectively pauses all notifications from slack until DND is disabled at which point Slack let’s you know if you missed any messages, but also when someone messages you slack will give them the option to push the message through anyway if it’s urgent. You just need to let your team know what types of things are ok to push through. For me, if anyone is completely blocked waiting on something from me then I’m fine being interrupted to unblock them.
In general it’s a good idea to adjust your notification settings in whatever apps you use.
It’s helpful to have some way to easily jot down any thoughts or ideas that pop up so your brain can quickly return focus to the task at hand since it knows the idea was captured and you can address it later. If I’m working on a particular feature or reviewing a pull request, I can easily distract myself if I notice an unrelated bug or have an idea to improve some development process around this area of code and before I know it I’m down a rabbit hole 5 - 8 browser tabs deep. But if I know I’ve dedicated this block of time to a particular task, then it’s much easier to catch myself and instead capture the item quickly and then decided how to handle it once this block is over.
Most Important Tasks
Identify your most important tasks for the day and try to tackle these first thing in the morning or whenever you tend to have the most energy and willpower. This is definitely not a new concept but it’s one I’ve relied on more while in a leadership role where I have more non-technical tasks that I tend to put off or still feel less comfortable doing. For instance, this technique helped me finally finish my team’s performance evaluations even while seemly more urgent tasks regularly popped up throughout my day.
Having a weekly review has become an invaluable practice I picked up from the Getting Things Done system. In terms of agile processes you can think of it as sprint planning and retrospective. You should set a focus block on your calendar and use it as a time plan and prepare for the week ahead as well as reflect on the previous week.
I use it to process all my “inboxes” including email, chat messages, unsorted notes, various todo lists, and even open browser tabs. I also check my calendar for the next week for upcoming deadlines or meetings scheduled that require additional preparation.
We all have our own ways of working that work best for us, and I’m constantly tweaking my workflows but these techniques have been serving me well for a while now so hopefully you found at least one helpful takeaway you can apply to your own work. I may even write a follow up post that goes into more of the implementation details of my system, like tools and processes, if there is any interest.