Skip to content
Swizec Teller - a geek with a hatswizec.com

Why great engineers hack The Process

Click through for source
Click through for source

Companies start life in the cowboy phase – a band of brothers and sisters building something cool.

You ship straight to prod, you understand the whole business, you vibe with everyone around you. They think it, you build it. Telepathic almost.

When something goes wrong, you know how to fix it. The whole system fits in your head. You know what everyone is working on, and you Just Know™ what matters most.

Life is good. An engineer's dream.

hacker giphy

Then something goes wrong.

You push a critical bug. Production goes down. Customers lose data. Thanksgiving promotions don't work. The site crashes at a pitch to investors. Money is lost.

Time to grow up.

A process is born

You add checks and balances.

Something simple – everyone's code needs to go through a pull request. Helps you know what's going on, increases team learnings, ensures at least two people see every change.

Great idea!

Then you add QA, product managers, designers, feature owners, internal clients, external clients, this person that person ... before you know it every idea goes through committee after committee before it even reaches the developer.

Nothing gets done anymore

3 or 4 years after starting, if you're not careful, most of your time goes to meta work. Work about work.

You have an idea. Tell the PM.

PM puts it on their pile of ideas.

pile_of_shit giphy

Every Friday, your PM – now called Head of Product because you're a very real grownup company – looks at this list and decides what to work on.

Your idea might just align with business objectives.

PM looks at everyone touched by this idea and goes into Requirements Gathering mode. They talk to sales, customer support, operations, engineering, the CEO, the COO, the janitor, and maybe that homeless dude outside.

3 weeks later a spec is born.

5 miles long, covering all edge cases, and with everyone's pet addition. Your idea is on line 5 paragraph 6. Now unrecognizable.

You get to work

Work starts with reviewing the spec. You talk to the PM ask a bunch of questions, poke holes in the edge cases, talk to the clients again just to make sure everyone understands the spec in the same way.

Everyone had a new idea. That little something they forgot.

The spec grows a mile.

You create a detailed estimate. Line by line. Investigate the code, plan the solution, really dig down to what's needed. Hand waving with an "Eh about 5 days" won't do in a serious grownup organization like yours.

It takes you 3 days to dig through the requirements, the aging codebase, and the technical debt. You're pretty sure you know how to implement this.

Estimate: 5 days.

You spend another 2 days writing test cases for QA, help docs for feature testing, and some documentation for yourself. Gotta know how you'll know the feature works before you start. Them's the rules.

Code is just a checklist

You finally get to code. 2 weeks since you started the project.

Ah bliss

Except your estimate is so detailed that there's no fun left. You're just following a checklist. A detailed list of steps pre-determined while estimating.

You've done the engineering. The fun stuff. Now you're just doing work. Like digging a trench.

dig_a_hole giphy

Time to deploy

10 days later you're ready to deploy.

Oh the estimate was 5? Ha! You forgot work takes work. Even if it's simple, easy, and following a checklist, it still takes time.

Frustrating, I know.

You send a pull request to the 5 repositories you changed. Ship off to QA. And ask the PM to verify everything looks good.

Five hundred comments and 3 feature additions later, you're ready to ship.

That took another week.

5 months from idea to feature but at least your deployment process is easy. You're a young startup after all!

Just poke the deployment engineer and she'll get to it tomorrow.

Maybe.

Cheers,
~Swizec

Did you enjoy this article?

Published on March 3rd, 2020 in Opinions

Learned something new?
Want to become a high value JavaScript expert?

Here's how it works 👇

Leave your email and I'll send you an Interactive Modern JavaScript Cheatsheet 📖right away. After that you'll get thoughtfully written emails every week about React, JavaScript, and your career. Lessons learned over my 20 years in the industry working with companies ranging from tiny startups to Fortune5 behemoths.

Start with an interactive cheatsheet 📖

Then get thoughtful letters 💌 on mindsets, tactics, and technical skills for your career.

"Man, love your simple writing! Yours is the only email I open from marketers and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"

~ Ashish Kumar

Join over 10,000 engineers just like you already improving their careers with my letters, workshops, courses, and talks. ✌️

Have a burning question that you think I can answer? I don't have all of the answers, but I have some! Hit me up on twitter or book a 30min ama for in-depth help.

Ready to Stop copy pasting D3 examples and create data visualizations of your own?  Learn how to build scalable dataviz components your whole team can understand with React for Data Visualization

Curious about Serverless and the modern backend? Check out Serverless Handbook, modern backend for the frontend engineer.

Ready to learn how it all fits together and build a modern webapp from scratch? Learn how to launch a webapp and make your first 💰 on the side with ServerlessReact.Dev

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 ❤️