The key to 10x results is to remove 9x of the work. That's where software engineers shine.
You're building systems and tools to help companies grow without drowning in work. This fuels your equity, career capital, and reputation.
Scaling Fast book free preview
Enter your email to receive a sample chapter of Scaling Fast: Software Engineering Through the Hockeystick and learn how to navigate hypergrowth without burning out your team.
Manual expertise doesn't scale
Use your frustration as a guide.
Every process starts as an unstructured mess. You hardcode info, edit things directly in the database, fly by the seat of your pants, and use First Principles Thinking to figure out what to do each time.
This is great! It lets you iterate, try different approaches, and move fast. Fantastic when you're early in a product's lifetime. You focus on customer value instead of scalable repeatability 💪
But as you grow, the approach that used to be fast begins to slow you down. Nobody except you can do the thing. You can't take a vacation, the one-off task happens more and more, and you never have time to focus. You sit down to write important code and let small fires burn but people keep throwing tennis balls at you: "Heyyy can you do that thing for us? The thing only you know how to do? You're so good at it, nobody else can figure it out"
😩
Whether it's deploys, updating product info, fixing a bad database situation, or helping to fix a bug. Your ego loves the attention, but you've become a blocker. It's time to code yourself out of the job. Let go of your legos.
How to automate anything
Here's the algorithm I like to use:
- Do the work
- Write it down
- Make a script
- Build the tool
1. Do the work
Try to do the work manually at first. This forces you to figure out every step and make sure you know what's involved. Doesn't have to be you personally, someone does the work manually.
If N is too large to do by hand, try to do a couple examples. The clarity you get from doing the work is well worth the effort.
2. Write it down
While you're doing the work, write down the steps you're taking.
For rare tasks, this helps you remember what to do. Notes make the work go faster and feel less distracting.
Write the steps as a checklist and try to follow the list every time. Checklists have been shown to reduce surgical process mistakes by up to 40 percentage points. They're popular anywhere safety matters.
This document is called an SOP – standard operating procedure – or runbook. Once the steps are written down, anyone can run the process because the knowledge isn't stuck in your head. This is a good way to share your legos.
With an SOP, even surprisingly frequent tasks can be no big deal. You can mindlessly go through the steps when you need a break from braining too hard.
PS: aim to attach an SOP to every production alert or warning. More on observability in my new book.
3. Make the script
Update the SOP every time you go through. Encourage others to contribute. If any step changes or lacks detail, make it better.
When the SOP stops changing, you're ready to turn the document into code. You now know what needs to happen and when. You've documented or dealt with every exception that comes up.
Feeling frustrated that you're doing the same thing so often is a great indicator that it's worth automating. For many tasks, you can build a script that engineers can run.
4. Build the tool
For tasks you want to offload away from engineering and empower other users to self-serve, build a tool. You can start with a script then wrap the script in a nice UI.
At Tia, for example, we went years with engineers "manually" (via migrations) managing bookable appointment types in the database. One day I'd had enough and added a new form to our admin tool that let everyone add appointment types.
This saved engineering an estimated month of work every year and empowered the business operations team to iterate on their own without waiting for engineers. They loved it.
Over time, that page evolved into a full CMS and became part of our business processes. Now it gets occasional tweaks and updates as new needs arise. That's the ongoing maintenance part of the cycle.
At Plasmidsaurus we recently shipped a product CMS and it's been great. Product managers and operations folk can update any info whenever they need without a deploy. No engineering required 🚀
More on scaling fast tomorrow.
Cheers,
~Swizec
PS: my new book Scaling Fast: Software Engineering Through the Hockeystick is out now with a special launch discount
Continue reading about How good engineering unlocks fast scaling
Semantically similar articles hand-picked by GPT-4
- The dangers of spurious automation and how to automate anything
- You don't need a big team to automate your work
- Can I get your opinion
- What I learned from Software Engineering at Google
- What's more productive, a team or a talented soloist?
Scaling Fast book free preview
Enter your email to receive a sample chapter of Scaling Fast: Software Engineering Through the Hockeystick and learn how to navigate hypergrowth without burning out your team.
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 ❤️
