Release Management no mundo real

Daniele Rodrigues dos Santos
3 min readJan 12, 2020

--

Este é o primeiro de uma série de artigos em que pretendo compartilhar a experiência real de migração de um método tradicional de desenvolvimento de software para metodologia ágil.

Meu foco não é explicar como é a dinâmica de trabalho em times pequenos mas como coordenar as atividades para entregas a nível organizacional.

A empresa relatada neste case é uma multinacional. Há alguns desafios no gerenciamento dos diversos projetos: os times estão alocados em países diferentes. A comunicação depende de alinhamento de agendas e precisa ser muito efetiva.

Contexto

As equipes de desenvolvimento eram divididas em equipes de produto. Cada equipe era responsável pelos testes de verificação de qualidade e entrega ao cliente final.

As equipes eram livres para identificar o método mais adequado de trabalho e calendário de entregas.

Apesar da interdependência entre os produtos, havia pouca comunicação entre os times.

Listo aqui alguns problemas que recorrentes:

· Falta de testes integrados: erros encontrados em produção facilmente reproduzíveis gerava prejuízo de reputação do time técnico;

· Entrega parcial de funcionalidades: devido à falta de comunicação e planejamento conjunto, times oficializavam a entrega de funcionalidades enquanto o desenvolvimento ainda estava em andamento em outros times;

· Falta de padronização dos processos de validação de software: alguns times priorizavam testes manuais, executando um escopo de validação reduzido devido as limitações de tempo, falta de padronização de documentação não permitia o compartilhamento de planos de testes com outras equipes, etc.

Finalmente, alguns times utilizavam a metodologia “cascata”, ou seja, o tempo de adoção de novas funcionalidades e correção de problemas era excessivo e nem sempre atendia as necessidades do cliente.

Modelo Proposto

Criamos o time de Release Management para centralizar o planejamento de entregas e padronizar os processos de qualidade. Definidos que todos os times deveriam seguir metodologia ágil. As equipes foram divididas em squads.

O time de Release Management é constituído por um coordenador de projetos e engenheiros de qualidade.

O que é release management?

Release management são processos de gerenciamento, planejamento e controle da geração dos pacotes de software em cada estágio do desenvolvimento.

Nosso time de release management tem como missão garantir entregas com alto nível de qualidade, respeitando as datas acordadas com o cliente.

Para isso buscamos automatizar o máximo possível de tarefas.

Nos próximos posts sobre o relacionamento estreito das nossas atividades com o time de devops.

Organização das entregas: sprints quinzenais

Toda entrega oficial é realizada apenas pelo time de release management.

Sendo assim, os times de desenvolvimento precisam incluir correções e novas funcionalidades nos sprints quinzenais.

A figura a seguir descreve as atividades de cada dia de sprint:

Release Management — Sprint

Com a criação do time de release management conseguimos alguns benefícios significativos:

· Melhoramos a comunicação entre os times;

· Conseguimos criar um plano consolidado evitando entregas parciais;

· Melhoramos os processos de testes, estabelecendo um ciclo contínuo de validação, análise de resultados e implementação de melhorias;

· Diminuímos o tempo de espera do cliente para receber novas funcionalidades e atualizações.

Nos próximos posts continuarei a detalhar os nossos processos e aplicações no mundo real.

Até breve,

--

--

Daniele Rodrigues dos Santos

Computer engineer, project manager, world citizen Interests: Technology and Society