DevOps promete quebrar as barreiras entre desenvolvedores e administradores de sistema, mas seu sucesso depende da cultura e da flexibilidade da empresa.
Steve Ropa, treinador ágil na VersionOne, explicou recentemente em seu blog que DevOps é aquele cenário incomum no qual trazer excelência é um problema tanto técnico quanto humano.
Steve diz que DevOps se refere a muitas soluções técnicas. Muitas dessas práticas são bem compreendidas como sendo a base do DevOps. Itens como integração contínua são conhecidos há bastante tempo e precisam de um servidor de integração contínua, bem como da concorrente automação de testes unitários e de aceitação para fazer valer a pena essa integração contínua. Isto também requer uma integração forte com o sistema de controle de versão, para que tudo tenha registro de versão.
Ropa menciona que fora essas práticas técnicas, devemos também nos focar nas pessoas, na colaboração e na mentalidade para uma bem sucedida implementação de DevOps.
Precisamos de pessoas para realizar essas práticas. Trazer as operações para a sala da equipe requer perfil e disposição para mudar que pode ser bastante difícil de se gerar. Trata-se de uma grande mudança no pensamento.
Um eBook da Rackspace descreve a mentalidade DevOps. O eBook traz opiniões sobre DevOps de diferentes líderes técnicos. Kevin Behr, autor e Diretor global de TI na HedgeServ, diz que DevOps é uma combinação de sistemas técnicos e sociais.
Sem cruzamento funcional e flexibilidade, DevOps simplesmente não vai funcionar. Não dá para comprar DevOps em uma prateleira. Algumas facetas tem que estar posicionadas para que o DevOps funcione, e o fator número um é ter uma cultura corporativa na qual ele possa prosperar. Basicamente, se trata de um sistema social e técnico - um sistema tecno-social, e o que o DevOps faz é equilibrar mais o lado social do que o lado técnico, do que tem sido no passado.
Behr disse que um dos elementos chave para tornar DevOps um sucesso é garantir que ele seja parte do plano organizacional. Empresas que querem ser bem sucedidas com DevOps tipicamente fazem a transição se distanciando de gerenciar tarefas para gerenciar fronteiras multi-funcionais. Senão, DevOps pode se tornar uma otimização local.
Em uma entrevista ao VMblog, Jez Humble, consultor principal da ThoughtWorks Studios, fala sobre DevOps. Ele disse que DevOps não é apenas uma ferramenta, mas uma mentalidade.
DevOps is the organizational mindset that enables continuous delivery - a focus on everybody working together to improve development performance measures such as throughput while at the same time increasing stability and reducing mean time to restore service.
DevOps é a mentalidade organizacional que torna possível a entrega contínua (continuous delivery) - um foco no qual todos trabalham juntos para melhorar as medições de desempenho do desenvolvimento como vazão, ao mesmo tempo em que aumenta a estabilidade e reduz o tempo médio para restaurar os serviços.
James Kenigsberg, Diretor de Tecnologia da 2U Inc, descreve no eBook os componentes essenciais do DevOps como sendo:
- Automação: a automação garante que o processo seja repetível e confiável. Ela padroniza a execução da tarefa para que ocorra da melhor forma possível todas as vezes, sem desvios de código revisado por pares para melhorar os processos para toda a equipe;
- Transparência: a transparência faz com que funcionários desses grupos olhem profundamente o que os outros estão fazendo, melhorando a comunicação e os processos de negócios para todos;
- Talento: funcionários talentosos privilegiam as necessidades de negócio, eficiência e automação em detrimento do seu conhecimento técnico sobre como o hardware funciona, e não separam TI dos desenvolvedores. Antes de se aprofundarem na investigação de um problema, eles conversam com os companheiros de trabalho que possam ter resolvido esse problema no passado.