You can't manage what you can't measure (incorrectly attributed to) W. Edwards Deming
Deming actually said the opposite. That “it is wrong to suppose that if you can't measure it, you can't manage it – a costly myth” and ranked running a company on visible figures alone as one of his 7 deadly diseases. However it is definitely easier to manage things you can measure, there's less doubt as to whether things getting better.
After feeling like I'd been less effective than I could be for a couple of weeks I was determined to turn things around. And so the first step: define the status quo.
Where do I spend my time?
In one of the many generous conversations I've had recently with technical recruiter extraordinaire, Matt Allen, he reminded me of an app I'd used some time ago called RescueTime. It's a little widget that sits inconspicuously away in your system tray and tracks how many minutes you spend in each app.
For apps that have multiple tabs (e.g., browsers, terminal) it can log the tab title instead. Which is great because over the course of a day I
typically end up with dozens of tabs in each. And some minor tweaking of my
tmux setup means that each tab title is the project it relates to.
My whole day isn't work though, nor do I want it to be. I want to make sure that I'm getting a healthy balance of activity in too. I've got one of the first generation FitBits but I don't use it anymore. I'd forget to charge it, or forget to take it off the charger, or accidentally wash it and need to buy a replacement. I've got a Garmin watch I use for training, but it only tracks me when I'm running. After downloading what seemed like every health app on the App Store I came across Withings Health Mate. I think it's meant to be an accompaniment to all of the other devices Withings sells, but the fact it plugged into HealthKit on iOS worked just fine for me. The main benefit it had over everything else though was that it would sync my data to Withings site which I could then access via their API.
What did I get done?
I use @iDoneThis to break the self-perpetuating negative feedback cycle.
At 5pm each day I get a gentle email reminder from iDoneThis, which I reply to with bullet-points capturing what I got completed that day. It took me a while to get into the groove of using the iDoneThis and the benefits are very subtle at first. The primary ones are:
- It forces some reflection every day. It's so easy to get caught up in the middle of things, especially on the days where you've felt unproductive and have been going down a rabbit-hole that seems pointless. But even those days typically have a few positives to come out of them: some particular problem or area you now know better than you ever thought you would, a chance to catch up with someone to talk through things, etc.
- It breaks the self-perpetuating negative feedback cycle. When you have a down day, it's so easy to start the following day on a similar vibe. String two or three of those days together and you're quickly in a sustained slump that's hard to break. That moment of pause. That email with the positives of the things you got done. The reminder which includes "here's what you got done yesterday". It all combines to stop a few days of challenges being perceived as downward momentum.
- The reminder email includes the previous day and previous months items. It's been a great quick snapshot of how things have moved, or haven't. I'll touch on how much impact that has had later.
What are the impacts?
What's moved as a result of all this effort? So the low-hanging fruit here was the story points delivered in an iteration (as logged in our planning tool, Agile Planner). But story points are hardly an exact science, and don't make much sense outside the context of the team and planning. So what else could we look at? There's already a bunch of business metrics (e.g., signups, churn, etc.) but my work and focus today is at best a leading indicator for those metrics, and we've no real idea (yet!) exactly how correlated they might be or how much they'd typically be leading by. Instead I looked at some more system level metrics:
- How often was code being deployed?
- How many exceptions were being raised on production systems?
- What was total service uptime/availability?
Most customer facing services are deployed to Heroku, so counting the number of deployments was easy using their Release API endpoint. Exceptions were also quick to fetch as they're all being logged into Honeybadger. Likewise availability thanks to Pingdom.
How am I feeling?
As I was setting all this up I came across another service called Retroospect. I already add some minor commentary to iDoneThis to track my emotional state and at-the-time-perspective of how things are going, but I thought a weekly review specially focussed on it could help.
And it did.
What did it uncover?!
The trick is to realize that counting, measuring, and tracking is not about the result. It's about the system, not the goal. James Clear
This whole process started because I said I'd been feeling less effective. I'd constructed a bunch of tooling to help me measure various things, and in the process was already filled with ideas on what I could change.
But it had also raised one much, much larger question: How do we define "productivity"?
So before we can dig into the data, the experiments, and the results we need to first answer that question.