As a tech lead or eng manager, you so frequently get request from above or from other teams to drop what you are doing and work on this thing they need, *now*.
During my 4 years at Uber after asking these questions, 9 out of 10 times it turned out it wasn't really urgent:
1. "What is the impact of this work you're asking for?" If the impact is unclear: sorry, but we can't do the work. Why would we?
Just this question made the requester realize half the time they just think it's urgent, but don't know what the work will actually result in.
2. "Do you have a spec that is agreed with stakeholders?" A writeup answering the "why" and the "what" that is signed off by relevant business folks.
I've seen so much engineering work thrown out as later the business goes "that's not what we wanted, why didn't you tell us?"
3. "We're not committing to any work before we have done a rough estimation."
With #1 and #2 done, many stakeholders will come and say "drop what you're doing, this is a 3-day work we need ASAP."
Hold your horses. You don't make estimates: the team doing the work does...
4. Make the cost of dropping what you're doing very clear.
This cost is always forgotten by the person coming with the request. But it's a relevant one: wrapping up work, onboarding to the new work, then later onboarding to the old work. Plus a hit on morale for a sudden change!
Uber has some very hectic times when there were reasons we needed to do some new work ASAP. Like a regulation change that means the company would be banned from operating in a region if not building something.
Even in such a place, most "urgent" things turned out to be noise.
The way I always approached these requests was to educate the person coming with them, and have them realize their work is actually not as urgent or as important or as impactful of what the team is already doing.
Doing so meant building empathy both ways, and less hard feelings.
A huge upside of this approach: when committing, you *can* commit with a very high certainty that you will not be interrupted with your work.
The alternative: take on this "super urgent" work, then someone else comes along saying " I need you to drop what you are doing *now*..."
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I am hearing SO many stories about people realizing coding with AI tools (aka “vibe coding”) is a game changer after “reviving” an old side project or idea on the side and making so much progress
But… while I often hear the excitement on starting: not hearing “finished” often!
Almost like these tools were amazing at making rapid progress at first… but it still takes a ton of effort to finish things and feels like most people go back to leaving side projects unfinished (even if in a more advanced state?)
FWIW guilty as charged
I got a bunch of side projects “revived” and was amazed at how fast it was
Then I just… kind of let them on the side? Turns out the reason I don’t touch them is because… they are just not a focus. Even tho it’s less effort now: still effort!!
In case you missed it: it was Microsoft who voluntarily cannibalized their very very profitable Visual Studio business and released VS Code for free. And made it trivial to fork. VS Code + forks probably account for 80%+ of the global dev market in usage
Why did they do it?
This was clearly on purpose from Microsoft - give up one revenue generating area to keep winning in a much bigger one
Not squeezing all lemons is an underrated and very smart strategy, as @jakozaur puts it
Also why NVIDIA is “losing” in AI models to eg OpenAI, Anthropic etc
And before you show me the tech jobs going down graph that goes viral every week: know that most sectors see the “decline in jobs” from the pandemic peak: blog.pragmaticengineer.com/software-engin…
And this is not about denying the impact of GenAI for tech jobs. We will see smaller teams do more (already are). More demand for “top” software engineers, and most likely less for entry-level and “average” talent.
We don’t know (yet) if we will see an explosion of smaller teams/companies and if we’ll see a demand surge to take over/maintain “vibe coded” businesses as they start to scale
Here’s one reason Apple fought tooth and nail to disallow web payments for apps:
Because Apple’s IAP is bad in many ways, and *so many* apps will move to web-based payments now not mainly because of the 30% Apple fee, but because of how bad IAP is.
Let me give you examples:
1. Refunds
With Apple IAP it’s just not possible to do!! No, it really is not for the merchant. They cannot do a full or partial refund. Talk about poor customer support!
2. Group subscriptions. Nonexistent with IAP.
3. Paying using a non-credit card option. IAP does not allow
4. CUSTOMER SUPPORT
In general, with Apple’s IAP this is nightmare. (After you pay 30% more, mind you!)
You cannot do stuff like “we’re sorry for your trouble, would you like 3 months free or a full refund?”
5. Asking ppl why they cancel. NOPE! Not even after they cancel
Every now and then there's this prediction of when we will see the first one billion dollar company ran by one person...
... and I think back to how in 2016 there was this one product inside Uber that had crossed a $1B annual run rate that had a total of one dev allocated to it.
And half a data scientist (part-time).
It was cash.
Funny how headcount games can work inside fast-growing companies, especially when the product is a stated goal of what a founder does NOT want to support (but turns out to be essential!)
I only have second-hand details here but the story was along the lines of not being able to get official headcount (because when Uber was founded, no cash and no tipping were table stakes).
It only got funding after crossing the $1B landmark.