Planning your week in advance to its minutest detail is the key to be a successful leader of smart Software engineers. In this post, I will describe how I approach planning my week and lead a successful team of software and data engineers.
In our organization we use Azure Devops to track user stories which we tackle in a two week sprint. Tracking progress using user stories is great for individual features, however to track the overall direction and course of our actions we need to have a complete view of all the tasks involved to accomplish your end goal.
In my team we work on multiple projects at a time with each one having a different deadline. Every engineer focuses on 1 or 2 projects at a time. Being a leader, I need to keep track of the progress, we as a team are making on our projects. In addition to tracking work of 5 engineers I also need to plan time for my individual contribution, which needs at least 2-3 hours block of distraction free time every day.
Due to the pandemic we are all working remotely and need to constantly get in touch with each other over calls which leaves very few hours of distraction free time. To solve this I have been practicing the following key steps to keep on top of all work items:-
Keystep 1: Allocate 1 hour on Friday afternoon to prepare a Plan of Attack for next week.
Keystep 2: Start my week on Sunday evening instead of Monday morning
Keystep 3: Start my day early so that I can devote at least 2 hour block of distraction free time
Keystep 4: Have all status related calls on Tuesday’s instead of Monday’s.
Keystep 5: Have a 2 hour of No-Call block of time for the whole team from 10AM to 12PM on Mondays
1. Create a Plan of Attack for next week on Friday itself
I think Friday afternoon is the best time to take a stock of the progress made during the week and ascertain tasks that need special attention next week along with the pending items. For this, I prepare an excel sheet to list down all the important remaining tasks for each project. And for each important task i assign a due date during the next week. So all tasks on this excel sheet will have a due date which will fall in the next week.
I save this excel as Plan_Of_Attack_<weekStartDate>.xls. In order to make this accessible i store it on company provided one drive location. Also I make sure that only I have access to view and edit this excel.
I have blocked 2-3PM on my calendar for this activity to time box it.
2. Start the week on Sunday Evening
Starting on Sunday evening is important to make a head-start on the weekly tasks. I spend around 2 hours on Sunday evening on following tasks
- Send out any follow up emails on tasks waiting on other people
- Prepare for important meetings scheduled for Monday or Tuesday
- Send an email to the team with all tasks planned for next week so that every one is clear on their workitems
- Complete any admin tasks related to work such as mandatory trainings, quarterly declarations etc.
I usually complete these activities between 6-8PM.
3. Eat The Frog first thing in the morning
Every morning I make sure that I have 2 hour block of distraction free time to make progress on the most important task of that day. No matter how boring or interesting the task is I devote full attention to it in the morning. For this to work, I make sure that I get at least 7 hours of sleep and also I wake up early so that I have 2 hours in the morning before the office day starts. Below is how my time table looks like
10:00PM – 4:55AM (Sleep ~7hrs)
4:55AM – 5:05AM (Morning ablutions)
5:05AM – 5:20AM (7-min work out)
5:20AM – 7:20AM (Deep Work – Eat the frog i.e. complete most important task of the day ~2hrs)
7:20AM – 7:30AM (check office emails and teams chat)
7:30AM – 7:50AM (Go for a run outside on Monday, Tuesday and Thursdays)
7:50AM – 8:00AM (Shower)
8:00AM – 8:30AM (Respond to urgent emails or chats)
8:30AM – 8:45AM (Drop my kid to school)
8:45AM – 3:15PM (WORK WORK WORK – calls, meetings, emails or chats ~6hrs)
3:15PM – 3:30PM (Pick up my kid from school)
3:30PM – 5:00PM (get status on most important projects, plan next day, Wrap up the day)
5:00PM – 9:00PM (Family time)
9:00PM – 10:00PM (Read, Learn Something new, Coding, Research time)
4. Status Calls on Tuesdays instead of Mondays
Ideally, I would like Mondays to be no call days but that is not always possible. However, as a team we have decided to have our Daily standup and other status calls for Tuesdays instead of Mondays. This provides a focussed start to the week so that my team can focus on planning for their week, make progress on allocated tasks right after a relaxing weekend. It also provides a smooth start to the week for all of us in the team, where we can allocate think time to plan all of our individual tasks.
We run our daily Stand-ups as a call on Tuesdays and Thursdays. Other days i encourage the team to update their status via Teams chat. On alternate Fridays we have our Sprint planning call where we list all items for next sprint and move any incomplete user stories to next sprint with updated story points.
5. Two hour No-Call blocked time for the whole team
This is a recent addition, where our team has decided to block out a 2 hour window of distraction free time for everyone. It is right after the weekend i.e. on Mondays and in the morning from 10AM to 12PM so that every one can spend their most energetic time on tackling the challenging problems at their hand.
I believe it will turn out to be a game changer for the whole team and make our team even more productive.
Conclusion
In order to make this schedule sustainable, I make sure Friday evenings and Saturdays are full of activities away from my computer so that I return with renewed energy and fresh mind.
Having said that, sometimes due to project requirements the schedule needs to be adjusted and hence I keep on regularly tracking my work hours and make sure I spend enough time with my family and on recreational activities.
I hope this post gives you an insight into planning as a Tech lead. Do share your thoughts and suggestions in the comments below