Struggling to adopt continuous delivery or DevOps in a large enterprise? Perhaps you should visit an airport.

Compared to other industries, IT is young. Industries or fields of study such as medicine, law, and engineering have been practised for centuries whereas IT is just a few decades old. It is for this reason I often find that the solutions of the problems facing the IT industry can often be found in other mature industries.

In recent times, large IT organisations or enterprises have been or are attracted to the concept of continuous delivery (CD) and/or DevOps. This isn't surprising, what CIO would not want to be able to deliver value (often in the form of IT changes releasing new functionality) to the market quicker and more reliably? From my perspective, enterprise IT folk want to be able to deliver the same great outcomes and further demonstrate how they provide value to the business. 

There are various challenges facing larger IT enterprises/organisations in adopting CD and/or Devops, most of which are already mentioned in various other blogs. The one challenge I often see for IT staff, who have traditionally worked in large IT shops with ITIL based change management practices, is that in order to truly learn and understand these concepts - seeing is believing. What I mean is, some people need to physically witness (visual learning) or participate a practise (kinesthic learning) before they can truly learn & understand it. An example of this type of learning could be as simple as visiting another IT organisation who actively practises CD and/or Devops. However, visits are often short and not all of the concepts can be attained by the observers.

So how do these staff gain the new perspective or learn the new 'mental model' which will help them move from the traditional IT change management practices to CD and/or DevOps? Perhaps the answer lies outside of IT? 

When I pondered this question, I wondered what other industry has demonstrated the ability to implement large volumes of releases, to a single mission-critical environment quickly and reliably. My initial vision was air traffic control at a major airport. So why is this environment worthy of further exploration in regards to learning or adopting CD and/or Devops?



Airports:
1. release many, sometimes hundreds of, aircraft per day (i.e. support high volume of releases);
2. are required to manage the safe movements of thousands of people without loss of life or property (i.e. target of zero downtime or zero negative impact);
3. support aircraft of various types, sizes and functions (i.e. support releases by product teams with different objectives);
4. support airlines to meet the promised departure and arrival times of their customers (i.e. support product teams in meeting business needs on time);
4. manage a confined airspace (i.e. manage a single, shared production environment);
5. are able to manage unplanned emergencies (i.e. provide rapid incident response);
6. "generally" operate 24x7x365 except for airport curfews (i.e. provide very large release windows); and
7. maintain security to high standards (which underpins point 2).

I first published this post in February 2014 and since then there have significant developments in the IT industry. One of the most relevant developments in the context of this topic, has been the introduction of containerisation. Containerisation for applications works on the same idea & principles as containers on cargo ships and long haul aircraft. As Weinberger (2014) explains "Before containers, a ship (or aircraft) would have to account for hundreds or thousands of different goods on board, all of different shapes and sizes; with containers, transportation (airline) companies can now stack as many of the colorful boxes atop each other without the slightest concern for what's actually in them."

One of the most popular companies in the containerisation space is Docker. Docker is "an open-source project to easily create lightweight, portable, self-sufficient containers from any application. The same container that a developer builds and tests on a laptop can run at scale, in production, on VMs, bare metal, OpenStack clusters, public clouds and more" (Robinson, n.d.).

Containerisation enables aircraft to be updated (loaded with new passengers & luggage) and released quickly (point 1 above) and provides safe movements of passengers by securing the various types of cargo into pre-configured, modular containers securely into the aircraft (point 2 above). To read more on Docker, click here

I feel this is yet another example where the solutions of the problems facing the IT industry can often be found in other mature industries.
  

References:
Robinson, S. (2013). Retrieved May 22, 2015 from
https://footyntech.wordpress.com/2013/08/23/what-docker-is/ 

Weinberger, M. (2014). Retrieved May 22, 2015 from 
http://www.computerworld.com/article/2849619/contain-yourself-the-laymans-guide-to-docker.html

Comments

Popular posts from this blog

Employing value streams in Enterprise Service Management

Using the Lean Canvas for an IT solution proof of concept

Improving your IT service delivery and operations with ChatOps