The result of their bad code is future changes take 2x-3x as long. But no one can tell if those timelines are just what they are, or that there is a problem with the existing code.
The result of their bad code is future changes take 2x-3x as long. But no one can tell if those timelines are just what they are, or that there is a problem with the existing code.
The thing is, the syntax/design patterns in the code can look clean. But that doesnt mean the abstraction/interface is the right one
I recall how when Git started getting widespread adoption, a popular blogpost theme was discussion of cleaning up your commits...which is the kind of thing you can do if you're writing in small increments. But code that "moves mountains" in the architecture, as is often the case in a greenfield project where there's a lot of learning being done, tends to have dirty rip-off-the-bandage moments. If you clean up those kinds of commits, it's not really beneficial to future code archeology. But if you're clocking minimal effort and maximum CYA, it suddenly becomes hugely important to dot the i's and cross the t's, because that looks more professional than a commit log where you iterate on it a bunch and your log is like "maybe it's fixed now?"