Small Steps Toward Full Automation
Software Development Manager
I worked in a large organization that operated in a heavily regulated environment where uptime was critical. Conventional wisdom had embedded a mindset that fewer changes meant lower risk, while the business wanted to become more reactive to the marketplace.
A small number of pilot delivery teams were tasked with moving toward a continuous delivery approach, but the teams initially found it difficult to gain traction. Automated functional testing and deployment were easy to get started with, but the teams found it difficult to automate for such parts of the pipeline as security, configuration, and infrastructure, which other internal teams historically owned.
Continuous delivery requires cultural adoption of the principles across the organization. This is especially important in areas of the business not traditionally used to adopting the continuous delivery mindset. Specialist infrastructure teams, for example, were still used to putting major changes expected to boost performance in production first. Our initial approach was to try to obtain buy-in from across the organization by reinforcing the benefits and principles of continuous delivery, but it’s easy for people to brush this message off without real cultural change. We realized that empowerment and ownership with those who encounter the pain of manual processes would help. We built role-combined delivery teams that were encouraged to take full ownership of their own delivery pipelines and that worked to automate as much as possible. Small steps toward continuous delivery in fully automated testing and deployment helped to increase the frequency of and our confidence in our releases.
As we refined our immature pipeline, it helped to shine a spotlight on areas that were outside the scope of the existing pipeline; teams began to challenge the existing processes. The quick wins and early steps had helped to initiate a cultural shift, which in turn helped all areas of the organization understand what we were trying to achieve. When we had a common understanding of what we wanted the result to be, we were able to consider new approaches for automating the parts that remained. Continuous delivery in some environments can be a long road; don’t be afraid to start with small, incremental steps that demonstrate value, and use that to build momentum.