> The greatest systems I’ve touched — the ones processing billions in transactions, the apps supporting life-saving medical devices — all shared one trait: They were messy as hell. Why? Because they evolved. Because real-world problems don’t fit into clean architectures. Because the teams prioritized solving over preening.
I disagree that those are the reasons why codebases are messy.Software is incredibly powerful and malleable. It can be shaped into almost anything and have any number of meta-features as needed. The problem is that these meta-features are not desired or even in the purview of the engineering team, because overall the direction and focus of engineering is managed by people who do not understand or see this potential of software.
Let me stress that, engineers often do not prioritize system correctness or reliability, etc, because orgs are structured in a way that they instead incentivize engineers to focus on short term fixes, worrying about the customer, and spending valuable time scheduling meetings and planning (when 90% you cannot estimate accurately). This means they don't have time to make their systems as robust and reusable as possible.
For example, there is no reason why a web app cannot be bug free, and have 10x development. We're talking about buttons, sliders, images, and on the backend some simple queries, yet I have seen talented teams of engineers produce really bad code because of how the org is structured, and how software companies are blind to how much the business side of things have influenced the entire org's culture. The engineering culture has to be centered around computer engineering and technical solutioning.
I respectfully disagree - I think we ARE bad at our jobs. There are like 4 million SWEs just in the USA, how many in this large of a cohort can really be great at what they do. I ballparking this at <1%