Totally agree. Code is usually the easy part compared to unclear priorities, changing requirements, and people assuming “small change” means small effort. A lot of engineering pain comes from communication gaps, not technical gaps.
It's almost always a communication gap rather than a technical one. When people assume a "small change" is trivial, it's usually because they can't see the underlying architecture. Bridging that visibility gap is half the job!