Ciclo de Vida Associado ao RUP, Cascata, Evolutivo, Prototipagem ou Incremental… Não importa o modelo escolhido, é comum observar CIOs angustiados com a sensação de que o ciclo de desenvolvimento de software em seu departamento é lento e improdutivo, de que a equipe está gastando demais com o projeto e de que existem tarefas que poderiam ser facilmente enxugadas do processo.

As crescentes pressões do mercado por entregas mais rápidas, aperfeiçoamento de desempenho, menores custos e flexibilidade nos projetos exigem padronizações e implantação de uma sistemática de trabalho mais eficiente na TI das empresas. Chega de projetos superdimensionados, caros e repleto de documentações de imenso esforço e pouca utilidade.

Neste post, vamos mostrar como agilizar o ciclo de desenvolvimento de software e tornar sua equipe muito mais produtiva. Acompanhe:

A baixa produtividade das metodologias tradicionais no ciclo de desenvolvimento de software

A metodologia tradicional de desenvolvimento de software — também chamada de metodologia “pesada” ou “orientada à documentação” — fazia sentido na era embrionária dos mainframes. O acesso aos computadores era limitado e não havia ainda as modernas ferramentas de apoio na construção de softwares, como depuradores, analisadores de códigos e sistemas de controle de versão. Fazia sentido, sobretudo, em uma era em que a concorrência era escassa e as demandas internas, controláveis.

Em um momento como o descrito acima, o excesso de burocracia, o foco nos processos, nas documentações prolixas e as entregas tardias (que eram sucedidas por constantes alterações) não eram percebidos como fator crítico na TI das empresas. Mas a baixa produtividade desses métodos antigos custava e ainda custa caro às organizações, e isso começa a vir à tona.

A entrega dos projetos no prazo, com a qualidade e o budget previstos

O The Standish Group publica bienalmente o Chaos Report, documento que mensura o percentual de projetos em TI que obtiveram sucesso. A edição mais recente, de 2014, revelou:

  • que 31,1% dos projetos foram cancelados antes de serem completados;
  • que 52,7% dos que ainda sobrevivem vão custar 189% a mais do que o estimado originalmente;
  • e que apenas 16,2% dos projetos de TI — incluindo desenvolvimento de softwares — são entregues no prazo, com a qualidade estimada e o custo planejado.

Há algo de errado na sistemática de trabalho da área de tecnologia.

As premissas que devem ser internalizadas

  • Os requisitos não são 100% conhecidos no início do projeto. Dê à sua equipe uma orientação incremental;
  • é preciso trabalhar com máquinas virtuais para dividir um só ambiente de trabalho em múltiplos cenários, permitindo a colaboração coletiva e simultânea;
  • o cliente pode e deve participar do processo de desenvolvimento;
  • o trabalho com Sistemas de Controle de Versão Distribuídos protege a equipe contra falhas nos servidores. Repositórios remotos também facilitam o trabalho com diferentes grupos simultaneamente, abrindo espaço para organização de distintos tipos de workflow;
  • a prototipagem na nuvem permite a simulação mais fiel do futuro ambiente em que o aplicativo rodará, facilita melhorias e permite maior interação com o cliente;
  • divida os problemas em produtos menores, de modo que a execução iterativa e incremental garanta a entrega regular e gradual do software. Integração entre equipes de desenvolvimento e operações é fundamental.

Perceba que estamos falando de mudanças de postura, deixando de lado práticas obsoletas para obter resultados mais robustos com as metodologias ágeis de desenvolvimento.

E, se o assunto é agilidade, impossível não citar o impacto que o DevOps traz na redução do ciclo de desenvolvimento de software e na melhoria da qualidade de um projeto. Veja:

As metodologias adotadas para a agilização do ciclo de desenvolvimento de um software

Scrum

O Scrum é um processo de desenvolvimento iterativo e incremental, utilizado sobretudo no desenvolvimento de software. No Scrum, os projetos são divididos em sprints (ciclos), dentro dos quais são agrupadas inúmeras atividades.

De estrutura simples, o foco dessa metodologia é a entrega de software que atenda às necessidades do negócio em questão, eliminando burocracias e desperdícios. Toda essa mentalidade resulta em aumento da produtividade e redução do ciclo de desenvolvimento.

Sustentadas nas premissas de transparência, interação e adaptação, muitas das características do Scrum são relacionadas com a filosofia Lean, o conjunto de estratégias ligadas à redução de desperdício do Sistema Toyota de Produção.

Extreme Programming

O Extreme Programming (XP) foi criado no final da década de 1990 e se tornou sucesso por auxiliar profissionais de TI a desenvolverem softwares melhores, em menor tempo e com custos reduzidos. Os 5 valores fundamentais dessa metodologia são:

  • comunicação;
  • simplicidade;
  • feedback;
  • coragem;
  • e respeito.

O XP centraliza suas atenções no escopo do projeto, recomendando priorização de atividades que agreguem maior valor ao negócio. A ideia nessa cultura é a de levar ao extremo as boas estratégias na engenharia de software.

DevOPs

Para quem não está muito familiarizado com o termo, DevOps é uma cultura de desenvolvimento de software que visa integrar plenamente equipes de desenvolvimento, testes e produção na busca por um workflow com alto nível de complexidade e deploys contínuos.

Com maior velocidade na entrega de versões, sincronia entre equipes e maior interatividade com o cliente, as chances de sucesso são muito maiores e as de erros, muito menores. Entre outras vantagens da cultura DevOps, destacam-se:

  • integração entre equipes: fim da competição entre equipe de infra e desenvolvedores;
  • infra mais ativa: participação mais intensa da equipe de infraestrutura em todas as fases do projeto, o que reduz custos com retrabalhos e garante maior qualidade e velocidade nas entregas;
  • aumento de produtividade;
  • monitoramento: sincronização das equipes ajuda no gerenciamento mais eficiente das ações desenvolvidas;
  • maior segurança e estabilidade: as soluções passam a ser entregues com maior estabilidade e melhor desempenho.

O Brasil como a 4ª principal referência em DevOps no mundo

Colocando por terra um dos maiores mitos do DevOps, é importante frisar que essa cultura de desenvolvimento funciona perfeitamente com outras metodologias, inclusive as mais conservadoras (como ITIL). Essa capacidade de trabalhar com distintas metodologias em uma equipe é o que se chama atualmente de TI Bimodal.

Talvez por todas essas vantagens, estudo publicado em 2016 revelou que o Brasil é a 4ª principal referência em DevOps no mundo. Segundo a pesquisa, 16% das empresas brasileiras tiveram sucesso na adoção dessa cultura, resultado que deixa o país atrás apenas dos Estados Unidos, da Índia e da Suíça.

A principal diferença entre o DevOps e as demais metodologias ágeis é que, enquanto XP e Scrum estão mais focados nas entregas em si, o DevOps vai além, buscando harmonizar os trabalhos entre os diversos segmentos de um time de TI para obter resultados mais robustos, assertivos, de baixo custo e de alta qualidade.

Compreendeu a importância de mudar estratégias para reduzir o ciclo de desenvolvimento de software? Então siga a GAEA nas redes sociais e receba as melhores dicas para transformar a TI de sua empresa: estamos no Facebook, no LinkedIn, no Twitter e no YouTube!