(From Glengarry Glenn Ross, where Alec Baldwin’s character acts like a colossal asshole, but we’re all kinda cool with that because he’s a charming and successful colossal asshole. Warning: that’s how toxic environments happen.)
Close things. Finish things. See them through to the end.
I’m writing this for myself more than anyone else. Closure is important. Being able to mentally go “that’s done” and move on is vital.
Understanding the nature of Enterprise IT in a single diagram pic.twitter.com/GX2Z24Lo2q— swardley (@swardley) June 16, 2016
How many projects do you know that got part way, hit some key milestone, and then got dropped because “finishing up” was lower priority than some new thing?
Whether we’re talking “we’ve been using that prototype in production”, “yeah we deprecated that service but it’s still running on a few machines” or the ubiquitous “it’s fixed for now but we should really fix it properly…sometime”
These are the successes! What about the things that got started, everyone agreed they were important, but they hit an early roadblock so got sidelined.
You bought the components, or you started taking the thing apart, or you stripped the paint, or something, but it never quite got underway.
All of these “open projects”, be they work or play, come with mental overhead. Even if you’re good about documentation, so where you’re at and what next are clear, they come with a cost.
Is it that bad?
Circumstances change, which might leave the initial work invalid and needing to be removed or heavily reworked.
Alex is repainting the kitchen, does one wall in a fetching shade of puce and stops; Bobby comes along to finish the job and discovers the paint company no longer sell that shade. Charlie starts building a feature in FooJS 1 and stops part-way; Danny comes along to finish the job but by now everyone’s migrated to FooJS 2.
There’s the quagmire of expectations and nuance around “do I try to understand and use what’s been done so far or do I throw it away and start afresh”.
Does Bobby try to get a custom paint mix done to match the old colour or try to buy old stock second hand? How long does Bobby spend trying to do this? Will someone not familiar with the task and the context see Bobby painting over Alex’s wall in a new colour and think that Bobby’s being wasteful or destructive by erasing Alex’s work?
This applies in solo scenarios too - maybe you buy the parts meaning to start the job, but by the time you sit down to do it, the parts are two generations behind and the new versions are easier to fit / work with / buy tooling for.
Clearly this is a hazard of any project of nontrivial length. You can be working on something 24x7 and run out of paint or have a supplier go out of business or any one of a number of things. The longer there is between start and finish, the greater the chance of this; stopping and starting will only increase that.
What can be done?
- Ruthlessly constrain scope
- Focus on finishing
- Get over your FOMO
Ruthlessly constrain scope
You think big, you dream of the future, you have all these ideas.
That’s great! Aim high. Seriously, this is important.
When it comes to actually executing, be ruthless about what you need. Yes X runs on old servers, built with an old framework, deployed with hacks and optimism. You want to fix that - of course you do!
But if your main problem is “the version of the framework we used for X is deprecated, so we’re missing security updates, and other libraries are dropping support for that version” then focus on that. Yes while doing that you’ll probably end up cursing the deployment system and maybe hit a bug. Suck it up. Don’t shave the yak.
Iterate harder. Better to have a small concrete improvement finished and in-place, than a big improvement that’s always “coming soon”.
You have a goal. Focus on that. Compromise to achieve it where necessary and appropriate.
Focus on finishing
Starting something is easy.
Most tasks can be broken down into a series of subtasks. Some of these will be easy, some of these will be harder. When you’re starting, they all need to be done, so you’ll probably pick the easiest. This leaves the harder stuff between you and the finish line.
Buying a soap dispenser is a few clicks on Amazon. Working out how to fit it to the wall without damaging the paintwork, drilling into a pipe or cable, having it come off, etc. is a much harder task. So naturally I’ve had a dispenser still in its packaging sat in the garage for the last month.
Get over your FOMO
There’s probably infinitely many problems you could fix or things you could improve. Getting them all done would be brilliant. Getting them all done isn’t practical.
Accept this reality, prioritise, and act. Looking into those four problem reports feels good, it feels like you’re making progress (because you are). Are you making the right sort of progress though?
Saying no is hard. Explicitly saying “I acknowledge that this is a problem / needs improvement, but it’s not happening now” is hard. “Sure I’ll take a look” and adding it to the list of twenty different things you’re already “taking a look at” is easy; it’s an easy lie. It’s a lie usually not born of malice but of good intentions and a desire to please. It’s a lie more to yourself than it is to them - you will “take a look at it”, sometime - but usually you’ve so much other stuff on that anything more than “taking a look” is unrealistic.
Having multiple things on the go is tempting. Having multiple things on the go isn’t intrinsically bad. Having multiple things on the go gives you options and variety and alternatives.
If you read this and think I’m advocating for some machine-like “only do one thing at a time ever” stance, one of us has failed. But starting things is easy, finishing things is hard, and finishing things is usually where the biggest reward is. Don’t give in to temptation. Focus on finishing. Always be closing.