code was expensive, is and will be expensive. the real cost is hidden. takes a mature eye to see a codebase that works and is not a dumpster fire.
correctness (doing what its supposed to, nothing else), maintainability (accommodating unknown future changes), cost ( deployment, refactoring, integrations) and performance (making the right tradeoffs) are not obvious, don't come naturally till you burn your fingers and differentiate a good from a horrible end result.