Hold up, translating...
"I work for established, mature companies where it doesn't make sense to put in the work it would take to let developers own their own services in production, for the following reasons. https://twitter.com/cmjdiff/status/1312460842277851136
"I work for established, mature companies where it doesn't make sense to put in the work it would take to let developers own their own services in production, for the following reasons. https://twitter.com/cmjdiff/status/1312460842277851136
"1. We make plenty of money, and can afford to hire plenty of lower skilled, lower paid people as cannon fodder
1a. ...and burn them out, and replace them
2. We have hired generations of software engineers who see this hierarchy as their God-given right."
1a. ...and burn them out, and replace them
2. We have hired generations of software engineers who see this hierarchy as their God-given right."
"3. Building and supporting software systems at scale is an occupation that generates a LOT of pain and suffering. It just is. You have to make the pain go somewhere, so naturally you should inflict as much of it as possible on your least valuable, most replaceable people."
"4. Our reliability is fine, our ability to hire is fine, our delivery pace is fine. In short, we have no competitive pressure driving us to experiment with these hard, scary, risky changes you are talking about.
5....even if we believed you that it was better, which we don't."
5....even if we believed you that it was better, which we don't."
Frankly, you make some excellent points. I mean that truly.
It would be incredibly dumb to take a stable, functional complex system like that and simply upend it one day by putting developers on call. They'd die, they'd cry. Everyone would hate it and call for the good old days!
It would be incredibly dumb to take a stable, functional complex system like that and simply upend it one day by putting developers on call. They'd die, they'd cry. Everyone would hate it and call for the good old days!
It would be just as stupid as if someone heard about CI/CD 15 years ago and promptly ran to their laptop and set up a cron job to run jenkins and scp the artifacts to prod once an hour.
It's a process; it takes time, adjustment, learning, consent, and evidence at every step.
It's a process; it takes time, adjustment, learning, consent, and evidence at every step.
Perhaps I shouldn't snark so much about these current stable systems. They are a great achievement, the product of much hard work. Kudos.
But you can't stop there. If you're standing still in tech, you're losing ground.
But you can't stop there. If you're standing still in tech, you're losing ground.
The contours of the future are increasingly clear in several ways --
- software engineers own their code all the way out to watching the user run it
- you build it, you run it
- decoupling releases from deploys, progressive deployment, test in prod
- observability, operability
- software engineers own their code all the way out to watching the user run it
- you build it, you run it
- decoupling releases from deploys, progressive deployment, test in prod
- observability, operability
Not because I said so, or because they're trendy. Because together they
- make us better engineers
- lead to dramatically better service for our users
- result in better, cleaner systems which are far more humane to run, debug and own
- which all lets us move much faster.
- make us better engineers
- lead to dramatically better service for our users
- result in better, cleaner systems which are far more humane to run, debug and own
- which all lets us move much faster.
These ideas will win because of the competitive advantage they collectively bestow.
Maybe not today, not for your existing stable/mature systems. No argument! You know your systems better than I do, and I trust you to know. But someday.
Maybe not today, not for your existing stable/mature systems. No argument! You know your systems better than I do, and I trust you to know. But someday.
So you can either mock everything and talk shit about it, or look for ways to take one small step after another in the direction of progress. Ways that make sense for *you* and *your* team. 



