
No one ever said they’d like to slow down their release cycles, even though they may wish it privately. Some major organizations are already releasing on incredibly short iterations but it’s not easy, especially for some more entrenched enterprise application development teams. The drive towards “Continuous Delivery” is gathering momentum so what lessons can be learned from the early adoptors?
The world of software development is never short of “next greatest thing” ideas in the need for speed when bringing any software product, especially games, to market – Agile, Scrum, Continuous Integration … and the latest is Continuous Delivery (CD). But this is not just another buzz phrase: research by Evans Data Corporation across the UK and US found that over 60 per cent of companies are already using CD to some extent, including games studios.
In many ways, the games industry is leading the adoption of faster release cycles, even if they’re not necessarily using the Continuous Delivery label. This topic was highlighted in a recent webinar (hosted by Perforce) that featured speakers from Ubisoft, WB Games/Turbine and Sony Computer Entertainment/Santa Monica Studio.
While it’s been around as a concept for a couple of years, there’s suddenly a wave of vendors, industry analysts and media waxing lyrical about Continuous Delivery. What they are saying is that, arguably, CD is the biggest shift in the way that software is developed and brought to market since web apps.
Enough of the hype already, what’s it really about? Continuous Delivery enables businesses – not just games studios – to provide better products faster by allowing software to be released into production at any time. It centres on building a development pipeline where early feedback, automated build and test, and incremental deployments can dramatically speed up product and application release cycles.
Many businesses are embracing this as a competitive advantage that allows them to accelerate time to market without sacrificing quality. Because the return is so great, studios are investing heavily in hardware, network access and server farm infrastructure necessary to coordinate larger development teams and more complex games. Likewise, investment in software processes that improve efficiency through the release cycle is key.
While this does sound a bit like Agile and Continuous Integration methodologies, CD extends them beyond the developers’ desktop through to production (or at least some staging area close to production).
Continuous Delivery in practice
This need for speed places a burden on development and release processes, impacting everyone from designers to developers, and artists to operations staff. So how do companies keep on top of this? There are a myriad of books, white papers, webinars and tutorials that all dig deeper into what makes for successful CD, but here’s a summary of what- in my opinion – turns the theory into something that really works:
Think beyond the code
It’s not all just about “the code.” In fact, with Continuous Delivery all of the elements of a product need to be consistently versioned from development to deployment. Your assets can include video, audio, models, documentation, configuration scripts, binaries, etc. If these additional artifacts are not controlled alongside the rest of the game, you may be releasing incomplete or inconsistent applications, leading to a poor customer experience.
Automate
The goal is the ability to make changes, updates or adjustments very quickly and safely, while minimizing introduction of errors. A unified continuous pipeline enables automation at every step of the process, so that failures can be sent back to the development team for correction rapidly and efficiently. It is always faster, easier and cheaper to fix an issue on the developer’s desktop than after it’s been handed off for late stage QA testing (or worse, to a customer). Automating processes also supports predictability and repeatability, which are core tenets of Continuous Delivery.
Make it all visible
The benefit of general, organization-wide visibility is that people can learn from each other based on their contributions and it becomes easier to predict and measure the likely impact of updates in the future. Sharing a common view of the assets ensures any potential conflicts are found early, not at the last minute before shipping to customers. Monitoring and reporting provide the best opportunity to improve visibility.
Track every change
Best-practice tracking ensures that all changes and interdependencies that are delivered as a complete release, making debugging easier and that the software actually running in production is exactly what it should be.
A single source of truth
Jez Humble, one of the ‘founders’ of the Continuous Delivery movement, cites version control as essential to successful CD. Why? Because it creates a single unified repository for everything, one that makes it easy to see what happened where and when, then roll back if necessary. When considering a version management system, the things to consider here could include: what tools and platforms does it need to support or integrate with? What about distributed teams and size of repository that the version control system needs to handle?
In summary, while the right support systems are important, adopting a CD ‘culture’ in a business is essential. When it works well, Continuous Delivery is a highly practical way for games studios or any enterprise – regardless of size – to tackle that perennial challenge: how to get value out of the door as quickly as possible, but without compromising on the quality (which can lead to unhappy users). When you feel the need for speed, CD is already here … whether or not you believe it’s the ‘next big thing’.
You can get a free copy of Perforce’s new ebook “5 habits of successful Continuous Delivery Practitioners” here: http://info.perforce.com/continuous-delivery-five-habits-successful-practitioners.html