Blog Insights Why code gets released too early (and how to fix it)
Published on: April 27, 2017
3 min read

Why code gets released too early (and how to fix it)

More than half of developers say they release code prematurely. What can you do about it?


Code released before it’s ready might be good for meeting deadlines, but that’s about all it’s good for. Most software products today are in a continual state of development, testing and release, so making sure you’re only shipping code that’s truly ready is both challenging and critical.

Our 2016 Global Developer Survey asked respondents about how they work, what they work with and what makes their jobs easier (or harder!). They told us resoundingly that between deadline pressure and unrealistic expectations from management, they end up releasing broken or non-functional code all too often.

Over half of developers admit to releasing code before it’s ready

The frequency of shipping incomplete code varies, but an overwhelming 81 percent of developers admitted to releasing code before it’s ready, with an alarming 15.75 percent saying it happens more than half of the time.

This isn’t the same as releasing early and often, although the two are easily confused. It’s common practice to release features that are not necessarily polished, with the aim of gathering feedback and improving with the next iteration. However, releasing code that isn’t ready refers to code that is incomplete, not yet fully functional, or hasn’t been tested across all environments. The pitfalls here are obvious: shipping code that’s not finished can break things and result in frustrated customers.

Why does this happen?

It seems obvious that releasing too early should be avoided, yet it happens all too often. Why? Pressure from senior management and deadlines that must be hit were the top two answers from our respondents, with 38.34 and 58.9 percent each, suggesting a breakdown in communication and mismanaged expectations between senior management and development teams.

How to prevent premature releases

Having a robust release management strategy is essential for planning and controlling your software delivery schedule. Leveraging Continuous Integration and Continuous Delivery to ensure your code is always tested and ready to be deployed at a moment’s notice helps to prevent the release of broken code. Adopting DevOps practices to improve communication and collaboration between teams and encourage shared responsibility for each release is another way to ensure that deadlines are realistic and can be met.

Also, it might sound counterintuitive, but releasing more often can actually help to prevent premature releases: if you’re shipping once a month instead of twice a year, there’s no reason to rush code that isn’t ready into your upcoming release just to meet a deadline.

Download our Global Developer Report to learn more about what developers want and need to do their jobs more efficiently.

We want to hear from you

Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum. Share your feedback

Ready to get started?

See what your team could do with a unified DevSecOps Platform.

Get free trial

Find out which plan works best for your team

Learn about pricing

Learn about what GitLab can do for your team

Talk to an expert