just wrote a 3k word article on why this (really good, i mean really exceptionally awesome) serverless parody of Hamilton has a chorus that i hate a lot.
"i'm gonna reduce your ops..
yeah i'm gonna reduce your ops"
yo, **ops is not a synonym for toil**.
operational engineering is the constellation of all your organizational skills, habits, best practices, defaults, tools, and aspirations around delivering software to users swiftly, efficiently and humanely.
"less ops" isn't necessarily better ops, any more than fewer lines of code necessarily means better software.
in either case, you need ... as much engineering as it takes to do the job well, and not a whit more. why is this hard?
i have mad respect for the serverless folks. but they seem to persistently misunderstand the reason for their own success, which is weird and frustrating.
the value of serverless isn't found in "less ops". the value of serverless is unlocked by **clear and powerful abstractions** that let you delegate large portions of your infrastructure to be run and managed by other people who can do it better (and more cheaply) than you can
to be clear, there's just as much ops going on as before. possibly more.
just _not by you_.
this isn't a reason to shit on ops and call for #NoOps bullshit, it's a reason to reevaluate your lingering wobbles around outsourcing higher-level services and abstractions.
because yes, operations is a cost center. if your mission doesn't involve solving infrastructure category problems, operational costs are a thing to be managed for efficiency.
doing this well is extremely difficult and takes a lot of experience and expertise.
what's the difference between automatically shipping 10x/day, rarely getting paged, and swiftly restoring service when you do,
vs shipping 1x/week (by hand, consuming days of engineering-time), getting paged 20x/day, and always escalating to the same person in a panic?
(ops)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I devoured the recap @martinfowler posted from the deer valley summit. Loved it.
But the notes suggest we may be replicating a perennial blind spot in software engineering: treating code like the outcome, and production like an afterthought.
Formal methods and test suites are like flight simulators.
Flight simulators are genuinely impressive. Airlines use them, pilots log real hours, they catch real failure modes. Nobody's saying skip the simulator.
But a pilot who has only flown simulators is not a pilot.
I woke up this am, scanned Twitter from bed, and spent an hour debating whether I could stomach the energy to respond to the latest breathless fatwa from Paul Graham.
I fell asleep again before deciding; just as well, because @clairevo said it all more nicely than I would have.
(Is that all I have to say? No, dammit, I guess it is not.)
This is so everything about PG in a nutshell, and why I find him so heartbreakingly frustrating.
The guy is brilliant, and a genius communicator. He's seen more and done more than I ever will, times a thousand.
And he is so, so, so consistently blinkered in certain predictable ways. As a former fundamentalist, my reference point for this sort of conduct is mostly religious.
And YC has always struck me less like an investment vehicle, much more like a cult dedicated to founder worship.
Important context: that post was quote tweeting this one.
Because I have also seen designers come in saying lovely things about transformation and user centricity, and end up wasting unthinkable quantities of organizational energy and time.
If you're a manager, and you have a boot camp grad designer who comes in the door wanting to transform your org, and you let them, you are committing professional malpractice.
The way you earn the right to transform is by executing consistently, and transforming incrementally.
(by "futureproof" I mean "true 5y from now whether AI is writing 0% or 100% our lines of code)
And you know what's a great continuous e2e test of your team's prowess at learning and sensemaking?
1, regularly injecting fresh junior talent
2, composing teams of a range of levels
"Is it safe to ask questions" is a low fucking bar. Better: is it normal to ask questions, is it an expected contribution from every person at every level? Does everyone get a chance to explain and talk through their work?
The advance of LLMs and other AI tools is a rare opportunity to radically upend the way we talk and think about software development, and change our industry for the better.
The way we have traditionally talked about software centers on writing code, solving technical problems.
LLMs challenge this -- in a way that can feel scary and disorienting. If the robots are coming for our life's work, what crumbs will be left for you and me?
But I would argue that this has always been a misrepresentation of the work, one which confuses the trees for the forest.
Something I have been noodling on is, how to describe software development in a way that is both a) true today, and b) relatively futureproof, meaning still true 5 years from now if the optimists have won and most code is no longer written by humans.