An introduction to the black art of DevOps
DevOps is a term that has been bandied about in web development circles over recent years but many people are still unaware of what DevOps actually is. I would say that DevOps is not really considered a specific role within a company. In fact, I’d be wary of a company asking for a dedicated DevOps Engineer as this would possibly suggest that they do not have dedicated SysAdmins or Senior Developers. Consider it a skill gained with experience, not a job title.
DevOps skills are largely communication skills
A Developer or Systems Administrator who considers themselves to have DevOps skills should ideally be the communication channel between the developers and the traditional IT departments. They will be able to understand technology and delivery frameworks in both sections and translate developer requirements into a list of tools and procedures that can be implemented by the IT/Ops team.
IT teams tend to be hesitant of change and like to have their servers trundling along nicely with minimal services and systems running on them. If developers had full access to these servers they would be installing the latest “cool trending buzzword” tools that had just been mentioned in last month’s Net magazine. The coding equivalent of hearing the tab from last month’s Total Guitar blasted out in your local guitar shop (no stairway, please!).
To combat this, the development team need to present a unified approach when asking for changes to infrastructure backed up by sound business reasons. If they make requests too frequently and are backtracked then the inevitable friction between departments can occur.
Now is the time for the for the DevOps skilled engineer to shine: they can present a unified front as a representative of the developers, they understand the underlying technology and possess the communication skills to garner opinions from their development team. When the operations team/IT stick their heels in, or throw their toys out of the pram, as they usually do, the DevOps elect possesses enough technical knowledge to understand their hesitations, discuss alternatives and fight for the interests of the developers in true political style.
DevOps requires taking a high-level view of the organisation
Another possible reason for the friction between operations and development is that the two disciplines often come from different project management methodologies. Development teams nowadays tend to strive towards Agile principles which allow them to adapt and react to changes whereas I think it’s fair to say that most IT services structures and processes tend to be more rigid and undergo a much more strict Change Management process.
The benefits of having the teams working together, via the DevOps bridge, can be seen when they agree on the direction that the product should be moving. Those possessing DevOps skills can be the catalyst that pushes the correct technologies into the workflow with minimum resistance, giving benefits to the end user and added value to the end product.
It’s all about experience
My professional career has bounced about from delivering web advice as a customer service agent for a utilities website, to second line support, to web development, to lecturing; from Windows, to Linux, and every associated technology in between. In previous interviews I have been asked why I haven’t specialised in a certain technology but my answer has always been, half jokingly, “I’m a jack of all trades and a master of none”. Now larger companies should embrace these general technologists as the key to a cohesive, successful delivery of a tech solution.