The SRE team at our company decided to adopt k8s and Helm chart and ArgoCD and whatever. That's cool. Do whatever you want. A few months later they told us, "since we are extremely busy and undermanned, we ask app teams to take care of those helm charts and TF codes from now on." Wait what?
This seems like a weird way to say that speed is a problem.
I think there's miscommunication. Maybe I'm misunderstanding. But when I say speed is a problem I mean that the world is complex and to go fast you have to cut corners. There's a fundamental truth that I think many people forget: as civilization advances, complexity increases. Think about this from a simple way. When you are in a new domain you can get away with low order approximations. They're better than... well... nothing. Which is what you had before. But as we get better you have to take higher order approximations to improve your results, right? And those higher order approximations almost always increase complexity. So that's the problem.
The need for speed makes you overlook small details. But as we get better those details matter more and more. They're counter to each other. There's strategies that are good but they have nuance too and it's like cliques were we forget the second half. Move fast and break things is great. You learn fast when tearing things apart. But you left a giant mess behind you. If you don't clean it up then the mess just builds. It's way faster and cheaper to clean up now than later. Just like cleaning a dish is way easier right after using it than when it's had time for the grime to set in and harden. Which, of course, this all compounds complexity, like the author states is the problem. Tech debt has interest but we want to pretend the debt doesn't exist.
I'm convinced this is what's leading to so much shitware. There's little pressure to actually improve because of centralization but everyone feels the need to move fast, so we move fast into nowhere. We don't want to fix problems, or even acknowledge them, because "new features" is more rewarding.
It's just a waste of a lot of money and time
My life is currently dominated by firefighting. I'd like to be at the point where I am worried about bad code changes and not infrastructure fires, but we will need to work our way through Maslow's Hierarchy first.
Accountability is what you are looking for.
This is not a technical problem. Try to find out who is accountable. Who gets fired when the software doesn't perform the way it should. Notice nobody gets fired. Because the whole chain of command is afraid of accountability for themselves.
The problem is incentives and authority. It used to be that Ops owned uptime, and therefore it was their right to tell Engineering to go fuck themselves when they asked to put some spacecamp graph database or whatever in production. Now everyone is "devops" and nobody can tell anyone anything.
Speed is chaos.
Slow is smooth, smooth is fast.
It’s just not the only form of chaos.
Yep. It's all about the codebase. Even if you know the codebase very well, its complexity can still constrain you significantly in terms of speed.
For projects which I've built from scratch, I move blazingly fast. I can get more done on the weekend one day per week on a complex project than I can get done at my full time day job 5 days per week on a simpler project.
The difference is that in my side project, there is 0 unnecessary complexity. All the difficulties I face are intrinsic, unavoidable barriers to solving the problem.
In my day job, 90% of the complexity is not intrinsic to the problem but are created by the code /architecture itself.
I've been saying this over and over for years but it just doesn't seem to register in people's heads just how important the foundations are. The word "technical debt" is a highly accurate way to describe the issue because the costs compound, just like real debt which is not serviced regularly.
If you join a project which has too much technical debt, you can easily end up in a situation where you have 100 engineers moving at the same pace as 1 engineer could working on their own project.
So the 10x or even 100x engineer is real but you can only discover them if they can work on their own codebase from scratch.
I've seen several times people who were very average developers working for a company who later became 10x devs working on their own startup. I've also seen people who were same speed everywhere; those aren't 10x devs. At best they're a 2x dev because maybe they can churn out buggy tech-debt-ridden code at twice the rate as a normal dev. I've worked with devs who could code at twice the speed (and sustained); large amounts of code but it had bugs and eventually, everyone on the team ended up working at half the speed... Requires twice the amount of code to implement the same feature with lower quality.
Also, sometimes a company may have one person on the team who comes across as highly knowledgeable, good communicator but maybe a bit slow and they don't seem like a 10x dev... But remove that person from the team and after a year or two the whole team is much slower and nobody can figure out why. 10x devs are team productivity multipliers. They make everyone around them approach 10x speed.
*The problem with modern software engineering
Vim Startify recently showed me a quip it attributed to Alan Kay. It went something like this:
Modern software is similar to the pyramids: it consists of millions of blocks held together by nothing but sheer weight and the labor of thousands of slaves.
Is Earthly going all in on Lunar? The Lunar link is redirecting to the home page: https://earthly.dev/earthly-lunar
I wish I had that problem, instead I have a speed problem.
But if I solved the speed problem I might bitch about chaos. And if I solved the chaos problem I might bitch about freedom.
My definition of a solution is to trade a problem you have for a problem you'd rather have.
So here is another dashboard because only thing prohibiting the chaos from getting under control was lack of dashboard. As if 200 Grafana dashboards were not enough.
What's preventing the Chaos from getting under control is political desire to do so. Google ships 5 times a day? Why don't we? /s
Link is glorified ad piece
This one sentence throws the entire article's objectivity into question: "This is why today we’re announcing Earthly Lunar."