Few IT executives are unaware of the gains contemporary development practices can bring. Yet for large organisations there is a chasm between the reality of legacy bound divisions and the dreams of frequent, valuable releases. But even small experiments can demonstrate the benefits of Continuous Integration and Deployment.
You would be foolish to make a bet without understanding the odds, and nobody should invest without clarity of outcome and risk. Yet many large organisations still take blind leaps into multi-year process transformations destined to fizzle into nothing. Why take the risk?
Rare skills in specialist compartments can defy accountability
Like many large enterprises, one Australian Government department struggled to establish Continuous Integration and Continuous Deployment (CICD) practices in a complex, siloed, large-scale waterfall organisation. Rare skill-sets constrained delivery and it was unthinkable to move staff from existing projects to learn new techniques.
It was assumed that change meant a period of slow progress and confusion, and previous CICD initiatives had failed to produce results and had lacked dedicated resource. They had been set up to fail.
“Skill-based, dispersed teams had been blaming each other for delays, showed a lack of accountability and little work transparency. Initiatives that required cross-team collaboration stalled and failed, got bogged down in handovers and unknown priorities,” explains Hamish Armstrong, iQA (IntegrationQA) Senior Consultant and delivery coach.
Belief in short supply? Experiment
But iQA was determined to try something different. Having helped build an improvement vision, iQA consultants understood that commitment was vital for success.
Armstrong explains, “We worked to create shared responsibilities and build candid relationships with the resources directors. We needed to have the same conversation over and over again, ‘can I please have that resource’ so we can provide a better solution to this major problem you are having.”
Sitting and working together builds productive teams
IQA proposed co-locating a single team for two weeks to focus on CICD. It would provide a coach to support the team and give advice where needed. The approach would work only if a dedicated, multi-skilled team was available.
The two-week limit would show that CICD could be set-up in such a short period and demonstrate clear benefits. Results would be closely monitored and an open review would determine if the experiment had proven it was beneficial to dedicate staff to CICD, or if, under the existing context, CICD should be left alone.
“Every single area was challenged by the completely new way of working; challenging pretty much every norm that existed – especially in resourcing. The organisation was architected to be siloed, so getting full time people was one of the biggest challenges followed closely by our demand that we had everybody sit together,” says Armstrong.
And yet under Armstrong’s guidance, the co-located team quickly built a proof of concept CICD pipeline to automate deployments and testing. Because of the co-location and clear priorities, the team had ownership of its own deliverable, worked in tight iterations driven by fast feedback and built to well-defined acceptance criteria. (See box out: The technical stack)
Collaboration delivers outcomes and ownership
“Given the complexity and culture of the organisation, what we achieved was monumental,” Armstrong says. “I was told face to face by some of the major governance functions that they thought I was full of [deleted by editor]!”
In particular, the team was able to demonstrate:
- Faster delivery of a valuable changes
- Empathetic, positive relationships between team members
- Collaborative, co-located working added value faster and reduced risk
Previously sceptical staff and executives now supported the multi-functional team approach to development, and further investment in CICD.
“I learned not to underestimate the impacts culture and people have on delivery and the need to inspire and trigger intrinsic motivation and focus on outcomes,” says Armstrong. At a subsequent Showcase, iQA received executive support to expand investment in CICD subsequently leading to many more initiatives, each incrementally improving technical practice.
This two-week experiment laid the foundation for an enterprise grade CICD pipeline with high availability, infrastructure-as-code, self-service environments serving over four hundred developers. The rapidity of integration, automated testing and deployment, now taken for granted, has saved thousands of person-hours and streamlined the development portfolio.
Such low-risk, high-gain investment opportunities do not come along very often. When they do, they are worth exploring.
The technical stack
- Confluence for collaboration
- Jira for work item management
- Bitbucket for source control
- Jenkins for continuous integration
- SonarQube for static code analysis
- Nexus as artifact repository
- Docker containers
“For automated testing we worked with an existing test automation team who had built a framework using Serenity for test orchestration, cucumber for writing natural language tests and selenium as the screen driver.”