Getting stuff done
The holidays are upon us, or rushing in. I want to wrap up the year with a two-parter, back on the topic of shipping software on time and on budget.
Earlier we looked at estimating, and not doing R&D in production, which give us a framework for both coming up with a schedule and avoiding one of the main risks that it will face.
Now I want to cut back to some preliminaries, that we might encounter before we even get that far. Why is it so difficult to come up with a plan? And why, when we’ve got one, might we constantly find ourselves delivering late?
This month I’ll talk about personal productivity, the second of these topics, and the driver of whether we can actually get things done. Next month we’ll look at getting from a fledgling idea to the foundations of a plan.
That’s the outline. Let’s go!
(Everything below this line is only available to paid subscribers)
We control inputs, not outputs. Some days I sit down, and it all goes smoothly, effort corresponds exactly to output. Yet other days we’ll hit that monster bug, and despite equal effort, from the perspective of outputs, quite literally nothing gets done.
We can’t control this but good estimating does account for it. It’s not predictable in the small, but it is stochastic. As such, individual tasks might go well over, but the project as a whole can remain on track.
But there’s an assumption of effective effort, that an ideal work hour or day matches up somehow to what actually gets done. If that assumption fails, you’ve got no chance.
That assumption is where personal productivity comes into play. If you’re unable to work effectively — and it doesn’t need to be at 100% but more or less at all — then all the planning in the world will not connect. All the discovery, planning, and design, all the best tooling in the world — is not going to help you deliver on time.
§
Our industry tends to mythologise, glorify even, working in ways which aren’t sustainable. The get-up and grind of hustle culture; the death march on the way to the 1.0; the Herculean effort implicit in that imperative, real artists ship.
Venture capital knows that 95% of all projects that it backs will do nothing special. But it exhorts the maximum from all, for who’s to know which projects will succeed.
The young and impressionable coder is coaxed into thinking that it’s their individual effort that will guarantee their success…
Look how it worked for these companies.
… quietly hiding the survivorship bias up our sleeve.
You know — that most working programmers can’t actually program. Well, you can program. So, you must be a 10x programmer, a free electron.
…uh huh…
Don’t waste that talent. All you have to do is give it your all, and keep going.
And all the rest of it. It’s a confidence job, to transfer the life-force of our young and impressionable onto the balance sheet of our VC overloads.
The correct model is that of Roman galley slaves:
https://www.youtube.com/watch?v=uae9Ou9MbHg
Do take the moment to watch it through. Do ponder which seat is yours.
§
The ills of our industry would take up many posts of their own, but any discussion of personal productivity, particularly in software, must begin with the question of who are you doing this for?
It’s not your company. You give them your labour, they pay you a wage. OK — modulo certain issues about alienation from the product of your labour, that we don’t have space for here — fair enough. But exactly how much are they paying you? Exactly how much did you sign up for?
When we talk about contributing to open source, the first concern is always burnout. In the main, contributing is done on a volunteer basis, on the side of — on top of — work. In so being, it eats into the chunk of time that you need for your personal life. The real danger is that, you end neglecting sleep, health, family, who knows what, in order to keep your project going.
The rule in open source is simple — if maybe difficult to apply: Decide the time you have available for open source in advance, and then stick to it. If that’s, I can do an hour on a Tuesday, and the odd bit of work on the issue tracker at odd moments, and nothing more, then so be it. Those hours add up, and if that’s what’s sustainable, that’s much better than any alternative.
The same principle applies when drawing the boundaries around your work.
There are 24 hours in a day. 8 of those must be allocated to sleep, or you’ll achieve very little in any of the rest. If 8 of those don’t go to your personal life, your relationships, your family, your mental and physical health, ultimately, your happiness will all suffer. That means work can have its 8 hours, but no more. That’s all that’s left.
There are plenty of companies out there who demand more. They may pay well to get more. But have no illusions here, what they’re buying is extra life-force. The stereotype is the successful career but the broken — or non-existent — personal life. It’s up to you if you want to sell this, and how much you might sell, and what coping mechanisms, and exit strategy you might have in play. But do make sure you approach it with your eyes open, and extract a fair price if that’s your decision.
§
Assuming, though, you intend to hold the line at something reasonable — that meaningful work-life balance is part of the picture for you, then working productively is an essential part of that, for you.
Software developers are well remunerated. It’s a privileged role. It’s competitive, and rightly so. I’ll speak only to my position: If you live in the Global North, globalisation means that you’re constantly needing to advance to keep your place, to justify your rates — which, in fairness, are exorbitant if the only differentiator were price.
Do I resent that? Absolutely not. The constant growth is what makes it fun, that 20 years in, I’m as fired up as ever. But if I also insist that the work needs to fit in the time allocated to it, then absolutely I have to be as efficient as I can be. Not for the work, but for me.
On the flip side of that, to the extent that I identify as being a software engineer — which is at best only one thing I identify as being, but it is my chosen career, my profession — doing that well contributes to my need for self-actualisation. It’s truly rewarding in and of itself. (I think again about how privileged a role we have.)
§
So all of that is a preamble. We shouldn’t have to say it. Be productive is so clearly a correct maxim that it feels almost absurd to have to defend it. But our industry is demonstrably warped. With VCs setting the agenda, let’s just say “Bad company corrupts good morals” and leave it at that.
Bookmark the Ben-Hur clip. Put it on loop in the background when you have to make those key career decisions. Make sure you’re working to your agenda, for your interests. That’s all.
§
What I want to do today is talk about things you might think about when looking at how productive you are, or might feel.
On the day to day, you have to focus on the brick, not the pyramid. Again, you control the inputs. Get those right and — within reasonable bounds — the outputs do follow. Given that, the interesting question here, is how do we say more than just sit down and get on with it, which I’d suggest is only so helpful?
§
The cornerstone of it all is your mental and physical health.
Why can’t I get anything done?
If you’re ill — and that includes run down, worn out, stressed, depressed, and all the rest of it — what do you really expect? Of course, you can’t get anything done: you’re ill!
The issue here isn’t really acute illness — when you’re obviously ill. Even the most hard-nosed employers will let you be off for this, assuming it doesn’t happen too often, or go on too long.
The danger is more when we’re operating under par on an ongoing basis. When some (undiagnosed or not) chronic condition, or poor diet, or a lack of exercise, a lack of sleep, or problems with our emotional health mean we just have the resources to perform.
Oh, I’m OK. I’m 90%.
Are you?
It’s easy enough to find yourself operating at more like 50% of what you’re capable of, without hitting an obvious crisis point. We just keep going, right? But at what cost? And no wonder, we might struggle to get things done.
This is the issue with the hustle culture — with the Roman galley slave — approach: we push beyond the natural limits of what we can do whilst still maintaining anything like peak performance.
12 or 15-hour days? Bullshit. The reality is, your brain can act at peak levels for maybe 40–50 minutes at a time, before you need a short break. You can do that for perhaps three or four hours before you require a longer break. Then you might be able to do another shorter session before you’ll need to call it a day, rest, relax, and sleep before you can start again tomorrow.
Now, you can borrow a bit sometimes — you’ve got an important deadline, yes, you can push — but it needs to be paid back, and with interest. You need to think credit card here, not a mortgage — it’s high-interest rate, that must be paid back quickly, not a low-interest rate that’s washed out by “career growth” (price increases) to more than cover it.
What happens more often than not is that the interest is never paid down. There’s an essential deadline, and a big push to meet it. A few drinks to celebrate perhaps — often the last thing our body needs — and then straight onto the next deadline. No chance to recover. And so it goes. As it does, we’re slowly knocked back from operating as we want to, and feel that we should.
So here, as always, self-care is the number one priority. Eat healthily. Exercise. Sleep. Look after your emotional well-being. This isn’t rocket science, but it is the foundation of being able to perform at anything like your peak. Taking care of yourself makes everything better.
If you’re an employer, taking care of your team, and setting the expectation that your team members will take care of themselves will shift your metrics far more than any amount of applying the whip.
If you’re an employee at a company that applies the whip, it’s important to see it for what it is, protect yourself as best you can, and likely look for something elsewhere.
§
A longer session and a shorter session in a day. That’s what is realistic that you can expect at peak performance. But that’s not much, or not seemingly.
The essential thing is to protect that core time, and not let it disappear into email, or meetings or social media or who knows where else our hours disappear into.
A six-hour day is more realistic than an eight-hour one, but there are plenty of filler tasks that you can relegate to outside your core time. That’s when you can answer your email, that’s when you can schedule the meeting, that’s when you fill out the expense report, or whatever.
If you can protect just the longer of your core sessions, then you’re likely to be among the top performers in your team.
I’m happy to allow the shorter session in the day to be focused on all the other calls on my time. Whilst I’m doing that, I’m also lining up the pieces for the next day, so I can get a down hill start, and am straight back into it when it’s time to focus the next day. It’s about maximising that precious space.
§
Finally then, there’s the work in the moment.
You’re in good shape. You’ve been looking after yourself. You’re feeling good. The calendar is clear, and the next four hours are all yours.
Can we get the work done now?
Or do we sabotage ourselves?
YMMV, but, it seems to me there are two main barriers here.
The first is that the challenge of the work triggers the drive for distraction. It’s much easier, and much more attractive to our brains, to pick up the phone than it is to stay with the task at hand.
There’s no shame here. We’re all wired for this, more or less the same.
Take the distraction and put it as far away as it needs to be not to reach for it. Far end of the desk. Other side of the room. Another room if needs be.
It’s not a punishment. If you decide to pick up the phone, you can. But it needs to be just difficult enough so that you can’t pick it up without choosing to do so. It can’t just be a reflex. No-one (not really) has the discipline to avoid that. That’s not how discipline works, they tell us.
Then, if we can just not distract ourselves, we can face the beast itself.
If I’m lucky, my task is well-defined, a clear set of to-dos that I can power through fully in the flow.
These times are the exception, I’d say. More often than not, I’m not just being asked to knock through that clear list of to-dos. More often than not, the task isn’t clearly defined. The work is exactly in working out what needs to be done.
Apathy, procrastination, self-loathing, fear. These are the bedfellows of anything that was ever worth doing. The task here is to stay with it, to break it down, to focus on the brick not the pyramid, to resolve it into something that eventually is addressable.
This is what we’re paid for. The ability to do this reliably is what constitutes productivity for a working programmer — it’s not bloody lines of code.
But to get here needs that quiet. Without the focused time, there is no break through here. Without understanding our physical limits, we can’t reliably structure our days to make sure we get that focused time. Unless we’re in decent shape, we can’t turn up to use that time, even if we do. They build on each other. If you’re struggling to sustainably get things done, it’s worth thinking about where in that chain you’re falling down.