localghost.io_

On devops at a project based shop

The term DevOps has many overloaded meanings so let me first state what I think encompasses the term DevOps: everything related to development but not directly to implementing the core product/project's functionality.

More concretely:

As you can imagine checking every item on this list of quality providing measurements is a massive undertaking. This is usually not scoped in product development let alone in project development. Yet each and everyone of this steps is a huge quality assurance indicator with massive value and if we are to take our trade seriously is something we should all be doing.

I tend to view this check list as shadow work: work that is implicitly implied but never explicitly mentioned.

From what I've seen it's the shops who develop products or maintain a single website tend to do better then project based shops who inherently have shorter development cycles.

A product shop has a continuous life-cycle which rather non-surprisingly makes way for continuous <anything> to creep it's way high on the agenda as they start to form obstacles.

A project shop has a very limited life-cycle, getting something out the door often trumps all and often rightfully so. The rather cruel catch 22 here is that especially these short life-cycle projects benefit the most from the devops checklist. Knowledge of the ins and outs of the moving parts of such a project are lost quickly. All the items on the devops serve as documentation as code and provide a warm welcome back for any developer picking up the project back up after a year or when doing SLA maintenance work.

Limited life-cycle is only one factor hindering project shops checking items off the devops check list. Having multiple projects means that each project comes with its own set of challenges further complicating the matter.

At my previous job at a project shop I helped standardize some of the devops check list and there I had the added benefit that all development happened in .NET on windows machines, the websites were hosted on in house windows servers and development happened rather linearly in SVN. This means that solutions for items on the checklist are reusable and learnings from one project can be transfered to the next. As a developer this meant that introducing new moving parts, say an exotic tech-stack is not something you can easily do. Even in this homogeneous development environment getting to check ALL the items off the list is quite an investment both financially and personally convincing everyone involved of the necessity.

At my current job at a bigger project shop, that prides itself on using whatever tech stack is best for the project and has quite an agile mindset, development happens on Windows, Linux, OSX machines and projects are hosted on the cloud with Google, Amazon and Microsoft or on private dedicated servers behind weird VPN arrangements and project spans range from 6 weeks to three years. On top of that some releases follow a strict sign off procedure by clients others can be released when we deem necessary. Some development is linear and is easily continuously integrated, some follow a heavy branching model.

This means that the knowledge on how to implement each item on the devops check list becomes very fragmented based on environment, language and framework choices, development model and release strategies. For an aspect of our profession already not high on the radar for many developers and managers this quickly becomes too much too handle.

The little dirty secret in our industry that in a lot of cases devops turns into shadow work at best, done in the spare hours of a project.

The big dirty secret is that in a lot of cases this shadow work is simply ignored. This can have many causes

I think the devops movement is great and more than just the new hip buzzword as it forces a flashlight onto the shadow work and gets it on everybody's agenda.

At @q42 colleague Mark van Straten was given 6 hours a week to improve our devops story and although Mark did an absolutely stellar job getting all the current and past projects to build and deploy automatically we really found that this is not a one man project and 6 hours a week is really not sufficient to take care of ALL the shadow work on the devops checklist.

Having fulfilled a similar role in my previous job Mark and I often debate to How's and Why's of devops and even-though we disagree sometimes on details we share the greater vision of the importance of this shadow work. So we recently called a meeting, <insert meeting bashing comment here> with fellow colleagues who also take an interest and came to the following conclusions:

One thing is for sure Devops work is a constant battle but as long it's a battle we are fighting we're on the right track.

Do you work for a project shop and are also fighting the shadow work let me know how you are coping in the comments!

Comments

Comments on this post are linked to this post's issue page on GitHub