It’s easy to fall into the trap of focusing on specific types of work in your career. Starting with maintenance or grunt work is natural for junior developers, but it’s important for seniors to deal with horrendous code as well to remember why we are so strict.
Do you crank out tons of projects in an agency-type setting? It’s important to balance that by taking on and leading larger projects. Similarly, if you only ever take on these projects, try a few fast-paced ones next time. Rapid-application development uses different skills than designing and executing on larger projects.
It’s good to appreciate both the level of efficiency and consistency agencies strive for, as well as the quality and longevity that product companies do. (Remember, shelf life matters)
Be sure to experiment on some low-risk projects once and a while to maintain your confidence in these new settings.