First is to design the team’s work process in a way to encourage rather than inhibit creativity. A sure approach is to encourage growing a system one component at a time rather than trying to build a complex system in one major push. The key is to always have working code that the team can add to and build on.
A modular approach helps teams grow systems and products. If each section exists independently, the team can isolate maintenance issues so long as they work within the specifications ensuring the front and back end of each module fits into the neighboring pieces of the larger system.
Teams that become used to solving problems will develop an element of hustle. They will chase after lost causes and not be afraid of trying new things. A hustling team moves a little faster than necessary and creates the cushions needed to handle unforeseen events in their work process. When work is defined in small chunks that lead to frequent success, teams will become accustomed to victories and work a little harder in pursuit of the next win.