Solving complex problems with simple systems is really really difficult.
Most people can't do it.
Even worse, most businesses are actively preventing it with the way they want their teams to work. How many people reading this can honestly say they get time to address technical debt or rework things to fit a more coherent view of the overall pattern that has developed with time and fixes and added features? How many developers can truly say they get to choose the best technology to do their job? Do you actually use the languages and tools that fit your ___domain best?
Almost none of us, right?
Also some of what you cite is fairly early-stage tech. IaC is still such a new concept that it's not surprising nobody's figured out how to make something that isn't incredibly annoying yet. Terraform, Bicep, whatever, it's all pretty raw and hideous still.
It's not so much that we like complex and messy tools and solutions, it's that we don't - for various reasons - have a choice.
Hahaha this is a great answer, and enjoyable to read. I heartily concur with your idea that most businesses are actively preventing it with the way they want their teams to work
I think this is what early Google did well. Engineers were unleashed to do their best work - or so I've heard, maybe it's just a nostalgic myth seen through the gilded glasses of past recollections.
I also think it's such an important problem to solve, and low hanging fruit! Otherwise you are impeding your team's ability to solve problems and retarding your ability to compete with other orgs. Just create the conditions to ensure the 'production line' is optimized. I don't just mean cranking out code, I mean optimizing for what the goal really is, and what's going to help you achieve it, in that Fordian sense.
Also, raw and hideous lol! Perfect description hahaha.
Most people can't do it.
Even worse, most businesses are actively preventing it with the way they want their teams to work. How many people reading this can honestly say they get time to address technical debt or rework things to fit a more coherent view of the overall pattern that has developed with time and fixes and added features? How many developers can truly say they get to choose the best technology to do their job? Do you actually use the languages and tools that fit your ___domain best?
Almost none of us, right?
Also some of what you cite is fairly early-stage tech. IaC is still such a new concept that it's not surprising nobody's figured out how to make something that isn't incredibly annoying yet. Terraform, Bicep, whatever, it's all pretty raw and hideous still.
It's not so much that we like complex and messy tools and solutions, it's that we don't - for various reasons - have a choice.