We've got to maintain a certain level of 'street-cred'.

Blurring the Lines Between IT and Computer Software Development Part 2: DevOps

In a previous blog, we discussed the rigid thinking that defines much of traditional IT. The ITIL was explored as an example of where this thinking may come from, though the phenomenon is not specific to just organizations that have adopted ITIL practices. In contrast, we will now explore the growing philosophy of DevOps.

There have long been walls of separation between computer software development teams, software QA, and IT operations. Ultimately, we would prefer the representatives of these particular fields to be specialized and bring ideal expertise to their roles. In any organization that is delivering “shrink-wrap” solutions or embedded systems with long lead times, it is natural to maintain these disciplines across clearly divided departments. However, note that “shrink-wrap” software is all but dead and the functions of embedded systems are starting to integrate within mobile devices. What is going to become of these disciplines? Currently most organizations maintain much of the classic interplay between development, test, and IT, but almost all are looking to become more agile. Whether they adopt strict “agile” development is beside the point; what matters is that they are confronting the fact that mod ern applications often run 24/7, have millions of users, and are subject to strict SLAs. There is also the uncomfortable reality that it is sort of silly to test modern web-based production code in a validation environment – nothing a validation team simulates can accurately reflect the uncertainties brought on by the countless factors at work on the internet.

This is where DevOps comes into play. Though it has no formal definition, it is marked by professionals that have all the skills needed to code and test, have the analytical insight to deliver business value, and have the deep knowledge required to maintain systems. Not every organization has officially-designated DevOps professionals, but their job requirements are universally trending towards this model. Amazon CTO Verner Vogels has summed up the need for breaking down the wall of separation in software very nicely:

“The traditional model is that you take your software to the wall that separates development and operations, and throw it over and forget about it. Not at Amazon. You build it, you run it. This brings developers into contact with the day-to-day operation of their software. It also brings them into day-to-day contact with the customer.”

What is true for Amazon and other web giants usually becomes true for the wider IT world, meaning that it is time to start embracing DevOps.