When looking to optimize your application deployment cycle organizations often turn to buzzwords such as: CI/CD (Continuous Integration/Continuous Delivery), DevOps and invariably the different products/projects they’ve heard of that do this. In this buzzword blitz its a bit easy to get confused as to what does what. Today we are hearing: Jenkins, Kubernetes, Mesos, Ansible, Terraform, Jenkins, Travis CI, Github, etc. For people that come from a systems background with no development experience this can be a bit daunting.
As I’ve spoken to enterprise IT organizations as well as internally to Cisco account managers I can’t help but think how true the diagram that Simon Wardley created is (also, watch this great video from OSCON 2015):
Most enterprise customers are near, at, or past the last stage and are adopting. Some faster than others, but all of us know, we need to adapt. In the midst of this buzzword blitz I thought I would present a slide I’ve been sharing that shows what we are looking for when we talk about agile IT from a developers point of view.
You have to look at it as you would a factory assembly floor. On one side, you have the raw inputs coming in. These inputs are shaped into different components so that the end result is something amazing: A new car, an airplane, an iPhone, etc. All we are trying to do is optimize this assembly process. That’s the goal of manufacturing and the goal of agile IT.
Putting this in the IT world you have a developer with code as the raw input. On the other side is some amazing product that delights users. (Or at least gets them to want to use it and perhaps even pay for it). In the middle of these two points is friction. This friction has been bad for a long time, and has really bogged down our application development pipeline.
Agile, DevOps, etc is just lubricant. These development tools are lube. All you need is lube. People go to the cloud because they want more lube. In the TCO calculations I’ve done, it seems to always work out that using a public cloud is more expensive. People know this. So why do they go there? The two main reasons:
- Speed (more lube)
- Capabilities (more lube)
The issue is there isn’t enough lubricant in IT organizations. Developers and the IT organizations have two very conflicting goals. The developers want to create more instability by adding features and trying new systems. On the other end, IT organizations want to create more stability. (see the book Lean Enterprise for more discussion on this)
The other issue is that developers have won the battle of IT vs. Developers. Business knows they need to digitize to become relevant and stay competitive and they need creative developers to do that.
Going to the cloud, implementing agile IT methodologies is just lube to get things done faster. When people start company-dropping (like name-dropping but with new companies you may not have heard of) then you just have to remember its lube. You look at the pipeline and ask them based on the girl and the elephant picture above: How does this new product/project/company provide lube? From there its not to hard to understand how one of these things you may not be familiar with works.