I feel like overnight everyone has started talking about
DevOps. As a Senior Program Manager for DevOps at Microsoft, I even have DevOps
in my title. But why now? Why is DevOps one of the hottest topics? It is because it hurts the most now.
I was always taught and believe you should fix what hurts
most first. Historically, the inability to produce code that our users wanted
within budget and in a timely manner was the biggest pain. Development took months, if not years, and at
the end of all that time and effort, what we delivered was not what our users
expected. Our development process had to
be fixed first because that was what hurt most then.
Because the process of software development was so bad, the
quality of the code was also in question.
Buggy code forced operations teams to build barriers between developers
and the environments upon which their code ran.
Every change had to be approved by numerous people. The deployment of the
code had to be documented and handed off to an operations guy to execute. This information may have been accurate at
some point, but is now out of date. The
deployment of software was a ritual that required all hands on deck, staying
until the middle of the night, and forced people to be on call. The code had to be frozen and everyone had to
help get the code deployed. Development
and operations teams had to come together and determine which machines were
available, what changes, if any, had to be made, what files had to be copied
where, and a laundry list of other items.
The configuration and deployment of the code and infrastructure was an
entirely manual process. To try and
protect themselves from system outages, the organization actually further
slowed the process.
Agile, TDD, extreme programming, Scrum, and Kanban have
changed the way software is developed and enable development teams to add value
very rapidly. However, many teams
struggle to deliver that value to their customers. The process of taking the output of the development
team and deploying it to environments to share with others can be a challenge. Our
new style of development magnified this problem because we wanted to deploy as
soon as we saw value in our product.
However, our deployment process could not keep up. After fixing development, what hurt most was
deployment.
I see a future where DevOps will go the way of
Agile and Continuous Integration. It
will be something we used to talk about but now we expect to be there. It will be an afterthought. What keeps me up now is figuring out what
will hurt most once DevOps goes the way of CI.