Software has analogous constraints, with regards to scale, performance, latency, design, etc. Everyone thinks that a line of code can be quickly replaced. On a small program, this is true. But at scale, this is not true at all and anyone that's worked on a multi-million line application knows this. You cannot have every line of a complex system in your head at once. You cannot instantly solve for all of the interconnecting pieces in your mind at once. It takes a team of software engineers of various disciplines to consider the tradeoffs of any change to these complex systems. In particular when they are live and supporting millions to billions of users. And because software has more of an organic quality than traditional hardware, managing hundreds or thousands of changes that need to go into the system over the course of a month or quarter is non-trivial. People that think software is trivial are the same ones that fall for the idea that anything can be quickly refactored and redesigned and nothing will break and everything will go smoothly. It's just not true.
Most human beings can handle, at most, 5 to 9 variables in their head at once. Software systems grow to immense complexity of thousands to millions of variables, with various runtimes, databases, caching layers, frameworks, libraries, coding styles accrued over multiple decades in some cases, data aggregation pipelines, dozens to hundreds of APIs with their own unique interfaces, etc. It is a constant battle against entropy, which happens inevitably in such systems.
Meanwhile, there isn't a single modern "real engineer" who doesn't get their daily work done thanks to multiple software programs supporting their own productivity so much that they can replace what used to be teams of dozens to hundreds of assistants, techs, engineers, and other various human support systems. They draw lines on AutoCAD that automatically compute moments of inertia, shaft calcs, bill of materials, etc. Then they take that file output and zap it over Slack instantly to their colleague who works from home hundreds of miles away to get their feedback on it. Behind all of that is a team of software engineers and product devs that not only has to understand the constraints of their own technical systems, but the technical needs of their engineering clientele.