I posted a lengthy reply to a blog entitled “Devops Consulting: Why I Don’t” (essentially “devops doesn’t mean what you think it means, stop using it badly, there’s no such thing as a devops consultant”, which I disagree with since that’s what I’m trying to become!) so thought I may as well blog it as well to keep any discussion going. Your thoughts are appreciated.
To me a devops consultant is someone who is knowledgeable in many things from the entire length of the development lifecycle; like value stream mapping, impact mapping, fishbone/5 whys retrospectives, multiple development methodologies, various test automation frameworks, various build automation frameworks, various environment automation frameworks, release management tools, various reporting and monitoring frameworks, as well as the business knowledge to know how to put it all together to identify the best mix of things to suit a given company who is struggling to gain business benefit from their projects in a timely manner.
Not necessarily being an expert at hardcore technical depth in all of those areas, but knowing which tools to take out from the toolbox for which job.
I agree that the term devops is ambiguous and hugely incorrectly overused – mainly due to it sounding much like a person instead of a culture – but that doesn’t mean that the term can mean something that is a set of skills a consultant can have.
Recently I’ve started to think that it could be used in a similar fashion to “agile”; you could affix it to existing disciplines to expand their meaning:
devops engineer – someone who knows about implementing a CI process using build automation, packaging, and environment automation
devops tester – someone who knows about building testable software right from the idea initiation through development, defect tracking and reporting, test automation, and the resulting feedback loop
devops developer – bit trickier; possibly someone working on building or expanding the automation tools, as opposed to an application developer?
devops consultant – someone who can be dropped into a company, assess their processes, people, and technologies, and work out what changes would need to be made in order to achieve better throughput, where to make the changes and recommend which technologies to use (without necessarily being able to implement the changes themselves, but having the network of skilled devops-** people who can).
That’s my understanding of it anyway, Environment automation is one part of a big term – and may not even be the right answer for certain companies anyway.