Amazon saves millions of dollars through rapid A/B testing. Facebook painlessly releases new builds every day. HP has reduced firmware development costs by 40%. All thanks to improvements in software development that PGS Software experts often preach about on IT conferences, software talks and workshops.
History has a way of dealing with wasteful processes. For many centuries, sending a message to someone involved hiring a messenger or breeding trained pigeons. At best, it took days or weeks for the message to reach its destination. At worst, the message was lost together with a messenger.
Technology solved this problem. We have created a telegraph, followed by telephone, e-mail, texting and instant messaging. Suddenly we can send words to anyone in the world – and it seems rather obvious.
Similar disruptions happen all the time: streaming services replacing music CDs, teleconferences replacing business travel. These disruptions share one thing in common. They cut the time and effort needed to deliver something somewhere (be it a latest bestseller to your bedside table or a business pitch to your foreign customer).
In IT, a disruption like that started a couple of years ago, in 2008, when term “DevOps” was first used as an extension of Agile philosophy. It was soon popularized by events such as DevOps Days conference.
If you’re not entirely sure what DevOps is (and it’s nothing to be ashamed of, as it means a lot of different things to different people), here’s a short definition.
DevOps is a set of software development practices that help businesses win by ensuring close cooperation between developers, operations teams and QA specialists who all participate together in the entire software lifecycle, from design through development to software delivery and support.
DevOps scope is very broad. It touches specific technological solutions just as much as it touches business processes. It turns different groups within the company from finger pointers to close partners and removes organizational and infrastructural inefficiencies.
This approach has been embraced by many Fortune 100 companies in just a few years. It is also a very important topic for PGS Software. We find that our clients often want to talk about it, and that’s why we do our best to build up our team of experienced DevOps practitioners.
Recently one of our top experts, who is also our Head of Programme Delivery – Krzysztof Rolak – spoke about DevOps during the Polish-Swiss ICT-Sector Meeting in Rapperswil, Switzerland.
One of the most important parts of his presentation? Our organic, personal experience with DevOps, Continuous Delivery and other practices that grew in recent years on the foundation of Agile.
While DevOps is a general philosophy with a set of suggested practices, Continuous Delivery is one of its practical applications. Its explicit goal is to significantly shorten the development cycle and allow for smaller, rapid software deployments.
Continuous Delivery began to form as an answer to new requirements in IT. In particular:
- Growing importance of time-to-market
- Software releases being painful, risky and time-consuming
- Excessive and repetitive manual work required for each release
Continuous Delivery achieves its goals through removing inefficiencies from software delivery pipeline and through automation of all repetitive aspects of each deployment. The specific level of automation depends heavily on the project and its technology, though usually it includes automated integration, quality control, deployment and infrastructure management.
Testing new approaches in practice
At PGS Software, we have kept our eyes on new software development paradigms such as Continuous Delivery from the very beginning. We were building our knowledge base and waiting impatiently for the first project where we could put this knowledge to good use.
A right project finally came by in early 2012. It was ePoints – a very ambitious modular platform including an online loyalty program, a price comparison engine, various product databases and e-commerce solutions, all with millions of real users and transactions.
This scale made traditional deployments too slow. Being unable to deliver new features at the right pace was very dangerous in a competitive and fast changing market that ePoints was operating in.
Our solution? Gradual and careful move towards Continuous Delivery.
We’ve started by creating a cross-functional product team that was making heavy use of Scrum. We have steadily migrated the entire platform to Amazon Cloud, while implementing an automated build process. We’ve also automated acceptance, integration, performance testing and many other tasks, gradually achieving a level of full Continuous Delivery. You can find more information about our work in this video.
The measurable results
As a result, despite huge traffic and database of over 6.5 million products, we’ve managed to reduce QA workload needed for each deployment from 400 to 30-40 hours. This cut down the development cost by 40% and reduced infrastructure costs by over 50%.
And the best part? Right now we haven’t had a bug on live server in over a three months, thanks to bite-sized deployments with a plethora of carefully designed, automated tests.
These results look great as presentation bullet points, but there is one thing that we need to emphasize. It was not a quick and easy process. Implementing DevOps principles and setting up high-tech automated solutions such as Continuous Delivery requires a gradual change of company culture and business processes just as much as it requires a lot of technical experience. During this project – and others that followed it – we’ve learned there are no one-size-fits-all fixes and that every specific project offers different challenges.
No comprehensive “DevOps for Dummies” guide has so far been written. Now you know why. To achieve desired results, you need to have a great team of experienced DevOps practitioners with a mixture of right technical skills.
Fortunately, we’ve got this part covered.
Looking into the future
Is DevOps the future of IT?
It’s hard to tell, though over time specific DevOps practices will certainly trickle down to almost every software development project. The “2014 State of DevOps” report by Puppet Labs shown it’s already happening. High-performing IT organization are quickly embracing DevOps practices and reaping substantial benefits.
In the meantime, a new wave of “Smarter DevOps” concepts is already on the horizon, making heavier use of virtualization and the cloud. Experts also agree that there is a growing need for more standardized processes and official IT certification covering various DevOps related skills.
We will certainly watch these developments with interest, as we keep investing in our team, and as we keep preaching about DevOps to businesses in our region. The huge interest we’re seeing during events such as the Rapperswil conference is a sure sign it is worth it.