Productivity and improvement
Software engineering is a lot of work. Between all the emails, sprint tasks, mentoring, meetings, ad-hoc discussions, and research, it can all start to feel quite overwhelming. You may also be asking yourself (as I have many times) “when did my plate suddenly get so full?”. The answer is similar to the slow-boiling-frog, in that there isn’t usually a particular point in time that you can single-out - rather, as you gain experience in your role, you organically gain more expertise and responsibility, and with that an increase in demand for your time. I reached a point where I just couldn’t hold onto everything. The good news is that I made some very deliberate changes, and with that, my days no longer feel overwhelming - but structured, under control, and with the added bonus that I can actually “switch off” at the end of the day.
I am going to do my best in this post to walk you through my “system”. The one thing to keep in mind is that there isn’t a one-size-fits-all that is going to work for everyone, we all have our unique ways of working. You may find yourself trying some of what I talk about, adapting other parts to fit your workflow, and chucking the rest - that is exactly what I expect and it is OK! The single most important lesson I have learnt is to be flexible and adapt your own system as you need - sticking to a process for the sake of the process alone will do more harm than good.
The road strokes
My system comprises of the following high-level steps:
Triage
Consolidate
Prioritize (and do!)
Review
Let’s dig into these:
Triaging
Triaging your potential work items is an important step, and it is often the one that is most overlooked. What do I mean by triaging? I am referring to the process of taking a first pass over any incoming work and making an explicit decision on whether there is something to do there or not. If it is going to take more than a minute or so to decide then by definition there is something to do, so add it to your to-do list. This type of triaging is most commonly required with your e-mail, so I will go into some detail on how I deal with my e-mail:
I triage email very similarly as described in the book Getting Things Done (by David Allen) and maintaining a zero inbox. Before now, I would often scroll through hundreds if not thousands of email (both read and unread), looking for something I remember seeing that I had to action. It was overwhelming. Keeping your inbox under control can be done by looking at each email and making one of the following choices:
Delete it - if it requires no action, and has no value for future reference.
Action it immediately, then delete it or archive it - if taking action is straightforward and would take less than 5 minutes.
Archive it in another folder - if it contains non-actionable but potentially useful content for future reference.
Mark it for future action (move it to a dedicated folder) - if the email requires a bit more work.
Mark it as waiting on someone else (another folder) - if you need someone else to do something first.
Resist the urge to skip over an email - it will just continue to clutter your inbox, potentially making you miss something important.
Consolidating your work
As I get work in, whether it be an action item from a meeting, an e-mail that has been marked for future action, or some project task - I add it to my to-do list application. I use OmniFocus for work, and Todoist for my life outside of work. Adding to-do items should be as easy as possible so I make use of both of these applications’ respective inbox folders for adding tasks. I also create items that require nothing but waiting for follow-up as well - so those email that you are waiting on someone else for - I create tasks for them as well.
Prioritize - The power of daily habits
The next thing I usually do with a piece of work is figure out what priority it needs. Given this can be a mentally exhausting task, I don’t do this ad-hoc as I receive or triage work, but rather I do this every morning with a re-occurring project that I call my “startup routine” (inspired by this amazing blog post). This set of tasks is what I start every work-day with. While it slowly changes over time as I refine my process, these are the things I currently have:
Triage e-mail
Review calendar for today and tomorrow
Triage and prioritize any newly added tasks - I try and use the Eisenhower Matrix to help me here
Put some time aside for the most important task for the day - if possible, block some calendar time for this.
I then feel ready to tackle the day ahead, marking items off my to-do list. At the end of the day, I have another re-occurring project - the “shutdown routine” (inspired by the same blog post). This routine helps me switch my mind away from work mode. Here I usually do the following:
Triage e-mail again
Review incomplete tasks I wanted to get done today but didn’t, and schedule them for another day
The shutdown routine is the single best thing that helps me “switch off” for the day - this has become especially important since I have been working from home for the past 18 months.
Review
The last step is to review and inspect your process. For years I neglected this step and only after I started doing this did my process actually start working. Reviewing how things are going on a regular basis (I do this weekly), allows you to make small and deliberate adjustments to your process. I recently wrote a Twitter thread on this exact topic as well. So what do I review? Every week, I open my digital notebook and answer the following questions:
What went well this week?
What could have gone better?
What 1 action should I take to improve things?
The first two questions usually inform the action. Either I will want to double-down on something that went really well, or put a mechanism in place to fix something that went badly. For example, I was getting really bad at not splitting-up sprint tasks when there was scope creep. After a week where I closed off a task that rightly should have been 3 or 4 separate tasks, I decided to add an item to my daily start-up routine: “Is there any opportunity to split-up any of my in-progress sprint items?”. With that, I now set better expectations to the rest of my team on what technical work I am busy with and, more importantly, the scope of that work.
I cannot overstate how valuable the review process is. It is the singular thing that will keep your process working with the ever-changing environment that you work in.
And that is my process. I am certain that it will continue evolving. If you have thoughts or comments, feel free to drop those on Twitter. Good luck, and happy triaging!