[name|Friend], we talk a lot about outcomes over outputs and how engineers are supposed to get us over the water, not blindly build a bridge because someone asked for a bridge. But how do you do that in practice?
Watch people work!
We tried this on my team and it has been wonderful.
- Grab the person whose work you plan to improve
- Sit in a room (or a call) with them
- Just watch them work. As close to normal as possible. Ask them to narrate what they're doing
Does it feel annoying? I bet it does. Are they using a bunch of weird workarounds you didn't think of? Bet they are. Dealing with broken shit you long forgot was there? I can almost promise. Get every engineer nice and annoyed. Make them feel the customer's pain (user empathy). Frustration Driven Development is the goal.
Your job's not done until engineers could do this work without throwing their laptop out the window. π
Trying a new experiment:
β Swizec Teller (@Swizec) April 6, 2026
At the beginning of a project (to automate a task), every engineer spends one hour doing the job.
then they keep doing this every week
project is done when your grumpy engineers donβt hate doing the work
We ran 3 of these sessions last week and found all sorts of things:
- users couldn't place a certain type of high value low frequency order. Fresh bug, first customer support request. We got lucky
- a button went missing and for months support has been performing a workaround for users because they thought we removed it on purpose
- support answers a lot of brain-dead easy questions because our site doesn't feed users the right info at the right time
- having more info on support tickets is not the bottleneck we thought it was (our plan was to instrument this)
- our support spends a lot of time doing expert work that users should be able to do themselves, but don't have the tools
- support spends a lot of time writing very similar emails (templates exist but nobody likes or maintains them)
- we found a miscommunication between support and product βΒ we changed how something was supposed to work but forgot to change how support handles it, oops
- our finance team deals with a lot of bad software and has built up a bunch of cargo culty beliefs βΒ 4 clicks to run invoicing even though 1 click does everything
- the finance team has a process that spans 6 different pages across 3 different tools. They do this multiple times per day. It takes hours. They're not sure how it all connects but if you do things just right, the company stays running
- during this multi-hour process, if you scroll to the 2nd page of some tables, dropdowns stop working. You can work around this by opening yet another page and editing there ...
I wish we could fix everything [name|], but it's like spinning plates. One top priority at a time.
The trick is to find your biggest levers and focus on those.
We could fix the UI our finance team uses, sure, but that doesn't remove the problem. Why are we making them do this work at all? Automate.
We can give support more info on tickets and they'll be marginally faster at resolving. You know what really helps? Helping our users ask fewer questions.
Cheers,
~Swizec
PS: once you've got the frustration, find a way to measure. This lets you track progress over time.
Continue reading about Watch people work
Semantically similar articles hand-picked by GPT-4
- Frustration Driven Development
- Taming chaos is a learnable skill
- You can't side-quest a product
- Own the outcome, not the work
- Leadership lessons from growing 3x in 1 year
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 β€οΈ

