In three recent cases, 3gamma and Novatrox have worked with clients embarking on their DevOps journey. Each case is from a large organisation with significant legacy footprint. A common theme is the ambition to improve time-to-market, increase throughput and reduce complexity. Although each case illustrates a different starting point and different approaches, they all show a gradual move to a similar operational model, with a stepwise approach to allow the organisation to adapt and change and find its own path.
Case 1: Starting a DevOps journey in financial services – Bridging the gap between development and operations
The organisation, a large financial services company in Sweden, had a complex and extensive IT environment with components and software developed over many decades. The pace of business change was accelerating resulting in an ever increasing inflow of new elements and changes to the IT environment. Interdependence between components were high, making change impact analysis increasingly cumbersome. Similar to many of its peers, this company struggled with the question “How do we enable an accelerating pace of change while maintaining and improving our level of control and stability?”.
Moving to DevOps through increased collaboration and continuous improvement
The company realised that a key success factor for DevOps would be a cultural and organisational shift in both the business and IT side of the organization. It would also require a new mindset and behaviour that would take a long time of hard and dedicated work to put in place. Yet the shift needed to get sufficient momentum to start rolling and a set of initial improvements was initiated. This provided both management and staff with time to understand the benefits of DevOps and an opportunity to take smaller and more manageable steps without creating turmoil in the entire organisation.
The company focused on setting up cross-functional teams within IT consisting of technicians working with development, maintenance and operations. Since the company had an IT-environment with a high degree of interdependence, the teams were not directly responsible for a full product to the end-user, rather a set of features or services adding up to a product or process. The teams worked with one backlog populated from multiple sources. Each team had a product owner facilitating the population and prioritisation of user stories. To create coherent deliveries and enable the team and team members to focus their attention on one thing at a time, much effort was put on the allocation mechanisms and focus on team delivery and team capacity.
To prioritise their work in an efficient and effective way, the influx of new requirements needed to be managed in a structured way. Great care was taken to understand the interdependence between teams and enable the communication and collaboration between teams.
Important enablers to a successful DevOps implementation included automation and the decoupling of application components. Starting with testing automation and dedicating a portion of the team’s capacity to improvement efforts, a continuous improvement journey was initiated. This enabled an iterative approach to establish a foundation and constantly improve the DevOps team’s efficiency –allowing the organisation to learn and evolve their way of working.
Case 2: Implementing DevOps at a retail company – Agility requires increased collaboration
Within the retail industry, as in many other industries, the rate of required changes is increasing at a rapid pace combined with a complex integration of supporting functions. A major retail company in Sweden was struggling with keeping up with the increased pace of change. The company was working according to a classical waterfall development approach with sub-optimal communication between development, quality assurance and operations teams. Their primary challenge was to increase throughput while maintaining quality.
Moving to DevOps through Scrum and automation
DevOps comprises many components where the aim is to continuously improve these components. The road towards DevOps went through the implementation of an agile project methodology. In the first phase, the development teams and quality assurance were brought closer together into scrum teams.
The second phase focused on bringing the operations team closer to the development team (both from a physical and organisational perspective) to better manage the increased workload through improved communications between development, operations and technical support. This provided operations with a better understanding of the needs of the development teams and vice versa. Furthermore, operations were able to earlier understand upcoming requirements, which led to shorter deployment cycles.
To further improve the effectiveness of the organisation, a DevOps-team was put in place, whose purpose was to support and improve the delivery pipeline by implementing automation and setting best practices and standards. By gradually moving from waterfall to scrum, extending scrum and increasing cross-functional collaboration and automating, the company was able to shift its way of working and improve throughput.
Case 3: Creating a deployment pipeline within retail and manufacturing – Automation makes life easier and faster
A major Swedish retail and manufacturing company had started implementing DevOps, but was still struggling with infrastructure provisioning. Although the company successfully had improved collaboration between development and operations, the lengthy processes related to server provisioning, network configurations, firewall settings, load balancers and monitoring still required improvement.
Improving DevOps through automation and technology transformation
To address the lengthy processes, a Cloud Management Platform (CMP) was implemented. This allowed automated management of public, private and hybrid cloud environments. Using a CMP enabled the creation of generic and specific blueprints with regards to server sizing, networking, firewalls and storage. On top of this, continuous deployment, integration and operations was added. Now, instead of weeks or months, new pre-configured environments could be provisioned within minutes depending on the amount of components being loaded.
Starting your own DevOps Journey
These three cases show there are different ways to start a DevOps journey. However, there are some parallels that a company needs to keep in mind to be successful:
- An organisation needs to be prepared to break traditional thinking of software delivery, fusing software engineering and IT operations.
- High-performing teams is the key factor. That means things like building a strong teamwork culture, driving continuous improvement and creating well defined feedback mechanisms.
- A repeatable process for the key activities in your value chain and automation where possible (e.g. testing and deployment).
- Patience and determination. Change takes time and everything can´t be done at once, why perseverance is essential.
In addition, companies need to focus on removing obstacles, ensuring a modular architecture, and acquiring the necessary third party capabilities as well as integrating these into the delivery. A DevOps journey affects the core of IT and its interface towards the business; such a cultural, structural and organisational transformation demands time and attention.