This is the first entry of what I’m calling “worknotes”. I want to get better at what I do. Writing helps me reflect on my process, and keep an accurate picture of reality. Also, the whole “learning in public” idea appeals to me, so why not continually learn where I spend a significant portion of my waking hours.
In this initial entry I feel compelled to capture some of the scaffolding that shapes my day to day. I imagine these notes will be shorter in the future.
I’ve been working with a pretty consistent process for a while now. An order of months. When I sit down at my computer, I do three things, in this order.
- Check email
- Check Slack
- Check Trello
- Check GitHub
Along the way, I capture everything that I need to act on into [Things].
This process is built up on a couple assumptions. The most important, is that I have in-app notifications turned off on every service possible. I opt for all app notifications to be sent via email. And I have email notifications turned off. This hinges on having a habit of checking email once in the morning, and once in the afternoon.
What this means, is I have minimal notifications, or dots, or bells attempting to capture my attention. When I’m focused on something, it’s easier to remain focused. When I need to gather the next thing, I can return to my inbox.
Filtering everything into one inbox, that is engineer to suppress interruptions is a superpower for eliminating the tyranny of the urgent. I’ve found that if things are truly urgent, people call you on the phone.
Checking Slack is pretty casual. Most of the activity is in social channels that build our remote team. There’s some discussion about real work in Slack. But usually it is directly related to a Trello card. I’m trying to make the habit of taking more discussion into Trello cards, and out of Slack. But it’s not perfect yet.
I check Trello to graze for potential work if my Things list is feeling a little short today. If my Things list is already feeling sufficient, I’ll skip this step.
Checking GitHub is to make sure my teammates are unblocked. I’m responsible for a handful of shared repositories. If no one has explicitly requested my review on a Pull Request (that would have been in my email inbox), but it looks like it’s ready for my eyes, I may go ahead and add it to my Things list to review.
So, how did that process shape up today?
I spent the first part of my day on Sundry Pull Request Reviews. Less of a load than I’m used to, as of recently.
The next task of my day was writing a script to capture the current state of the world, and write it to the database. We have a legacy feature, that we’d like to deprecate eventually. This feature being enabled was based on introspecting the database for past usage. What we hadn’t considered with this introspection, is that people could delete the data that communicated their past usage, with intent to add new data the next minute. But as soon as they deleted the data: boom! Feature gone!
So instead of making this calculation dynamic at runtime, I wrote a batchifiable background job to calculate “is this feature enabled”, and write that truth to the database. The result is that no new customers will be able to begin using this deprecated feature. But more importantly, this feature will not disappear out from under the feet of any customers who were previously using it.
My other task was some data spelunking. My product manager and designer teammates wanted some usage data on one of our more recently launched features. I connected to a Rails console in our production environment, with a readonly database connection. Some of these data models were written by another teammate, which found me with cursory understanding of the schema. Creating bespoke reports was a great way to increase my familiarity with the data model, and be ready to iterate on it soon. Which happens to be my next feature.
I’ve been collaborating on a drag-and-drop interaction with one of my designer buds. He’s taken my rough implementation to the next level. Collaboration is great, when it works!