Recently, one thing that I find particularly challenging is that I don’t have enough time to turn around.
By the end of the day, I ended up with a big pile of unread messages. I was hoping to get through them all before noon the next day before all the meetings started again, but I often wasn’t able to.
My calendar is very “colorful”. It is hard to have a chunk of time to focus on coding. With a lot of fragmented ideas, I also find it hard to think them through and write them down.
Two weeks ago, a senior director from our org, B.M., gave a talk about “effective time management”. It also inspired me to review Dalton & Michael’s discussion about How Future Billionaires Get Sh*t Done and Paul Graham’s post about Maker’s Schedule, Manager’s Schedule.
Here are my changes for better time management.
1. Get Information Down To Persistent Storage ASAP
Sometimes in the evening or over weekends, I have random thoughts like these:
“Oh, tomorrow, I will have to remember to ask <name> about the roadmap item KR 3.3”.
“Oh, tomorrow, I will have to remember to read the design doc that <name> shared with me.”
“Oh, tomorrow, I will have to follow up on the bug that <name> mentioned.”
…
Now whenever I have these random thoughts, I will write them down immediately. This way, it frees up my mind. During work, it allows me to continue focusing on the more meaningful and larger work items at hand. After work, it releases some unnecessary anxiety because I know I won’t forget them since they’ll be on my list tomorrow morning.
I use TickTick as suggested by MKBHD. But whatever TODO app doesn't really matter. What is more important is getting into the habit of using one consistently and actively organizing them so that the lists won’t grow out of control and become a mess.
2. Become Todo-driven Instead of Inbox-driven
“If you are inbox-driven, then other people control your time.” — Dalton & Michael
Because I worked in the eastern time zone and most of my team work in the western time zone, I always have my morning free of meetings.
I have two choices to start my day:
I can start going through emails, code reviews, messages, etc. It is easier to start from these since there are usually a solid pile of these waiting for me;
Alternatively, I can start from my todo list and pick one or two of the time-consuming tasks, for example, reviewing a really lengthy design doc, or implementing a complicated feature.
Previously I usually started from 1 since they were easier. But now, I start my day from my todo list. I can always check messages later, in between meetings, for example.
I become todo-driven instead of inbox-driven. Time is one of the most precious resources that we cannot make more of. How can I let other people control my time?
Same strategy applies throughout the day. I will prioritize increasing throughput instead of reducing latency. Unless I am oncall, there is no need for me to respond to messages immediately. Therefore, I have my notifications default to mute all the time. I will pull for information from time to time instead of being pushed for updates.
3. Managing My Calendar to Create More Maker’s Schedule
Paul Graham explained the differences in his post about Maker’s Schedule, Manager’s Schedule. I am not a manager, but I am unfortunately living on a manager’s schedule.
“For someone on the maker's schedule, having a meeting is like throwing an exception.” — Paul Graham
The 3 hours of no-meeting time in the morning, doesn’t feel enough. How do we shift more of my calendar from “manager’s schedule” to “maker’s schedule”?
Here are the approaches that I took:
I schedule all my 1-1s with the team members on Thursdays and Fridays. In the meantime, I actively review my 1-1 frequencies. For those who I no longer work closely with, I will suggest reducing the frequency.
I make all 1-1s flexible events. This way, the bot can help optimize the calendar to create more focus time - not only for myself, but also for whoever I am meeting with. The only drawback is that the calendar event is shifting around and becoming somewhat unpredictable.
I create artificial meetings for myself on Wednesdays. I titled all these meetings - “No Meeting”. I feel extremely guilty the first time doing this. Am I making it harder for others to schedule meetings with me? Then I realize that many people still schedule meetings with me on Weekdays which makes me feel less guilty.
4. Agenda and Summary For Meetings
Meetings are not avoidable to build alignment. But since meetings are so costly, we have to make each of them counts:
Before each meeting, I will seek an agenda. If the meeting is scheduled on my calendar without an agenda, I will ask for one. For meetings that I am organizing, I will share the agenda before the meeting so that people that find them not relevant can choose to skip.
During the meeting, I will take note and share a brief summary about things that we decided.
One of my colleagues from a partner team once said:
“Many people have meetings and respond to messages during the day, write code and design docs in the evenings and weekends.”
That’s true. We can only be productive when we are not constantly interrupted.
During my trip to New York, my skip manager A.A. mentioned one thing that I find particularly inspiring.
I asked:
“Working with a lot of partners on the west coast, do you find the pressure to stay late for meetings and messages?”
Because I do notice that people stay in the office much later compared to the other two engineering hubs. I also find a stronger and stronger desire to check messages late at night after dinner and regular life.
A.A.’s response was:
“No, it requires discipline.”
That’s right - it requires discipline. It almost becomes a habit to type “work” in the address bar in Chrome whenever I sit down at my desk. And it requires a certain amount of discipline not to do that.
Hopefully, these time management measures will help me increase my throughput and I will be able to accomplish more with less time.