A reader asks how do you find time for technical cleanup work. If OKRs and bugs take priority, when will you make improvements?
This was in response to What to work on next? where I listed priorities as: new bugs first, then OKR-aligned work, then ad-hoc requests, and make-it-easier work comes last. Michael notes that
In my experience, OKR and ad hoc requests are often effectively an unlimited amount of work, and it's very easy to never get around to #7.
Yep! That is true. You will never find time for this work, you have to make time.
Say no to "technical sprints"
I have never seen "technical sprints" succeed. Where you take a sprint, or a week, or a day, just to clean up tech debt or work on infrastructure that will speed up your work.
Leadership sees these as a favor to engineering. Thank you for all that you do, feel free to do more work as a reward for how awesome you are.
Don't fall for this.
You want leadership to understand that improvements are a key part of the work. As soon as they start seeing technical work as "okay we will pause our valuable roadmap so you can do your useless thing", engineering has lost. You are not seen as an equal contributor to business success.
Technical improvements are part of the work
I like to do technical improvement work as part of OKR-aligned and ad-hoc-requests work. Especially the low hanging fruit.
Do the big improvements when you:
a) Have an immediate use for them b) Know what done looks like c) Can do it in small steps
The last part is critical.
Better is good โย make small steps
Biggest issue with large improvement projects is that theyโre super hard to scope-manage and tend to balloon and balloon.
But because they're not the highest priority, you tend to get halfway there, put it aside, then never get back to finishing. Now you have WorkInProgress lying around and uncertainty on how to do critical tasks.
Do you use the old way or the new way? Will the new way be ready before the deadline? Will it be tested and working? What hidden problems does it have that we haven't found yet?
Use the gardening approach
The only way I've seen work is to:
- Set a long-term vision for what the world could be
- Make small steps
- When the codebase strays, nudge it back
- If the code always strays, adjust the vision
You want to have a long-term direction to aim towards then zig-zag around the ideal path towards the goal. Kick the can style.
Use code review to nudge people towards better practices. Make suggestions in architecture discussions that go in the right direction. Show others the new superpowers they get when your vision comes true. Give them taste of success right now.
Always empower engineers with superpowers they can see. Don't be the curmudgeon who says No.
If you get it right, everyone will make small improvements all the time. Before you know it, tech cleanup will be normal part of everyone's day. That's what victory looks like.
Cheers,
~Swizec
Continue reading about How do you find time for cleanup work
Semantically similar articles hand-picked by GPT-4
- What to work on next?
- Reader question: "When do you fix tech debt?"
- Better is good
- Coordinating at the end is too late
- Why sprints
Become a *true* Senior Engineer
Get promoted, earn a bigger salary, work for top companies
Getting that senior title is easy. Just stick around. Being a true senior takes a new way of thinking. Do you have it?
The Senior Minset email crash course
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help ๐ swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers ๐ ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are โค๏ธ