From Test-Driven to DevOps and PaaS

Over a decade ago one of the main practices that I looked for in teams were automated testing and continuous integration. If teams were able to do these well then it seemed like the “golden bits” would be ready at all times for Operations to deploy. Many teams were thrilled to have delivery from planning to local development to continuously integrated and then let Ops handle it from there.

Earlier in my career I had worked in a couple of companies where there was no separate Ops team. We had to deploy, manage, and maintain our own operational environments. I recognize now that not having the ability to take delivery from plan to operational made me feel uncomfortable.

Around a decade ago I started asking the teams I was working on to focus on “Push Button Release”. Even if we couldn’t access the deployment environment we would ensure that the number of steps to deploy our software was 1 or as close to 1 as we could possibly get. Our team should automate the deployment process as though we would have to manage the actual deployment ourselves. Not only that, we should also tend to the rollback deployment process in the same way. In fact, we created CI jobs that deployed and rolled back just to ensure that these automated scripts acted as expected after all the builds, tests, and packaging jobs completed.

A decade later our industry is tending towards new possibilities due to progressive and somewhat obsessive approaches revealed publicly by companies such as IMVU, Netflix, Etsy, and others. It is no longer enough for teams to hand off a validated build with a “push button” deployment script. Teams now run their own configuration management via Puppet, Chef, Ansible and Docker and are finding many different ways to manage the deployment environment configuration dynamically.

The next few years will bring many tools and platforms that will attempt to tackle the deployment environment configuration challenges such as service discovery, log aggregation, monitoring, alerting and notification, attached storage, security, policy management, data transport and more. It is an exciting time to see how we are progressing past automated testing and continuous integration and as an industry looking to automate all the way into operations. With the momentum of the DevOps movement and PaaS (Platform as a Service) innovation, this is an exciting time and I intend to be part of it as much as I can. Lets make the promise of DevOps and PaaS a reality.

Published by

Chris Sterling

Chris Sterling is Global Director of DevOps and Cloud Practices at Luxoft (, a 10,000+ person, $2B global technology solution provider with approximately 200 employees in the Pacific Northwest. Chris has an extensive technology, product management, process, and consulting background. Chris published the book Managing Software Debt: Building for Inevitable Change with Addison-Wesley in 2010 to provide a framework for teams and organizations to assess and manage debt in their software systems. Chris was a Certified Scrum Trainer with the Scrum Alliance for 8 years and taught thousands of people about how to apply Scrum effectively. Chris has successfully supported organizational transformation across multiple verticals with organizations of 10 up to 800 people. Chris co-founded a company in 2009 called Agile Advantage focused on solving portfolio management problems to leverage the value that Agile teams can deliver, which lead to a successful acquisition by Rally Software. He has spoken at many conferences and user groups on topics such as continuous delivery, software architecture, technology management, Lean and Agile processes, and Lean Startup. Chris has taught the “Advanced Topics in Agile Software Development” class at the University of Washington in the Agile Developer Certificate extension program. Chris brings his diverse experience and deep passion for technology when discussing topics such as Continuous Delivery, Cloud Native architecture, DevOps, Lean and Agile. Follow me @csterwa or get LinkedIn with me at