Mudanças radicais ocorrem com muito mais frequência no setor de tecnologia da informação do que na maioria das demais indústrias. A velocidade dessas mudanças pode ser devido a falhas nas atuais estruturas organizacionais, habilidades e processos de TI. Por exemplo, o aumento da TI "nas sombras" - usuários que contornam recursos internos de TI por acreditarem que vai custar menos ou que o trabalho será realizado mais rapidamente - é uma consequência da incapacidade da TI em responder à demanda de negócios diante de mudanças radicais. É o Darwinismo na prática: adaptar ou morrer.
A hierarquia é a base da estrutura organizacional da maioria das empresas. Mas essas hierarquias não se saem bem diante de mudanças radicais. Mesmo com executivos competentes, o tempo gasto para uma hierarquia converter uma estratégia em entregas táticas limita a capacidade de grandes empresas se moverem rapidamente.
É compreensível que muitas empresas de TI de médio e grande porte tenham sido criadas com organização hierárquica. Essas hierarquias têm importância vital na empresa como um todo. No entanto, diante da "consumerização" da TI, da computação móvel, do Big Data e da nuvem, uma estrutura organizacional tradicional de TI é um gargalo - e um acidente prestes a acontecer.
A cultura DevOps
Antes da década de 80, os trabalhadores de linhas de produção automobilística eram tratados como macacos acerebrados. Eram processos altamente repetitivos, que não davam oportunidade para que o resultado do produto final fosse alterado. Então, a indústria automobilística sofreu uma forte interferência: o Japão começou a produzir carros acessíveis e de alta qualidade para o mercado norte-americano. De repente, Detroit havia deixado de ser o único protagonista.
Foi reconhecido que uma linha de produção era a chave para a produção de produtos de alta qualidade. É claro que houve outras mudanças necessárias, como a redução de custos com matérias-primas e a definição de uma cadeia de suprimentos que permitia que trabalhadores parassem a linha de produção para resolver questões de qualidade. Mudanças como essas possibilitaram a recuperação da indústria automobilística norte-americana.
Há uma lição nisso para área de TI. Os executivos hoje precisam reconhecer os administradores de sistema, desenvolvedores, operadores de datacenter, etc, quanto à sua formação e conhecimento especializado; mas no passado os executivos viam esses papéis da mesma forma que os executivos das fábricas de automóveis dos anos 80. A pressão para o cumprimento de cronogramas muito apertados e a falta de voz no processo de entrega terminou facilitando a implantação de sistemas instáveis e inutilizáveis nas empresas. Tudo isso resultou em usuários insatisfeitos, menor produtividade e em oportunidades perdidas.
Diante das preocupações constantes sobre a capacidade de TI em atender a demandas do negócio e às grandes mudanças no cenário econômico, é de se estranhar que poucas mudanças tenham ocorrido na maneira como a área de TI é organizada. Se a TI está esperando que a alta gerência aborde essas questões, faz sentido o impasse em que estamos. A resposta precisa vir da própria área de TI. Chegou a hora de parar de esperar que o negócio promova as mudanças em TI. A mudança precisa vir de dentro; é hora de adotar uma cultura de DevOps.
Das muitas mudanças críticas trazidas pelo DevOps, talvez as mais importantes sejam as culturais. A cultura do DevOps é representada pela dissolução da hierarquia interna, uma mudança no sentido da meritocracia, da orientação a serviços, da gestão de serviços de ciclo de vida e, o mais importante, da agilidade. As culturas de DevOps prosperam diante de mudanças, lutando contra gargalos e paradas. Produzem, com recursos humanos limitados, entregas de alta qualidade. Não há barreiras políticas para compartilhar informações e responder às falhas inevitáveis do sistema. Onde antes havia nós e eles, passa a existir uma equipe.
Práticas do DevOps
Complementando as mudanças culturais, existem práticas e mudanças operacionais que acompanham adoção do DevOps. Essas mudanças podem ser organizadas em categorias: gestão de ciclo de vida de serviços; automação e orquestração; governança. Vamos examinar cada uma, começando com a gestão de ciclo de vida de serviços.
As organizações tradicionais de TI adotam muitas técnicas para a entrega de serviços para o negócio. Esses serviços são normalmente organizados em torno do gerenciamento de desktops, aplicativos de negócio e operações de data center. E não é incomum ver cada grupos seguindo seus próprios processos e métodos para desenvolver e manter serviços. Com sorte, há pelo menos algumas ferramentas comuns de serviços de infraestrutura, como help desk e emissão de bilhetes - mas mesmo esses serviços comuns têm sido implementados de forma redundante com base no tamanho da empresa.
O DevOps procura normalizar processos comuns para o desenvolvimento e a manutenção de serviços por toda a empresa. Grandes organizações às vezes, seguem metodologias padronizadas para normalização de processos, como ITIL, mas esses padrões tendem a ser usados como diretrizes e formas de verificação de conformidade, ao invés de serem tratados como passos na direção da entrega de valor. Um aspecto fundamental para o serviço de gerenciamento de ciclo de vida é que a mesma equipe esteja envolvida e trabalhando juntamente desde a concepção do projeto - para que o sistema seja compreendido por todos os envolvidos. Além disso, o envolvimento de várias partes interessadas, desde o início de um projeto permite a entrega de maior qualidade com menos interrupções, uma vez que são evitados problemas óbvios.
A automação e a orquestração são o que permite ao DevOps fazer entregas com maior qualidade, de forma mais veloz e com menos recursos humanos. Todos os recursos e indivíduos envolvidos no projeto desempenham algum papel em automatizar as etapas do ciclo de vida do gerenciamento de serviços. Exemplos incluem gerenciamento de patches, construção contínua, provisionamento de máquinas virtuais, implantação de aplicações e gerenciamento de identidade, além de backup e monitoração. Quanto maior o grau de automação, mais eficiente é a organização do DevOps. A automação também é elemento fundamental para a disponibilização de auto-serviços para a empresa. Permitir que o negócio produza mais, faz com que as equipes se sintam mais protagonistas e torna a TI mais responsiva às suas necessidades. A TI ganha liberdade para construir e automatizar outros serviços. Cria-se um cenário ganha-ganha.
Por fim, a peça que faz todas essas engrenagens girar é a governança, que é um componente fundamental do DevOps. À medida que as barreiras que separam os departamentos de TI desabam, surge um desejo natural de ser o proprietário de alguma coisa. Como a maioria dos profissionais de TI não teve contato com esse tipo de ambiente, pode ser inicialmente incômodo ficar responsável pelo nível de serviço e não por um componente de serviço. Aqueles que, antes, controlavam como o armazenamento era alocado em uma SAN, por exemplo, agora devem seguir processos rígidos para a definição de alocações, que serão analisadas por outras equipes que compartilham este ambiente de armazenamento. A governança estabelece regras de como tudo deve funcionar, evitando que ao ambiente se torne um filme de faroeste.
Gerenciamento de recursos do DevOps
Como mencionado, surgem questões relacionadas a recursos humanos ao adotar um ambiente de DevOps. Com diferentes tipos de prestação de serviços, cada um demandando uma gama de habilidades, a empresa precisará perceber a necessidade de capacitações e mudanças nas remunerações e planos de carreira. Engajar em uma iniciativa de DevOps sem reconhecer essas necessidades seria loucura: ou a iniciativa estará fadada ao fracasso, sendo culpado o DevOps em vez de culpar o descaso com que a iniciativa foi adotada.
Aqui está um breve resumo do que esperar em relação a gestão de mudanças em recursos:
Variação em habilidades - com o foco em servir o cliente, a TI vai precisar de líderes capazes de se comunicar com os clientes e gerenciar suas expectativas. Precisamos de pessoas que tenham a percepção da satisfação do cliente e que possam traduzir as preocupações de seus negócios em iniciativas tecnológicas. Além disso, com foco em automação e orquestração, habilidades de programação serão obrigatórias para todos os profissionais de operações e desenvolvimento.
Agregação - Especializações em temas como redes, armazenamento e gerenciamento de servidores serão difíceis de incorporar no mundo DevOps. Seriam muitos interesses individuais, sem uma compreensão global de como a infraestrutura precisa operar para suportar a prestação de serviços. As habilidades de infraestrutura devem acompanhar as tendências de hardware em operações de datacenters, com todas convergindo para um único indivíduo que detém o conhecimento dos componentes essenciais de infraestrutura.
Remuneração e Carreira - O DevOps, como já vimos, é uma meritocracia. Isso significa salários e oportunidades de crescimento profissional baseados nos pontos fortes do indivíduo e o quanto contribuem com a equipe. Isso também significa encontrar maneiras de manter e promover profissionais talentosos que nem sempre irão desempenhar bem em um papel de gestão. Para algumas grandes empresas, em que os maiores salários são dados a cargos gerenciais, esse pensamento pode representar um obstáculo. É indispensável que as áreas de Recursos Humanos, Jurídica e Financeira sejam incluídas na transformação para o DevOps, e que compreendam tais implicações para o sucesso desta adoção.
Conclusões
Diz-se que insanidade é fazer a mesma coisa da mesma forma e esperar resultados diferentes. A área de TI tem apoiado as necessidades das empresas, por aplicações e gerenciamento de dados, por mais de 40 anos - utilizando sempre a mesma estrutura organizacional que o resto da empresa. No entanto, no século 21, em que uma em cada duas pessoas tem um smartphone e uma em cada quatro tem um dispositivo móvel avançado, como um laptop ou tablet, as demandas da TI se tornaram muito superiores à sua capacidade. Enquanto isso, os orçamentos de TI estão sendo reduzidos continuamente e os valores gastos para "manter as luzes acesas" já superam 75% do orçamento total. Suportar essa tendência requer uma abordagem diferente para a prestação de serviços de TI.
A TI não é uma despesa adicional, é um parceiro imprescindível na condução dos negócios. Uma organização de TI ágil e responsiva não pode operar dentro de uma arquitetura hierárquica de "comando e controle" e levar muito tempo para converter estratégias em entregas de qualidade. Talvez o mesmo possa ser dito para a empresa como um todo; mas certamente nem todas as áreas da empresa estão sendo forçadas por pressões externas a responder tão rapidamente quanto a área de TI - isso sem perder o foco na atuação como a engrenagem que permite ao negócio se mover mais rápido. O DevOps é a próxima encarnação da TI como um mecanismo ágil, rentável e eficiente para a entrega de aplicações e gerenciamento de dados no século 21.