Agile, waterfall, Scrum… the world of software development has its own catwalk of trends and the latest is Continuous Delivery (CD).
But this is no one-season wonder. Research by Evans Data Corporation across the UK and US found that over 60 per cent of companies are already implementing CD to one degree or another, including games studios. In fact, the games industry is ahead of the curve in adopting faster release cycles, even if they’re not necessarily using the Continuous Delivery label. This was underlined in a recent webinar, hosted by Perforce, that featured Ubisoft, WB Games/Turbine and Sony Computer Entertainment/Santa Monica Studio speaking on that topic.
Labels aside, if some industry pundits are to believed, Continuous Delivery is arguably the biggest shift in the way that software is developed and brought to market since web apps. 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.
So much for the hype: what’s it really about?
Continuous Delivery enables businesses 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.
So in practice, Continuous Delivery is potentially music to the games studio’s marketing department’s ears: accelerating time-to-market without sacrificing quality. It is about having working software that can in theory be released at any time and rather than one ‘big bang’, there are numerous software releases or improvements. There are, of course, games studios already doing this – especially the MMO online firms – but as a framework, CD formalizes what some pioneers are already doing and makes it accessible to any company.
Continuous Delivery is arguably the biggest shift in the way that software is developed and brought to market since web apps
Hang on, I hear some of you saying, doesn’t this sound a bit like Agile and Continuous Integration? To some degree, yes, but it extends them beyond the developers’ desktop through to production (or at least some staging area close to production).
Continuous Delivery in practice
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
Continuous Delivery is focused on more than just “the code”. In fact, 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, and so on. 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.
The goal is the ability to make changes, updates or adjustments very quickly and safely, while minimising 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. While not every activity can be automated, the more automation that can be introduced over time, the more rapidly and productively the release pipeline becomes.
Make it all visible
The benefit of general, organisation-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.
In its eBook Continuous Delivery: What it is and how to Get Started, Puppet Labs says: “Continuous Delivery is about shortening your release cycles, and that means shortening your test cycles. Doing that is a process of continuous improvement, so you need to continually monitor your testing environment. That lets you figure out how to improve it.”
Track every change
Traceability encourages best practices in development and deployment. 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. This is not the place to start plugging one version management system over another, but 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?
But while the right support systems are important, adopting a CD ‘culture’ is essential. When it works well, Continuous Delivery could be a very practical way for games studios – regardless of size – to tackle that perennial challenge: how to get games out of the door as quickly as possible, but without compromising on the quality (which can lead to unhappy users). Whether or not you believe it’s the ‘next big thing’, CD has to be worth a look.
Mark Warren is Marketing Director, Europe, for Perforce Software. Mark has over 25 years of experience as a consumer and vendor of enterprise development and configuration management products. Perforce’s products are used by more than 10,500 organisations worldwide, including 18 of the world’s top 20 games studios (plus numerous small start-up studios).