Ontem li um texto em que o autor dizia ter se descoberto um profissional DevOps após participar de um evento, sobre DevOps, e comenta que as palestras foram sobre Jenkins, Git, Docker, CI, … Que ele já trabalha há alguns anos com algumas dessas ferramentas e em seguida discorre sobre todas as outras que já usou desde Vangrant, Puppet, Git… até linguagens, SO’s, servidores de aplicação, etc… etc…
Seria ele então um profissional DevOps?
Profissional generalista X especialista
Por volta dos anos 2000 falou-se muito sobre o profissional generalista, aquele que conhecia um leque diverso de assuntos relacionados a sua profissão. Este é bem valorizado por conseguir entender cenários diversos, comparar entre as soluções disponíveis a que melhor se adequa ao cenário. Em TI podemos dizer que um generalista de redes, por exemplo, conseguiria montar uma rede na plataforma Windows ou Linux e até mesmo híbrida. Um desenvolvedor generalista além de conhecer diversas linguagens, pode conhecer diversos paradigmas, ele poderia decidir que orientado a objetos não faria sentido em um cenário e que usar uma linguagem funcional seria muito melhor.
O generalista parece ser o perfil ideal para uma empresa não? Mas ele saberia resolver um problema no core de uma instalação Linux ou ele saberia otimizar profundamente o uso de funcional em uma aplicação? Talvez não… Nesse caso precisamos do especialista.
O profissional especialista provavelmente dedicou mais tempo trabalhando com uma tecnologia específica, ele até pode conhecer uma outra, mas ele sabe mais sobre uma delas, quanto mais experiente profissionalmente mais especialista esse cara pode se tornar, ele não só vai saber o melhor daquela tecnologia, como o pior, e isso vai tornar possível que ele quebre regras e é nisso que está o seu valor.
Só ferramentas?
Voltando ao texto que li, o autor simplesmente relacionou várias tecnologias, e deixou no texto de uma maneira subliminar que ele seria um profissional DevOps… ou seria simplesmente um profissional generalista?
Que é generalista é um fato, porém ele poderia ser também um profissional de DevOps, por mais estranho que o termo possa parecer? No meu entender não vejo relação entre saber um punhado tecnologias diversas e estar alinhado com o mindset de DevOps. Apesar de um generalista ser muito bom para DevOps, seria só o conhecimento de ferramentas o que iria garantir estar nessa classificação?
Profissional DevOps
DevOps resume-se a ferramentas? Se instala DevOps? Existe um servidor DevOps? Não! Não! Nada disso!
DevOps está alinhado com o Manifesto Ágil, lembra-se?
Indivíduos e interações mais que processos e ferramentas
Software em funcionamento mais que documentação abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano
- Saber ferramentas não é o foco, e sim tudo o que está destacado: responder as mudanças, evoluir o seu ambiente, trazer melhores soluções; colaborar com o cliente, se o cara quer uma mudança é importante para ele; software em funcionamento, é preciso comentar? Ou papel tem valor de negócio maior do que o cliente ou usuário utilizando a aplicação?; indivíduos e interações, essa para mim é a mais importante, colocar o indivíduo acima de tudo, do processo, da ferramenta, pois sem ele, não faz sentido o que você está fazendo.
DevOps
Em outro post escrevi sobre a substituição do acrônimo ALM por DevOps… eles não são a mesma coisa, um não substitui o outro, o primeiro não é a versão enterprise corporativa do outro, e sim DevOps está contido no ALM.
E mais que isso, DevOps é mindset, você pode ter ALM e não ter DevOps, você terá o processo e a ferramenta, mas talvez não tenha a liga que fará isso tudo funcionar: cultura com uma liderança enriquecida.
Cultura
Minha palestra no DevOps Summit deste ano foi: DevOps: Muito mais cultura do que ferramentas (veja abaixo). Nela eu falei sobre os tipos de cultura encontradas em muitas empresas por aí. Por exemplo a Cultura da Culpa, que tem como característica disseminar conflitos e desconfiança no ambiente de trabalho, os colaboradores não assumem riscos ou responsabilidades, e culpam uns aos outros pelas falhas. Em um ambiente como o descrito não é possível existir DevOps, por mais ferramentas que você tenha!
Mudar a cultura de uma empresa não é fácil, talvez seja quase impossível, pois esta é o que define a empresa! Está no DNA! Uma empresa que não tem uma cultura que permita priorizar o indivíduo mais que processo, não conseguirá ter essa integração de desenvolvimento com operações, sempre existirá a separação, duas gerências, duas metas, quando não tem a MINHA meta.
Mudar… é possível?
Sempre é possível mudar, basta saber o quanto se quer investir, persistir e brigar por isso… infelizmente, nem todos irão conseguir.
Emmanuel Brandão