Great article! Your perspective through the junior programmer, senior programmer, and also CTO is right on point.
Usually, programmers will strive for perfect and clean code, documentation and also unit test, etc. But in the real world, budget is always a constraint; a limited budget means limited time. So, skipping some of these items to deliver the product first, we continue to make it better after that are still not too late.