Desenvolvimento

21 jul, 2015

DevOps está matando a manutenção. Vamos comemorar!

Publicidade

O DevOps provavelmente não está matando os desenvolvedores, e essa é uma boa notícia, mas está mudando a forma como as pessoas pensam sobre o desenvolvimento – da execução de projetos para um foco em construção e execução de serviços. E, mais importante, o DevOps está matando a necessidade de manutenção ou engenharia de apoio, ou seja lá do que os gestores queiram chamá-lo. E isso é algo que todos nós devemos comemorar.

A colaboração em larga escala e a resposta rápida a mudanças no Ágil colocaram uma bala na cabeça do desenvolvimento offshore  feito por fábricas de software certificadas com CMMI nível 5. O DevOps vem ampliando a colaboração entre as equipes de desenvolvimento e equipes de operações e aumentando a velocidade de entrega de produção (até centenas ou mesmo milhares de vezes por dia), e usando o feedback real a partir de produção para conduzir as prioridades de desenvolvimento e decisões de design, tem puxado o plug sobre a ideia doente de que a manutenção deve ser feita por equipes de engenharia, juntamente com um help desk dedicado em algum lugar distante, a fim de obter acesso a recursos mais baratos.

Agile começou o trabalho. Devops pode terminá-lo

Enquanto as grandes empresas estavam ocupadas encontrando desenvolvimento offshore e testes de parceiros, o Agile mudou as regras do jogo sobre elas.

A codificação offshore e o trabalho de testes faziam sentido em projetos de grande escala com lotes de planejamento inicial e especificações detalhadas que poderiam ser entregues por analistas, programadores e testadores.

Mas o sucesso da adoção do Agile em muitas organizações, incluindo as grandes empresas, tornou a terceirização ou o offshoring de desenvolvimento um trabalho menos prático e menos eficaz. Em vez de uma análise detalhada e entregas documentadas, as equipes ágeis contam com colaboração massiva cara a cara com cada um e especialmente com o cliente, além de iteração e feedback rápidos. Tudo acontece mais rápido. Clientes mudam as prioridades e suas necessidades. Os desenvolvedores devem responder a isso, construir e entregar recursos mais rapidamente.

O trabalho em tempo intensivo com testes manuais e revisões são substituídos por testes automatizados e análises estáticas em integração contínua, programação em pares, revisão e melhoria contínua.

Neste mundo dinâmico, não faz sentido tentar um trabalho offshore. Você teria que dar muito retorno para economizar em custos de pessoal. Teleconferências em fusos horários e culturas diferentes, salas de equipes virtuais usando webcams, programação remota através de Skype… todos estes são compromissos que levam a mal entendidos, ineficiências e erros. Claro que você pode fazer um desenvolvimento offshore baseado em Agile, mas só porque você pode fazer algo, não significa que é uma boa ideia.

DevOps vai terminar o trabalho

Em DevOps, com entrega contínua e implantação contínua, as mudanças acontecem ainda mais rápido.Tempos de ciclo e tempos de resposta ficam mais curtos, de meses ou semanas para dias ou horas. E ciclos de feedback são prorrogados a partir do desenvolvimento para a produção, deixando todo o experimento da organização de TI e aprendendo e melhorando o caso de uso do cliente real.

Desenvolvedores devem colaborar ainda mais, não apenas uns com os outros, mas com os clientes e também com as operações, a fim de se certificarem de que o sistema está configurado corretamente e funcionando de forma otimizada. Isso não pode ser feito de forma eficaz pelo desenvolvimento com equipes de operações que trabalham em diferentes fusos horários. E não precisa ser.

Todos nós sabemos como a terceirização tem jogado trabalho fora. Em nome da eficiência, foram cortadas partes não-estratégicas do núcleo de TI e delegadas para outras empresas. Os CIOs amam essa estratégia por causa dos benefícios orçamentais. Enquanto isso, ela provocou milhares de conversas sobre o que isso significava para a terceirização de TI, para a economia dos países que adotam a terceirização e sobre as carreiras individuais, além das relações entre pessoas e empresas.

Mas acabou que levamos a terceirização para muito longe. Ela faz sentido para algumas funções, mas também pode significar a perda de controle sobre gestão, qualidade e segurança, entre outras coisas. Agora estamos vendo um monte desses grandes contratos sendo trazidos de volta, e a palavra do dia é insourcing. InformationWeek, DevOps: A nova terceirização

Linhas borradas

O DevOps intencionalmente desfoca as linhas entre os desenvolvedores e as operações, entre codificação e apoio. Engenharia é engenharia. O projeto de trabalho fica dividido em partes: características individuais, correções ou atualizações que podem ser concluídas rapidamente e enviadas para a produção o mais rapidamente possível. O trabalho de desenvolvimento é priorizado em conjunto com operações e tarefas de apoio. O que importa é o que é importante para o negócio, o que for necessário para que o sistema funcione. Se as necessidades de negócios precisam que algo seja corrigido agora, seus melhores profissionais devem estar lá para atendê-las, em vez de dá-las a algumas crianças ou enviá-las para terceirizados no exterior.

Em DevOps, os desenvolvedores são responsáveis ​​por garantir que o seu código funcione em produção:

Você construiu, então deve executá-lo.”

O que significa certificar-se de que o código funciona em produção, e fazer o acompanhamento para garantir de que ele está funcionando corretamente, diagnosticar e corrigir quaisquer problemas se algo deixar de funcionar.

Novos recursos, alterações, correções, atualizações, trabalho de apoio, implantação… tudo é feito pelas mesmas pessoas, trabalhando em conjunto. O que significa que a manutenção e o suporte recebem o mesmo foco da gestão como se fosse um novo desenvolvimento. O que significa que ninguém é preso em um beco sem saída ao sustentar um sistema no qual ocorra algum problema. O que significa que os clientes obtêm melhores resultados, quando precisarem deles.

Exceto para os sistemas legados de empresas que atuam no suporte de vida e manutenção, a forma como a maioria de nós pensa sobre isso hoje deve morrer em breve, graças ao DevOps. Isso por si só torna o DevOps muito valoroso para adoção.

***

Jim Bird faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://swreflections.blogspot.com.br/2015/05/devops-is-killing-maintenance-lets.html