To handle chaos, you need to work in sprints. Here's why.
For the past few months I've been introducing sprints into a chaotic startup that's been growing so fast everyone's got whiplash. Since August, 5 engineers turned into 12. I think it's starting to work.
One engineer told me "It's nice because I feel like I'm actually making progress". ❤️
My goals are more selfish: It feels like we're getting shredded alive by everyone's tiny little papercuts [name|]. So much urgent there's little time for the important.
What is a sprint
Sprints get a bad rap online. Agile consultants come into your org, swing their big pickles around, make a big mess, and your boss's boss's boss gets a promotion for Introducing the Agile Transformation.
Nothing changes for individual contributors except now you're stressed and death marching every 2 weeks instead of every quarter.
You then get talks like The Death of Agile by Allen Holub. Great talk.
Allen finishes his talk with a hypothetical:
What if you had iteration cycles where you:
- set priorities for the next few weeks, say 2,
- focus on those priorities,
- say No to distractions,
- at the end show what you've built,
- get feedback,
- repeat
Oh wait that's a sprint. Knowing your priorities and getting to work on them is the point of sprints.
Know your priorities
The main outcome of a sprint is knowing your priorities. This gives you a super power: You can tell the difference between a distraction and an opportunity.
In my experience companies always have fewer engineers than they have work for engineers to do. Or they're actively dying.
You want to work in a startup (or company) where customers and stakeholders are banging down your doors asking for stuff you can't build fast enough. Support is flooded with user requests. Sales gets new feature asks every week. And every internal operation is drowning because their processes and the tools you've built can't keep up.
All these people come to you, the engineers, with their "Hey can you just ... real quick? It won't take long".
And they're right. It won't take long! 2 or 3 hours. Maybe a day or two.
But there are hundreds of people asking and 5 people doing. The queue is full! When requests outpace the work, the system breaks.
You need a way to say Not Right Now and focus on what you're doing so you can get it done. You have to aggressively get things to done before you take on new things. WorkInProgress kills your progress.
Done means in production delivering value.
Sprints force a decision
Sprints are a tool to help you prioritize. They force the hard conversation to make those decisions.
Nothing brings me more joy than seeing a product owner/manager squirm as they drag that line around. "We need to get these 65 tasks done but we've never done more than 32. Can you guys do 36? Please? Try?"
You nod. Sure. We'll try.
"Oh thank you you're life savers"
Then they frantically move things in and out of sprint for 5 minutes as they try to fit too many marbles into too small of a box. Deciding which marbles to keep is hard.
I'm doing that these days and it sucks so hard. But it's great! If everything is a priority, nothing is. You have to decide which marbles are your favorite.
Just like when the bridge keeper asks for your favorite color. You gotta decide or off into the gorge of eternal peril you go.
Make time for the important
Sprints are like the jar in my favorite metaphor – if you fill them with sand, there won't be room for big rocks. But if you start with rocks, there's room for plenty of sand.
Without sprints your days get filled with sand. Sand finds every empty space available. Small tasks, ad-hoc asks, quick things here and there, time flies and nothing important gets done.
With sprints you can reserve space to work on the big things. And sprints encourage you to break down large projects so they're easier to ship. Make constant progress, get feedback, iterate.
But how
There's 3 things you need to create sprints:
- An ideas box – this collects everything you'd like to do so you can take it off your mind and know it won't go missing
- A next up box – this collects the ideas that need to happen soon, ideally after triaging
- A currently doing box – this holds your sprint
Don't plan too far ahead, things change. The currently doing box should be pretty crisp and well defined. The next up box is full of things you're kinda sure about. The ideas box is a mess.
Prefer a messy ideas box. Have dupes, half-baked thoughts, and lots of repetition. If an idea keeps coming up, it's probably a good one!
Use the ideas box to look for patterns. Can you solve 10 asks with 1 feature? You'll never know if you jump on each ask as soon as it comes up :)
Cheers,
~Swizec
PS: I do sprints in my personal life too. It's great.
Continue reading about Why sprints
Semantically similar articles hand-picked by GPT-4
- Sprint vs Shape Up vs Kanban
- How do you prioritize?
- How we made the best burndown chart you've ever seen
- The swarm doc
- Coordinating at the end is too late
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 ❤️