Processes
As you will have noticed during the elephant exposure, one of the many problems most businesses suffer from are the processes that operate within them—many of which will be complex, convoluted, and deeply rooted. Now consider having to retain these processes while adopting CD and DevOps—as you can imagine, this would be far from an ideal approach.
For the adoption to be successful, you will need processes that are streamlined, efficient, and effective. They also need to complement and reinforce the positive culture, environment, and behaviors. For example, let's consider a typical example of an existing heavyweight process for getting a single-line code change through to a production environment:
OK, so this may be slightly over the top; however, it's not unusual—especially in large organizations and/corporates that strictly follow frameworks such as ITIL or similar. If you also consider that this represents the happy path version of the process, it's not hard to imagine the loops and hoops you would have to go through should any problems or defects be found during the various steps (normally, this will mean starting back at square one). All in all, this kind of process would not be conducive to the adoption of CD and DevOps nor would it be closely aligned to a positive culture, environment, and behaviors.
Now let's compare this to a typical CD and DevOps process for shipping a single-line code change:
Again, this is an over-simplified representation; however, when compared to the previous example, you can see the sort of process changes you'll need to implement. Not only is the latter process streamlined and optimized when compared to the former, but it also helps to encourage positive behaviors, such as collaboration and a sense of ownership.
As you can imagine, making radical and impactful changes such as these can be nigh on impossible without having a culture and environment that would support it.