Often in software development, we make updates to the system which may not be related to or driven by customer feature requirements and customer launches. These updates are typically categorized under one of the following: moving forward, improving usability, refactoring, internally driven user interface update, getting to the next level, minor functional updates, warnings or small bug fixes, etc. At some point in the past, these were spec'ed and assigned to a future release. That is.. somewhere way into the future where everything seemed calm, and crisis free.
When we catch up to these future releases, the engineering team feels there is not a 'real' deadline for some of these projects, and often use that as an excuse for slipping the release or simply shifting these these items out of the current release's scope if the current release's freeze deadline is near.
This deferral results in a large pile of projects growing in the future. And worse.. some projects get deferred from release to next release continually. Take note that these are projects we've all agreed have some importance.. often the project was filed by the engineering themselves.
Can you suggest ways to coach the engineering team to take on the responsibility to treat these non-customer launch/non-crisis releases and features with a strong level of urgency, and strictness about the deadline?