Tudo o que você precisa saber para dominar o gerenciamento de lançamentos

By Kate Eby | 13 de June de 2018 (updated 16 de March de 2023)

Hoje, a engenharia de software é um ciclo rápido de desenvolvimento, teste, implantação e suporte de novas versões de software para plataformas cada vez mais complexas.

Embora a maioria das organizações não esteja se atualizando com tanta frequência, coordenar o desenvolvimento e o lançamento de versões de software representa uma tarefa cada vez mais desafiadora.

É por isso que o gerenciamento de lançamentos é uma disciplina crescente. Neste guia, você aprenderá tudo o que precisa saber sobre gerenciamento de lançamentos, incluindo as últimas tendências e dicas de especialistas. Você também descobrirá como lidar com o gerenciamento de lançamentos e implantações com a Biblioteca de Infraestrutura de TI (ITIL)/gerenciamento de serviços de TI (ITSM), Agile, entrega contínua, automação e outras abordagens. Modelos e listas de verificação gratuitos completam os recursos.

 

O que é um lançamento em engenharia de software?

Na engenharia de software, um lançamento é um software novo ou modificado e o processo de criação dele. Um lançamento constitui uma versão totalmente funcional do software e é o clímax dos processos de desenvolvimento e engenharia de software. As versões alfa e beta do software normalmente precedem o lançamento.

Embora os lançamentos das versões alfa e beta também possam ser chamados de lançamentos alfa ou beta, na forma singular, o lançamento geralmente se refere à versão final do software. Você também pode ver lançamentos chamados de lançamentos ou incrementos.

A maioria das organizações identifica lançamentos com um conjunto exclusivo de números ou cartas que são atualizadas em sequência. Este processo de nomeação é chamado de versão de software. Não existem regras em todo o setor para como esses identificadores exclusivos mudam de lançamento para lançamento, mas cada empresa segue de forma consistente seu próprio padrão interno.   

 

O que é o processo de gerenciamento de lançamentos?

As organizações melhoram a qualidade, velocidade e eficiência da criação ou atualização de software, concentrando-se no gerenciamento de lançamentos. Este é o processo de planejamento, agendamento e gerenciamento de um software por meio das etapas de desenvolvimento, teste, implantação e suporte ao lançamento. Técnicas como desenvolvimento Agile, entrega contínua, DevOps e automação de lançamento ajudaram a otimizar o gerenciamento de lançamentos. A velocidade desse processo aumentou recentemente, ao ponto de há vários anos a Amazon passar a marca de 50 milhões de implantações de código por ano, mais de uma por segundo.

O gerenciamento de lançamentos é uma disciplina relativamente nova na engenharia de software, mas também está crescendo com rapidez graças às rápidas inovações em tecnologia. Como disciplina, ele se baseia tanto no gerenciamento de projetos tradicional, focado nos negócios quanto no conhecimento técnico do ciclo de vida de desenvolvimento de sistemas (SDLC) e da Biblioteca de Infraestrutura de TI, um conjunto de práticas para o gerenciamento de serviços de TI.

 

Os objetivos e benefícios do gerenciamento de lançamentos

Feito com eficácia, o gerenciamento de lançamentos aumenta o número de lançamentos bem-sucedidos por uma organização e reduz problemas de qualidade. A produtividade, a comunicação e a coordenação são melhoradas e a organização pode fornecer software com mais rapidez, diminuindo o risco.

Essas melhorias significam que a equipe pode produzir repetidamente softwares de qualidade com tempos mais curtos de mercado, o que permite que a empresa seja mais receptiva ao ambiente operacional.

O gerenciamento de lançamentos também ajuda a padronizar e agilizar o processo de desenvolvimento e operações. A equipe implementa controles de lançamento auditáveis, criando, assim, um repositório para todos os lançamentos ao longo do ciclo de vida. Ter um processo único e bem documentado que deve ser seguido para todos os lançamentos aumenta a maturidade organizacional. O aumento da padronização e o foco no produto permitem que as equipes extraiam lições mais úteis da experiência e as apliquem em lançamentos futuros.

Os departamentos de operações apreciam o aumento da coordenação com os desenvolvedores porque há menos surpresas. Agora eles podem evitar sentir que um lançamento foi simplesmente "jogado sobre o muro" do desenvolvimento, deixando operações para combater incêndios e "remendar e rezar" por causa de prazos curtos. Há também mais oportunidade para resolver problemas de configuração entre o desenvolvimento e os ambientes operacionais.

Em suma, o gerenciamento de lançamentos divide as barreiras da equipe em várias funções em uma organização de TI. Como resultado, você pode melhorar a entrega de produtos de forma holística.

 

Gabriel Gutierrez

Gabriel Gutierrez, a Solutions Architect at Boeing and former Release Manager at Costco, says that when executing a release, it’s important to give adequate consideration to the impacts on other areas of the organization. “Companies must provide a common forum where changes are fully vetted and put through thorough architectural and design reviews that eventually lead to integrated testing. Cross-functional and technical reviews are essential to minimizing the inevitable pain after go-live. A smooth post-go-live operation is a critical success factor of any release,” he explains.

 

Um breve histórico do gerenciamento de lançamentos

O aumento do gerenciamento de lançamentos vem da mudança da engenharia de software de ofertas baseadas em projetos para ofertas baseadas em produtos. Sob o paradigma de desenvolvimento baseado em projetos, os desenvolvedores de software veriam cada lançamento como um projeto, não como um produto; o software totalmente desenvolvido sinalizou em grande parte o fim da função dos desenvolvedores.

Com o tempo, no entanto, o processo de desenvolvimento de software passou a se assemelhar mais ao ciclo de produtos em que os produtos recebem suporte, são melhorados e relançados repetidamente durante um longo período. Nesse quadro, o lançamento não era o objetivo final do desenvolvimento, mas sim um ponto de transição para suporte e revisão.

Com esse aumento da complexidade veio uma necessidade maior de coordenar as fases. É por isso que as práticas atuais de gerenciamento de lançamentos são inspiradas, em parte, pelos princípios do gerenciamento de projetos focado nos negócios, que se estende ao suporte pós-vendas e ao desenvolvimento adicional.

O gerenciamento de lançamentos faz parte da maior disciplina de TI de gerenciamento de mudanças, que lida com a turbulência inerente ao desenvolvimento de software, em que os requisitos das partes interessadas parecem infinitamente fluidos e o cenário de conformidade e regulação continua a mudar. Para navegar nesse ambiente, os processos de engenharia de software devem ser bem sincronizados e o gerenciamento de lançamentos ajuda a conseguir isso. (Nota: o gerenciamento de mudanças não deve ser confundido com a mudança organizacional, que é a reformulação da cultura, a rotatividade de pessoas e a reestruturação interna das organizações.)

 

Jen Dunbeck

A “common pitfall is disregarding the importance of a well-thought-out change management process,” says Jen Dunbeck, a release manager at automated IT services provider BitTitan. “A change control board's or change advisory board's significance cannot be underestimated in a release. A key function of their job is to help the organization assess risk and impact with impartiality. They also help root out technical dependencies that may not have been evident as individual contributions to the deployment,” she adds.

Para desenvolver o processo de gerenciamento de mudanças, pode ser útil ter maneiras padrão de propor mudanças de projeto e registrar mudanças à medida que elas são aprovadas e feitas. Insira o esforço baixando os seguintes modelos gratuitos para uma proposta de mudança e para o registro do gerenciamento de mudanças.

Modelo de proposta de mudança

Proposta de alteração

Uma proposta de mudança descreve o tipo e a escala da mudança, e muitas vezes é a primeira etapa de um processo de gerenciamento de mudanças. Descreve por que a mudança é necessária, os resultados e impactos esperados, o tempo e os recursos necessários e quaisquer outros fatores que precisem ser analisados. Este modelo também inclui espaço para acrescentar informações descritivas, bem como seções para calcular custos e benefícios.

 

  Baixe o modelo em Excel

 

Registro do gerenciamento de mudanças

Registro de gerenciamento de alterações

Um registro de gerenciamento de mudanças rastreia quem solicitou qual mudança e quando, o status da solicitação de mudança, sua prioridade e informações de resolução. Se você precisar de um registro mais minucioso, inclua outros detalhes, como o tipo e o impacto da mudança. Este modelo de registro foi projetado para acompanhar informações vitais para que as solicitações de mudanças possam ser facilmente priorizadas, abordadas e referenciadas posteriormente.

 

  Baixe o modelo em Excel

 

 

Como funciona o gerenciamento de lançamentos: uma visão geral

Nem todo software é criado igual. Dependendo da funcionalidade e do aplicativo do programa, o processo de engenharia de software varia em rigor e intensidade.

Por exemplo, o software projetado para uso em aeronaves passa por testes rigorosos. Você terá que criar uma documentação extensiva e implementar várias correções se não cumprir tolerâncias rígidas de desempenho. Requisitos funcionais e métricas de qualidade são rigorosos, e o software tem que passar por muitos níveis de aprovação antes de chegar perto de um avião.

Um processo de gerenciamento de lançamentos disciplinado ajudará a garantir que o software seja criado, testado e entregue de acordo com as estipulações das principais partes interessadas. A equipe verificará o software para ver se ele faz o que deve fazer e se está pronto dentro do prazo.

O gerenciamento de lançamentos combina os seguintes elementos em um repositório central:

  • Os imperativos comerciais de dar aos clientes o que eles precisam quando precisam
  • As tarefas técnicas de garantia e conformidade de qualidade
  • O gerenciamento de artefatos de software

A partir do repositório, os artefatos são liberados para um ambiente de produção de clientes para implantação de aplicativos. Assim, você pode pensar no gerenciamento de lançamentos como a cola que mantém juntas as tarefas interconectadas, mas distintas, que compõem a engenharia de software: design, desenvolvimento, teste, implantação, manutenção e requisitos de negócios e clientes.

Um lançamento abrange mais do que apenas as principais funções de engenharia de software. Embora os desenvolvedores obviamente vejam um lançamento como a entrega bem-sucedida de um produto acabado, existem várias atividades comerciais de suporte que também estão envolvidas, como treinar vendedores e equipe de suporte ao cliente e anunciar e comercializar o novo lançamento. Essas atividades precisam ocorrer em sincronia com o ritmo de lançamento, adicionando complexidade ao processo de gerenciamento de lançamentos.

Além disso, o gerenciamento de lançamentos não é apenas para software recém-projetado. O software modificado passa pelo mesmo processo para garantir que as partes interessadas obtenham o que querem.

O lançamento real pode ser feito manualmente ou, cada vez mais, pode ser automatizado, dependendo do grau de maturidade do processo de gerenciamento de lançamentos. (A Amazon usa um processo de lançamento automatizado para alcançar um novo lançamento a cada segundo. Historicamente, atualizações semanais, mensais e trimestrais têm sido mais típicas para equipes de desenvolvimento de software.)

Os lançamentos podem vir de várias formas diferentes: como um produto físico em uma caixa, como um download de um site ou servidor, como um impulso para um dispositivo de uma loja de aplicativos móvel ou como uma atualização perfeita para um aplicativo baseado na Web.

Todos os grupos de engenharia de software - sejam grandes ou pequenos e em todos os setores - usam o gerenciamento de lançamentos para suavizar o processo. Eles podem aplicá-lo a softwares usados internamente ou vendidos como produto. Grupos de engenharia de software grandes e pequenos empregam o gerenciamento de lançamentos em todos os setores e podem usar o software resultante para executar seu próprio produto ou sistemas, ou para vender como um produto para os clientes.  

Uma das abordagens de desenvolvimento mais propícias para o gerenciamento de lançamentos é chamada DevOps, um termo formado pela combinação de desenvolvimento e operações. Como o nome sugere, DevOps tenta aumentar a coordenação entre desenvolvedores e operações em engenharia de software usando uma combinação de automação e monitoramento em todos os estágios do desenvolvimento de software para  diminuir o tempo de mercado e melhorar a satisfação do cliente.

 

Termos-chave no gerenciamento de lançamentos

Para dominar o gerenciamento de lançamentos, é necessário que você entenda os termos comumente usados.

Ordem de trabalho de desenvolvimento: esta é uma ordem de trabalho para o desenvolvimento ou modificação de um aplicativo ou sistema de software.

Equipe DevOps: como o objetivo do DevOps é aumentar a coordenação entre as funções de desenvolvimento e operações, criar uma equipe separada torna o termo um equívoco. Apesar do nome, o termo geralmente se refere aos principais membros da equipe dos lados de desenvolvimento e operações que trabalham para coordenar as duas funções.

Ordem de trabalho de instalação: semelhante a uma ordem de trabalho de desenvolvimento, uma ordem de trabalho de instalação é para a instalação de um aplicativo de software, sistema ou componente de infraestrutura.

Proprietário do produto: o proprietário do produto em um projeto de desenvolvimento é a principal parte interessada. Ele geralmente representa a empresa ou os (eventuais) usuários do produto e define a visão de um produto.

Gerente de projeto: um gerente de projeto assume a direção de um único produto. Ele é responsável por definir o roteiro e a visão do produto e pela negociação dos produtos. Normalmente, as principais responsabilidades de um gerente de projeto não se estendem além de um único produto ou família de produtos intimamente relacionadas.

Lançamento: um lançamento consiste em uma ou mais unidades de lançamento.

Gerente de lançamento: a função do gerente de lançamento é planejar, coordenar, gerenciar e programar todos os itens que compõem um lançamento. Todos esses itens não precisam necessariamente ter origem no mesmo produto. Por exemplo, esse gerente também deve coordenar o trabalho em quaisquer outros produtos projetados para se integrar com o novo lançamento.

Política de lançamento: esse é um conjunto de regras sobre como implementar lançamentos no ambiente operacional ao vivo. Diferentes políticas de lançamento se aplicam a diferentes lançamentos, dependendo de fatores como impacto e urgência.

Registro de lançamento: esse tipo de registro documenta o histórico de um lançamento, desde o planejamento até o encerramento do processo de desenvolvimento.

Unidade de lançamento: esse termo se refere a um conjunto de itens de configuração que uma equipe testa e lança simultaneamente no ambiente ao vivo para implementar alterações aprovadas. Um item de configuração, por sua vez, é um componente de uma infraestrutura que está sob gerenciamento de configuração, que é o processo de garantir que os atributos e o desempenho de um produto sejam consistentes com seu design, requisitos e informações operacionais.

Proprietário do serviço: um proprietário de serviço assume uma responsabilidade de alto nível por um serviço de TI específico. Ele está menos preocupado com as operações diárias necessárias para entregar o serviço; essa é a função de um gerente de serviços.

Gerente de qualidade: um gerente de qualidade garante que um lançamento atenda aos padrões estipulados. Ele pode ter os gerentes de lançamento se reportando a eles.

 

Principais conceitos no gerenciamento de lançamentos

O gerenciamento de lançamentos às vezes é descrito como uma superdisciplina, pois envolve  supervisionar várias disciplinas interconectadas, mas distintas, observa o especialista em gerenciamento de configurações Salman Khwaja.

Uma das práticas centrais no gerenciamento de lançamentos é o gerenciamento de códigos, que é o processo de gerenciamento de alterações no código do computador. Usando módulos de código ou coleções de linhas de código, o gerenciamento de códigos simplifica e acelera o ato de fazer alterações no código, bem como outras atividades relacionadas a códigos, como manutenção e depuração. Um tipo de gerenciamento de códigos que constitui um aspecto importante do gerenciamento de lançamentos é o controle de versão. Isso se refere ao gerenciamento de código para diferentes lançamentos do mesmo software para fins de comparação e referência. O gerenciamento de códigos segue muitos dos princípios do gerenciamento de registros.

Para desempenhar sua função de forma eficaz, um gerente de lançamentos deve promover a facilitação e a colaboração, principalmente entre equipes, mas também dentro das equipes. Gerentes de lançamentos geralmente são profissionais experientes, por isso podem ser chamados a participar.

Processos e políticas são fundamentais para um gerenciamento eficaz de lançamentos. Os problemas devem surgir e quando isso acontecer deve haver protocolos para resolvê-los. O gerente de lançamentos também funciona como gatekeeper ou guardião do código de produção. Ele sabe cada vez que um artefato de código sai da organização.

Ao longo de uma série de lançamentos, é possível medir a produtividade e as métricas de rendimento para que a eficiência do gerenciamento de lançamentos se torne visível. As métricas comuns incluem coisas como velocidade e taxa de burndown.

 

O ciclo de gerenciamento de lançamentos

O gerenciamento de lançamentos normalmente segue um caminho claramente definido. Começa com a criação de um cronograma de lançamento em toda a organização. Algumas empresas podem lançar atualizações de software continuamente, mas outras preferem um cronograma definido. Em seguida, vem o agendamento do lançamento do produto ou da solução.

O gerenciamento de lançamentos começa na primeira fase do ciclo de desenvolvimento, quando o gerente de lançamentos recebe solicitações de alterações ou novos recursos. Após a aprovação da solicitação, a equipe projeta o novo lançamento e o planejamento começa. Os desenvolvedores criam o novo software. Após o desenvolvimento, o lançamento entra em teste e a equipe pode fazer modificações antes que o lançamento seja aceito. Depois disso, o lançamento passa para a implantação. Nesse ponto é disponibilizado para uso total. O estágio pós-implantação é o suporte, no qual bugs ou histórias de usuários que a equipe documenta aqui podem ser alimentados de volta no ciclo de desenvolvimento como material para um novo lançamento.

 

Release Management Cycle

Modelo de plano de lançamento simples

Gerenciamento Simples de Liberação

Use o modelo abaixo para um plano de lançamento simples. Para projetos especialmente complexos e de alto orçamento, a estrutura do plano de lançamento desenvolvida pelo Center for Medicaid Services, que pode ser baixado aqui, é uma boa referência.

Baixar modelo de plano de lançamento simples — Word

 

Desafios que o gerenciamento de lançamentos pode ajudar a abordar

Historicamente, muitas empresas não tinham processos para gerenciar o ciclo de lançamentos. No entanto, como os problemas podem representar um golpe no resultado final, com bugs e falhas custando muito tempo e dinheiro (bem como confiabilidade e reputação), o gerenciamento de lançamentos surgiu como uma disciplina para enfrentar alguns desafios comuns.

Algumas organizações lutam para implementar códigos desde o desenvolvimento até os ambientes de teste e produção e, embora isso possa ter menos impacto no resultado final, não é menos motivo de preocupação para a equipe de operações.

Em outros momentos, a estrutura interna de uma organização pode gerar conflitos entre as equipes, e o gerenciamento de lançamentos pode diminuir os atritos. Da mesma forma, quando há muitas equipes de entrega trabalhando em conjunto, cresce o risco de que o trabalho de uma equipe interrompa o de outra. Um processo eficiente de gerenciamento de lançamentos pode ajudar as organizações a evitar uma série de problemas.

 

Gerenciamento de lançamentos e DevOps em um mundo Agile

Organizações que baseiam seu desenvolvimento de software em princípios populares do Agile geralmente produzem lançamentos mais frequentes. A abordagem Agile para lançamento de software é chamada de entrega contínua, um método que visa criar código pronto para implantação a qualquer momento. Ela elimina quase completamente os estágios convencionais de integração e teste e automatiza o processo de liberação em ciclos muito curtos.

 

Jon Quigley

Software product development expert and author Jon Quigley of Value Transformation notes that studies have shown an inverse relationship between project size and success. He also says  research suggests that customers do not use 45 percent of developed features. These statistics argue for small, focused releases that prioritize features highly valued by customers. “The upshot of all of this has driven deliveries of software or development of increments of software that are small, the smaller the better,” he says.

Na entrega contínua, o gerenciamento de lançamentos continua sendo o conector crítico entre o desenvolvimento e a produção. O gerenciamento de lançamentos verifica a integridade do código e garante que ele funcione conforme planejado. Métodos Agile dividem silos frequentemente vistos com metodologias Waterfall, mas o Agile requer documentação completa, para que os processos sejam claros.

Gutierrez, da Boeing, diz que há muita confusão em torno da entrega contínua e outra prática popular, a implantação contínua. "A implantação contínua é o conceito de que todas as mudanças feitas na base de código serão implantadas quase imediatamente na produção se os resultados do pipeline forem bem-sucedidos. A entrega contínua é o conceito de que cada mudança na base de código passa pelo pipeline até o ponto de implantação em ambientes não produtivos. A equipe encontra e aborda problemas imediatamente, não mais tarde, quando planeja liberar a base de código. A base de código está sempre em um nível de qualidade seguro para lançamento. Quando o lançamento da base de código para a produção é decidido pela empresa", explica.

Para lançar a base de código de forma eficaz e eficiente para a produção, os gerentes de lançamento contam com três coisas: automação, mentalidade DevOps e integração contínua. A automação se relaciona principalmente com as funções de teste, enquanto a mentalidade DevOps melhora muito a coordenação entre desenvolvimento e operações (as pessoas de entrega e infraestrutura podem ser as mesmas) a fim de suavizar a transição potencialmente abrupta do primeiro para o último.

A integração contínua, por sua vez, é a prática de desenvolvedores atualizarem frequentemente suas próprias cópias de código de trabalho para uma linha principal - geralmente cerca de uma vez por dia. A integração contínua depende de um sistema rigoroso de testes automatizados e tende a eliminar erros rapidamente e acelerar o processo de mudança.

Modelo de plano de lançamento Agile

Modelo de plano de lançamento ágil

O planejamento de lançamentos Agile ocorre antes do primeiro sprint, para que você possa se concentrar nas metas de lançamento, recursos e alocação de recursos. Esse modelo de lançamento Agile permite listar todas as suas tarefas, atribuir cada tarefa a um sprint e calcular a duração com base nas datas de início e de término. Você também pode indicar o status de cada tarefa a partir do menu suspenso e definir cada meta correspondente.

Baixe o modelo em Excel

Modelo de plano de teste Agile

Modelo de plano de teste ágil

Em projetos Agile, a fase de teste é um processo dinâmico e iterativo destinado a garantir que você use as informações mais atualizadas para definir testes e evitar quaisquer mal-entendidos de escopo. Esse modelo de plano de teste fornece espaço para você acompanhar ações, resultados esperados, resultados reais e se o teste passou ou falhou.

Baixar modelo de plano de teste Agile — Excel

 

Gerenciamento de lançamentos com a Biblioteca de Infraestrutura de TI/Gerenciamento de Serviços de TI

O gerenciamento de serviços de TI é um superconjunto de atividades que as organizações usam para projetar, planejar, entregar, operar e controlar os serviços de TI que oferecem. Entre elas há um conjunto detalhado de práticas conhecido como Biblioteca de Infraestrutura de Tecnologia da Informação. Em organizações que gerenciam suas operações de TI usando ITSM e, especificamente, ITIL, o gerenciamento de lançamentos é guiado pelos princípios do ITIL.

Em sua forma atual, conhecida como ITIL 2011, o ITIL consiste em cinco volumes. O gerenciamento de lançamentos está incluído no terceiro desses volumes, o volume de transição de serviços, que diz respeito à prestação de serviços para uso operacional. Como você pode adivinhar, o processo de gerenciamento de lançamentos e implantações tem como objetivo "planejar, programar e controlar o movimento dos lançamentos para ambientes de teste e ativos". O gerenciamento de mudanças também está incluído no terceiro volume.

Os lançamentos em organizações ITIL ocorrem com muito menos frequência do que nas organizações Agile. Os processos de lançamentos no ITIL são gerenciados usando sistemas de tickets ITSM e não há tanta ênfase em processos automatizados de lançamentos. Isso não quer dizer que eles sejam menos eficazes. Organizações que implementam práticas de ITIL podem fazer muito mais do que aumentar a eficiência dos processos de lançamento. Elas também podem ter ganhos financeiros e aumentar o valor comercial dos serviços que oferecem.

 

Gerenciamento de lançamentos empresariais

O gerenciamento de lançamentos empresariais (ERM) gerencia o quadro geral dos lançamentos no nível organizacional de entidades com softwares grandes ou complexos, como sistemas de saúde, grandes empresas, universidades etc. O ERM lida com a coordenação de lançamentos individuais de software e como eles se encaixam nos planos, estratégias e calendário maiores da organização.

Por que isso é importante? Imagine uma organização que desenvolve sistemas complexos de software. Vários grupos de desenvolvimento trabalham em diferentes componentes desses sistemas grandes. Essa estrutura faz sentido internamente porque permite que os desenvolvedores se especializem, aumentem o foco e criem componentes peça por peça. Mas, em última análise, as peças devem convergir em um único sistema perfeitamente integrado. Sem um gerenciamento abrangente de lançamentos no nível empresarial, o portfólio de TI da organização não teria coesão.

O ERM permite que as organizações implementem grandes produtos de software que funcionam bem como um todo integrado, o que colabora para que elas façam isso com eficiência. Os esforços do ERM costumam exigir que muitos gerentes de lançamentos trabalhem em conjunto para que possam sincronizar os respectivos lançamentos.

Gerenciamento de lançamentos e as principais áreas de conhecimento do PMI

Em um artigo do ano 2000 apresentado no Seminário e Simpósio Anual do Instituto de Gerenciamento de Projetos, Franck Aguilh discutiu a realização emergente entre as empresas de desenvolvimento de software de que havia a necessidade de uma disciplina especializada que se concentrasse exclusivamente no gerenciamento de lançamentos. Esse papel seria desempenhado pelo gerente de lançamentos em vez do gerente de projetos, pois o gerente de projetos tem prioridades muito mais amplas.

Aguilh disse que o gerenciamento bem-sucedido de lançamentos é um processo que atinge quatro objetivos principais: implantação dentro do prazo, implantação dentro do orçamento, ter impacto insignificante sobre os clientes existentes e atender aos requisitos de novos clientes. Tudo isso mantendo em mente as pressões competitivas e os avanços tecnológicos. Ele também descreveu o gerenciamento de lançamentos como um processo que envolve várias "tarefas importantes" que devem ser executadas por "organizações" distintas.

O gerenciamento de lançamentos exige a coordenação entre muitos departamentos dentro de uma organização, cada um dos quais cumpre uma função especializada. As "organizações" de Aguilh vão desde vendas e marketing para R&D, operações e engenharia de sistemas até suporte ao cliente e jurídico.

"Um lançamento bem-sucedido requer sincronicidade entre departamentos", diz Dunbeck, da BitTitan. "Os desenvolvedores devem verificar o código nos lugares certos. A QA deve fazer verificações. As operações devem gerenciar filiais e preparar a construção para a implantação. Mas esses são apenas os componentes técnicos. Se você não tiver uma maneira de comunicar a mudança internamente, seus vendedores ficarão surpresos ao apresentar aos clientes demonstrações que têm recursos ou alterações de botão. Sua equipe de suporte não poderá responder às perguntas que chegarem e seus clientes não receberão as respostas necessárias se você não tiver comunicado nenhuma alteração a eles por meio de notas de lançamento, artigos da Central de ajuda ou semelhantes", enfatiza ela.

"A maneira mais fácil de resolver esses problemas é identificar com clareza as partes interessadas no lançamento e fazer com que se engajem com frequência durante todo o ciclo do projeto. Cada organização tem preferências de comunicação diferentes. Reuniões, um canal de bate-papo, uma página wiki ou apenas e-mail são boas maneiras de manter as pessoas informadas. A parte importante é identificar uma cadência e, em seguida, ficar com ela", conclui Dunbeck.

De acordo com a visão de Aguilh, o gerenciamento de lançamentos depende, em parte, da aplicação de princípios de gerenciamento de projetos a lançamentos de software. Estão incluídas aqui as principais áreas do processo de gerenciamento de projetos: início, planejamento, execução, controle e encerramento.

No entanto, Aguilh também posicionou nove processos específicos para o gerenciamento de lançamentos. A seguir estão as descrições desses nove processos, bem como a ordem em que ocorrem:

  • Solicitação de produto funcional (FPR): este é o mecanismo para um "grupo funcional" formalizar sua solicitação para que novos recursos ou funções sejam adicionados ao software.
  • Processo de documentação: a equipe coloca em prática protocolos de compartilhamento de informações para o próximo lançamento.
  • Processo de embalagem de lançamentos: durante esse processo, a equipe toma uma decisão sobre o que vai no lançamento final, com base em fatores como pressão de mercado, custo, receita, tempo de desenvolvimento e integração.
  • Processo de desenvolvimento/processo de controle de mudanças: estas duas etapas são executadas em conjunto e são autoexplicativas. Durante o desenvolvimento, portões de qualidade podem ser usados para indicar marcos no ciclo de desenvolvimento. O controle de mudanças continua em testes de laboratório e de campo, que verificam se a nova funcionalidade está funcionando como esperado e se ela afetou os recursos existentes.
  • Processo de treinamento: isso envolve treinamento da equipe de suporte técnico, do pessoal de vendas diretas e marketing e da equipe de telemarketing.
  • Teste de cliente: esta etapa acontece por meio de lançamentos beta para os clientes.
  • Processo de notificação do cliente: a última etapa antes da implantação envolve informar os clientes que um lançamento está próximo.
  • Implantação: a implantação em si é um processo em vários estágios que inclui pré-implantação, implantação real e pós-implantação.

Aguilh sugeriu que os processos de gerenciamento de lançamentos correspondem muito aos do gerenciamento de projetos. Por exemplo, FPR e embalagem de lançamentos são basicamente uma consideração do escopo e do planejamento, enquanto a qualidade corresponde à documentação, desenvolvimento, controle de mudanças e treinamento. A execução e o controle, por sua vez, correspondem a treinamentos, testes de clientes, notificação do cliente e implantação. Fechando, é claro, mapas para implantação. Torna-se evidente, portanto, que paralelos úteis podem ser traçados entre o gerenciamento de projetos e o gerenciamento de lançamentos e que um gerente de lançamentos eficaz precisa ter as mesmas habilidades que um gerente de projetos.

 

Processos de gerenciamento de lançamentos por etapas no ciclo de vida do desenvolvimento de software

Você viu como os processos de gerenciamento de lançamentos se alinham com os principais processos de gerenciamento de projetos. Agora, vamos ver como os processos de gerenciamento de lançamentos se alinham com as etapas do ciclo de vida do desenvolvimento de software (SDLC). Normalmente existem seis fases no SDLC:

  1. Coleta e análise de requisitos
  2. Design
  3. Implementação ou codificação
  4. Teste
  5. Implantação
  6. Manutenção.

 

Software Development Life Cycle

Durante o desenvolvimento, os gerentes estabelecem uma política de lançamento, um documento que define o escopo, os princípios e as metas finais para o processo de gerenciamento de lançamentos. Ele usa os objetivos estratégicos da organização para informar e orientar o processo de gerenciamento de lançamentos. Para ver um exemplo, dê uma olhada nas políticas de lançamento da Apache Software Foundation, que promove projetos de software de código aberto para o bem público.

Os gerentes de lançamento elaboram planos de lançamento com base na política de lançamento. Esses planos são diretrizes amplas para a implantação de vários lançamentos.

Durante a fase de design, o gerente de lançamento garante que os ativos de hardware e software que darão suporte ao lançamento sejam projetados e configurados. Então, a codificação começa.

Durante a implementação, os desenvolvedores criam e configuram o código. Durante os testes, os testadores testam o código em um ambiente operacional. Durante a implantação, a equipe lança uma versão ao vivo do software e a equipe de garantia de qualidade faz uma revisão de qualidade para ver se o lançamento atende aos requisitos estipulados. Se o lançamento for aprovado na revisão de qualidade, ele será validado e programado para produção; esse selo de aprovação é chamado de lançamento aceito. Se os bugs continuarem, a equipe rejeitará o lançamento. Um lançamento aceito tem um plano que cobre os detalhes da implantação e a empresa informa clientes e usuários finais sobre o próximo lançamento. O treinamento pode ser necessário.

As unidades de lançamento são implantadas em produção para lançamento completo. Algumas organizações optam por verificar a implementação nesta fase a fim de determinar se o lançamento será executado sem problemas quando for ao vivo.

Na fase de manutenção, os desenvolvedores fazem uma revisão dos problemas de lançamento e registro a serem resolvidos para o próximo lançamento.

Modelo de cronograma de gerenciamento de lançamentos

Cronograma de Gerenciamento de Liberação

Para deixar o cronograma claro para todas as suas atividades de lançamento, crie um cronograma de gerenciamento de lançamentos. Use este modelo para acompanhar os principais produtos e prazos para manter todos na mesma página.

Baixar o modelo de cronograma de gerenciamento de lançamentos

Excel | Word

 

O que está em um nome: implantar, lançar e enviar

O termo implantação é usado com frequência de modo intercambiável com as palavras lançamento e envio, mas elas não significam exatamente a mesma coisa. A implantação representa a instalação ou execução de uma nova versão de código em um servidor - ficando "ao vivo" com o software. Essa implantação pode ocorrer em um servidor de teste em vez de um servidor de produção. Um lançamento é a forma de software desta nova versão. Destina-se a um público além dos desenvolvedores, sejam outros da organização ou clientes. Um lançamento geralmente carrega um número de versão. Quando um cliente implanta um lançamento, este geralmente é descrito como uma instalação do software. O envio descreve o processo de obtenção do código por todo o ciclo de criação, teste e implantação.

A implantação é crucial tanto no ciclo de vida do desenvolvimento de software quanto no ciclo de gerenciamento de lançamentos. A implantação marca o momento em que a nova versão do software está disponível para uso e o novo lançamento entra em funcionamento. Nas palavras de Paul Jackson, da Escola de Informática da Universidade de Edimburgo, a implantação é "tirar o software das mãos dos desenvolvedores e colocar nas mãos dos usuários". Para esta etapa, os usuários finais podem precisar de treinamento.

Jackson observa que a implantação é frequentemente problemática: mais de 50% do software comissionado não é usado, principalmente porque falha na implantação. Se o software tiver problemas na implantação, os desenvolvedores "voltarão" à versão anterior até que os problemas sejam resolvidos.

Jackson também relata que 80% dos gastos com software comissionado ocorrem na implantação e depois dela. Claro, isso não significa necessariamente que a implantação em si seja um fracasso; pode ser simplesmente que os problemas no desenvolvimento só aparecem na implantação.

Mas, às vezes, a implantação é o problema. Talvez o cliente simplesmente não esteja preparado para uma mudança na experiência do produto, como os grandes lançamentos de sistema geralmente exigem. A falta de adoção de software também pode resultar de uma série de outros fatores: o hardware do cliente não pode lidar com o novo lançamento; o cliente tem problemas para instalar o software; a falta de treinamento representa um obstáculo; ou a nova instalação "quebra" o outro software pré-existente do cliente.

Muitos dos problemas diretamente associados à implantação podem ser resolvidos usando automação e treinamento, de modo que o usuário final não precisa pensar em coisas como compatibilidade do sistema. Contar com as melhores práticas no gerenciamento de lançamentos torna essas soluções um procedimento operacional padrão.

 

O que é um processo de implantação de lançamento?

O processo de implantação de lançamento é focado em tornar o software operacional em um ambiente ativo. Para que isso ocorra, o software deve passar por testes e ser oficialmente aceito pelo proprietário do produto ou por outra parte interessada comercial. Durante o processo de implantação, os usuários recebem treinamento sobre a atualização de software e os membros da equipe fazem uma avaliação ou revisão de como ele está se saindo e como foi a implantação.

 

Práticas recomendadas no gerenciamento de lançamentos

No gerenciamento de lançamentos, as práticas recomendadas são as diretrizes criadas e refinadas por empresas que já implementaram o ITIL com sucesso. As diretrizes são de propriedade do Gabinete Britânico e são publicadas por ele. Os processos de gerenciamento de lançamentos do ITIL têm sido usados com bons resultados por programas espaciais, serviços de saúde, bancos e empresas de entretenimento. As diretrizes devem ser modificadas pelas organizações para atender aos próprios requisitos e capacidades. Lembre-se, porém: estas são uma estrutura inicial, não um gospel.

Embora o gerenciamento de lançamentos seja mais importante durante a transição do desenvolvimento para a produção, ele começa com o planejamento dos lançamentos durante o desenvolvimento. Por exemplo, é uma boa ideia estabelecer um conselho consultivo de mudanças que supervisiona as mudanças em toda a organização. Também é sábio projetar um único sistema de gerenciamento de lançamentos que possa ser usado em todo o SDLC.

Da mesma forma, a criação de uma lista de verificação do processo de lançamentos incentiva a transparência, bem como a compreensão compartilhada do processo de gerenciamento de lançamentos e como ele cria valor comercial. Complementando o manifesto da lista de verificação do livro de Atul Gawande, usar uma lista de verificação também facilita o controle sobre o processo de lançamentos, especialmente se houver métricas a serem monitoradas. Além disso, ajuda ter um patrocinador sênior ativo.

 

Chris Harding

“The most common pitfall with release management is not following a release checklist,” says Chris Harding, a Release Manager at Microsoft. “The details in a release checklist are key. You may be having an off day, or something may distract you while you’re configuring a product, but the checklist never lies,” he points out.

Harding acredita que um erro simples que teria sido coberto por uma lista de verificação estava por trás do lançamento do Walmart Canada de vários títulos de videogame em seu site em maio de 2018 antes de sua estreia oficial em uma conferência do setor. "O tempo provavelmente foi definido incorretamente para as páginas do produto e ninguém o pegou antes de passar para o público. Na comunidade médica, listas de verificação salvam vidas. O gerenciamento de lançamentos não é tão significativo, mas provavelmente pode salvar seu emprego."

Modelo de lista de verificação de lançamentos de software

Para acompanhar todas as suas atividades de lançamento, considere usar uma lista de verificação. Este modelo está disponível nos formatos Microsoft Word e Excel e inclui espaço para listar notas e status sobre marketing, desenvolvimento de produtos, QA, engenharia/DevOps, experiência do usuário, suporte técnico, serviços e tarefas jurídicas. Edite o formulário para atender às necessidades do seu projeto.

Lista de Verificação de Gerenciamento de Liberação

Baixe o modelo de lista de verificação de lançamentos de software

Word | Excel

Algumas práticas recomendadas são realmente apenas senso comum. A integração contínua, por exemplo, melhora a qualidade do eventual lançamento pegando erros rapidamente. E não é uma boa ideia fazer um lançamento em uma sexta-feira, pois isso não deixa tempo durante a semana de trabalho para solucionar problemas se algo der errado. Também vale a pena agendar um lançamento durante um período de baixo tráfego. Você precisa saber quando seus clientes estão ativos para que possa fazer melhor controle de danos se as coisas derem errado. Outra opção é um lançamento por etapas no qual os recursos são disponibilizados apenas para um pequeno número de usuários de cada vez. E, claro, os bancos de dados precisam de suporte antes dos lançamentos.

Por último, lembre-se de que a implementação de um processo de gerenciamento de lançamentos é um processo em si. O gerenciamento de lançamentos pode ser iterado e a automação, alcançada gradualmente. Não tente forçar o processo.

 

Ferramentas de software para gerenciamento de lançamentos

Ferramentas de software podem agilizar e facilitar o processo de gerenciamento de lançamentos.

Por exemplo, produtos de software contemporâneos são criados para oferecer suporte a algumas plataformas, de navegadores de internet até servidores de aplicativos e sistemas operacionais. Então, eles precisam ser testados nesses ambientes antes do lançamento. Criar e manter todos os ambientes necessários para testes representa um problema. Mas há uma correção fácil: usar serviços virtualizados e em nuvem, como Selenium e SmartBear, que simplificam o processo de implantação de configurações para as plataformas-alvo criando um ambiente simulado de cada um para testes.

 

Brian White

“A common challenge is automating the release but not having good automated testing in place,” notes Brian White, Senior Solutions Architect at custom software developer Small Footprint. “If you don’t have confidence in the quality of your release, it doesn’t matter how fast it can be deployed if it’s always going to break when someone starts using it,” he says.

Para facilitar todo o processo de gerenciamento de lançamentos, plataformas de desenvolvimento de software e sistemas de gerenciamento de lançamentos, como GitHub, Jira e muitos outros, oferecem uma perfeita integração dos componentes necessários para um lançamento bem-sucedido. Eles podem ser usados em todo o SDLC, desde o planejamento do lançamento até a produção.

Essas ferramentas geralmente serão escalonáveis, com base nas necessidades da organização, e centralizarão as funções de atualização e administração, o que é especialmente útil quando são acessíveis pela internet como ferramentas SaaS (software como serviço). As melhores ferramentas também apoiarão os testes e a implantação de componentes de gerenciamento, juntamente com o gerenciamento de mudanças e integrações com componentes de gerenciamento de serviços de terceiros, que permitem um sistema de entrega de ponta a ponta. Procure ferramentas que cumpram as diretrizes do Fórum de Gerenciamento de Serviços de TI ITIL V3.

Ferramentas que permitem pelo menos a automação parcial do processo de lançamento são uma grande ajuda. Pode ser possível automatizar a entrega de software até a produção ou configurar uma série semiautomatizada de processos com aprovações e implementações sob demanda.

Outros recursos úteis incluem a capacidade de acompanhar as mudanças pelas versões, por isso é fácil chegar à raiz dos problemas e ter uma estrutura que ameniza a volta para a última versão de trabalho. Também é útil registrar feedback de aplicativos, um recurso que pode ser movido para um backlog para as próximas versões.

Além disso, considere ferramentas que podem apoiar a integração e a implantação contínuas. A implantação contínua vai um passo além da entrega contínua para implantar imediatamente as mudanças à medida que passam pelo pipeline de produção. Essa abordagem acelera o processo de feedback e melhora muito a eficiência.

KPIs e métricas de gerenciamento de lançamentos

Depois que um processo de gerenciamento de lançamentos amadurece, um gerente de lançamentos pode voltar sua atenção para métricas de desempenho com o objetivo de melhorar o processo. Vamos ver alguns:

  • Tempo de inatividade do lançamento: esta é a primeira métrica importante. Qualquer lançamento de software corre o risco de inatividade, cuja duração pode variar de alguns minutos a várias horas ou até mesmo dias. O tempo de inatividade não é ruim em si; muitas vezes é uma necessidade. Dito isto, é importante ser capaz de distinguir os diferentes tipos de tempo de inatividade. O tempo de inatividade estimado, por exemplo, é o tempo de inatividade necessário e incorporado ao cronograma de lançamento e é uma boa ideia comparar isso com o tempo de inatividade real, que é medido após o lançamento. Há também o tempo de inatividade não planejado, que ao longo de alguns lançamentos pode ser um sinal de problemas raiz não corrigidos.
  • O tipo e a prioridade dos lançamentos: cada lançamento é categorizado como maior, menor ou em algum lugar entre eles e é atribuída uma prioridade: alta, média ou baixa. Ao longo de uma série de lançamentos, veja uma divisão de seus lançamentos por tipo e prioridade. Deve haver uma boa mistura de lançamentos por tamanho e prioridade. Muitos lançamentos importantes para o mesmo produto podem indicar problemas sérios com garantia de qualidade, enquanto ter muitos lançamentos de alta prioridade sugere que sua equipe está presa no modo permanente de combate ao fogo, o que tende a queimar todos.
  • O número de lançamentos no prazo: como o lançamento no prazo não está garantido, trata-se de atrasos no lançamento. Há algumas pérolas interessantes de informação a serem obtidas. Por exemplo, algumas equipes de desenvolvimento têm mais lançamentos atrasados ou pontuais do que outras? Existe um padrão de entrega atrasada ou pontual com base na priorização do lançamento? Quais são as causas básicas de lançamentos repetidamente atrasados?

Você também pode acompanhar algumas métricas interessantes no nível da empresa. Estas incluem o tamanho dos lançamentos empresariais de três perspectivas diferentes: projetos, implantações de sistema e recursos. Outro conjunto útil de métricas acompanha o número de projetos, sistemas e recursos sem escopo. (De-scoping (sem escopo) é quando algo programado para lançamento não passa pelo seu portão de lançamento e, portanto, é retirado do lançamento da empresa para não mantê-lo suspenso.)

 

Estudos de caso em gerenciamento de lançamentos

Abordamos muitas teorias até agora e você pode estar se perguntando como o gerenciamento de lançamentos funciona no mundo real. A Microsoft é um ótimo lugar para procurar.

O Core Services Engineering (CSE) da Microsoft conta com uma combinação de integração contínua, entrega contínua e uma plataforma hospedada em nuvem chamada Visual Studio Team Services (VSTS). Sua abordagem para o desenvolvimento, que eles chamaram de "engenharia moderna", é baseada nos princípios do desenvolvimento Agile e do DevOps.

Veja como a Microsoft estrutura seu desenvolvimento em torno da entrega contínua e você entenderá como ela se beneficia tanto com um melhor gerenciamento de lançamentos. Os engenheiros de software da Microsoft se concentram na criação de um produto minimamente viável, que atrai os primeiros a adotar, permitindo que os desenvolvedores coletem feedback para lançamentos posteriores.

Os desenvolvedores da Microsoft podem testar o código em qualquer ambiente de implantação a qualquer momento e usar a componentização para facilitar a criação do código. Sob o processo de gerenciamento de lançamentos da Microsoft, eles podem iniciar criações não atendidas e implantação autônoma que levam apenas alguns minutos, sem competir por recursos. Além disso, o processo de validação de implantação é automatizado.

O CSE também adota os princípios Agile do design iterativo e da prototipagem rápida, enquanto usa a automação para reduzir os tempos de teste. Isso significa que o CSE pode acelerar seus ciclos de lançamento, corrigir problemas com rapidez e fornecer atualizações e melhorias contínuas em partes menores - a última das quais também reduz o risco, já que há menos tempo gasto desenvolvendo cada recurso.

E não são apenas as empresas de tecnologia que se beneficiam do gerenciamento de lançamentos. Entre 2008 e 2010, a divisão de TI do Depósito Central de Títulos da Turquia realizou uma automação extensiva de gerenciamento de configurações, gerenciamento de dependências, gerenciamento de infraestrutura, gerenciamento de mudanças, gerenciamento de bancos de dados e gerenciamento de configurações de aplicativos para "eliminar completamente" os problemas com lançamentos, encurtar o tempo de lançamento e diminuir radicalmente os erros relacionados à implantação.

Na United Airlines, um modelo de quatro etapas para lançamento que compreende planejamento, coordenação, execução e automação - todos informados por dados extensos - ajudou a empresa a passar do gerenciamento de lançamentos centrado em planilhas para um sistema centralizado de monitoramento e gerenciamento de lançamentos de painéis.

 

Como melhorar o gerenciamento de lançamentos

Melhorar os recursos de gerenciamento de lançamentos da sua organização requer entender o estado atual do seu processo de gerenciamento de lançamentos. Você deve fazer isso de duas maneiras: quantitativa e qualitativamente.

Quantitativamente, você deve reunir algumas métricas básicas, incluindo tempos médios de lançamento, tipo e prioridade de lançamentos, número de erros e número de lançamentos atrasados. Estes servem tanto para identificar o estado atual do gerenciamento de lançamentos quanto para descobrir as linhas de base de desempenho.

Qualitativamente, fale com as pessoas que fazem parte do processo de gerenciamento de lançamentos, especialmente onde o desenvolvimento interage com as operações e veja o que eles pensam. Eles poderão apontar realidades que não aparecem nos números.

Você pode lidar com o gerenciamento de lançamentos estabelecendo um ciclo de lançamentos regular, o que ajuda a criar consistência. (Isso não será possível para todos os lançamentos, é claro, mas você pode fazê-lo para os grandes e pré-planejados.) Coloque processos simples de lançamento em vigor em vez de tentar desenvolver uma cultura desde o início. Isso permite estabelecer a infraestrutura para lançamentos logo no início, testá-la e revisá-la, se necessário.

Com o tempo, os processos que funcionam bem se tornarão práticas padrão. Com base em sua pesquisa inicial de gerenciamento de lançamentos, agora você pode começar a impor requisitos de qualidade mais rigorosos e melhorar os benchmarks de eficiência. Você pode minimizar o impacto dos lançamentos em seus usuários eliminando o tempo de inatividade e os testes para regressões. Nesta fase, você também pode começar a pensar em regularizar e automatizar processos, como testes e verificação.

Uma cultura de lançamento verdadeiramente colaborativa leva tempo para crescer e precisa de uma infraestrutura de lançamento para isso. Você pode promover essa cultura fazendo investimentos em sua equipe e investindo em ferramentas e técnicas de gerenciamento de lançamentos que incentivam as pessoas a ter uma visão holística de todo o processo.

Melhorar a comunicação e o acesso à informação cultivará a coordenação. Informe as pessoas que os lançamentos vão melhorar, porque definir expectativas positivas importa. "Um desafio que as equipes enfrentam é quando veem os lançamentos como um obstáculo puramente técnico e esquecem a boa comunicação dentro da empresa e com as partes interessadas. Para superar isso, certifique-se de que todos na equipe entendam os objetivos e os riscos e comunique as mudanças aos usuários finais para evitar surpresas", diz White of Small Footprint.

 

O trabalho do gerente de lançamentos

Se orientar desenvolvedores e operações em direção a uma meta final e um prazo de produção parece divertido, considere a possibilidade de se tornar um gerente de lançamentos.

Um gerente de lançamentos deve navegar em um cenário complexo de projetos, métodos de desenvolvimento, infraestrutura e partes interessadas, enquanto coordena os esforços entre todos que contribuem para um lançamento empresarial. Os gerentes de lançamentos também devem se reportar aos principais gerentes da organização, até o CEO (embora para organizações mais maduras, o gerenciamento de lançamentos provavelmente será uma função mais autônoma), e recebem grande parte das críticas quando um lançamento dá errado.

Harding, da Microsoft, diz que é importante que os gerentes de lançamentos tenham amplas habilidades de gerenciamento de projetos. "Fornecer treinamento e acesso a outras partes interessadas do projeto é fundamental para reduzir a dependência de um indivíduo. Os gerentes de lançamentos geralmente têm um conjunto bastante específico de habilidades de resolução de problemas, mas podem se apoiar em outros PMs para ter elementos da configuração e processo do produto", explica.

Então, quais são as qualidades de um bom gerente de lançamentos? Eles estão intimamente familiarizados com o funcionamento do desenvolvimento e das operações, ou seja, tanto o trabalho técnico quanto a maneira como as pessoas trabalham juntas. Eles possuem excelentes habilidades de gerenciamento quando se trata de trabalho, tempo e especialmente pessoas. Eles estão comprometidos com qualidade, eficiência e processo. Eles são defensores da automação e, do lado técnico, devem ser operadores proficientes de repositórios do código de origem. E eles são fluentes nas inúmeras dependências interprojeto, interfunção e interdepartamento que definem um lançamento empresarial.

Eles também sabem em que acreditar (e em que não acreditar) sobre o gerenciamento de lançamentos.

 

Mitos de lançamento de software e de gerenciamento de lançamentos

Há muita sabedoria convencional flutuando sobre o gerenciamento de lançamentos, mas em que você deve prestar atenção? Felizmente para nós, Slinger Jansen e Sjaak Brinkkemper, dois pesquisadores da Universidade de Utrecht, nos Países Baixos, já tentaram responder a essa pergunta comparando custo e valor. Eles descobriram que muitos mitos e equívocos prevalecem.

Mito 1: os clientes querem se manter atualizados. Na realidade, os clientes só se preocupam com atualizações quando fornecem funcionalidades úteis. Se um lançamento não torna sua experiência melhor, eles não se importam.

Mito 2: os clientes devem (do ponto de vista do fornecedor) manter-se atualizados. Este é um caso de fornecedores que se importam com os clientes usarem a versão mais recente do software e se importam mais do que os próprios clientes. Como já observamos, os clientes atualizam quando querem e permanecem felizes usando versões mais antigas de outra forma.

Mito 3: o mais novo lançamento é sempre o melhor. Dependendo do caso de uso de um cliente, um lançamento antigo pode funcionar muito bem, enquanto um novo pode exigir que ele gaste tempo aprendendo uma nova interface ou novos recursos.

Mito 4: correções podem esperar até o próximo grande lançamento. Infelizmente, "o próximo grande lançamento" raramente chega a tempo. E, até que finalmente sejam solucionados, os problemas permanecerão lá, atormentando os clientes.

Mito 5: soluções alternativas devem ser evitadas a todo custo. Às vezes, as pessoas não se importam com soluções simples quando a alternativa é um upgrade caro e demorado para um novo lançamento.

Mito 6: os clientes sempre querem novos recursos. Se os novos recursos atrapalharem seus fluxos de trabalho estabelecidos e confortáveis, eles não os querem.

Mito 7: lançar muitas vezes é ruim. Contanto que você não lance para seus clientes externos toda vez, lançamentos frequentes não são prejudiciais. Lançamentos frequentes podem encurtar o ciclo de feedback, mas limitam a maioria a usuários internos e clientes piloto.

Mito 8: um cliente quieto é um cliente feliz. São os clientes que mais entram em contato com o suporte durante os estágios iniciais de uso que provam ser os mais satisfeitos com o produto. Entre em contato com seus clientes.

Mito 9: clientes leem notas de lançamentos. Eles não fazem isso, é claro. Eles fazem se forem obrigados - ou seja, se forem limitados por escolha e estiverem selecionando software profissional - mas preferem informações direcionadas que resumam o que é necessário que eles saibam, como uma determinada classe de clientes.

Mito 10: ter muitos lançamentos diferentes no campo é ruim. Isso pode ser um problema se o fornecedor oferecer suporte contínuo para clientes que usam versões mais antigas, mas mesmo assim é um jogo de números. Ter um pequeno número de clientes na versão mais antiga não é um problema incontrolável.

 

Grandes tendências no espaço de gerenciamento de lançamentos

As práticas Agile e a automação estão gradualmente se tornando princípios centrais do gerenciamento de lançamentos e por um bom motivo. A automação reduz os tempos de lançamento e pode reduzir substancialmente o risco de erro. As práticas Agile pressionam pela adoção da automação de criação, automação de testes, automação de implantação e automação de feedback, sendo que todas reduzem a carga sobre a equipe de desenvolvimento.

"Tanto a automação quanto o uso de plataformas virtualizadas/em nuvem permitem e favorecem outra grande tendência no gerenciamento de lançamentos: a entrega contínua", diz Gabriel Gutierrez, gerente de lançamentos da Boeing. "Com a entrega contínua, cada nova revisão de software é automaticamente criada, testada e preparada para implantação, transformando ideias em realidade rapidamente. A entrega contínua permite implantações mais frequentes, o que significa feedback mais frequente do cliente. Como resultado, há menos tempo perdido aprendendo rapidamente se você está fazendo as mudanças que seus clientes precisam e com as quais se preocupam", acrescenta.

Outra tendência que ganhou força é o uso de sistemas de controle de versão distribuída (DVCS), como GIT, Mercurial e Perforce, que mudam fundamentalmente a forma como as equipes colaboram. O DVCS permite que os usuários mantenham repositórios independentes em computadores locais, concluídos com históricos de versão completa. Essa capacidade torna possível trabalhar off-line e fazer alterações apenas na configuração local. Os desenvolvedores podem fazer alterações sem afetar o código central, o que é ótimo para experimentação.

Acredita-se que a cultura e a prática do DevOps se popularizarão em empresas maiores, com a automação de todas as etapas como uma meta alcançável. As startups, por sua vez, provavelmente começarão a adotar a metodologia DevOps desde o início. Isso se deve, em parte, ao fato de o DevOps, feito corretamente, significar menos tempos de falha, taxas de recuperação mais rápidas e um maior número de implantações, o que, por sua vez, significa uma redução no tempo de inatividade (muito caro). À medida que a adoção do DevOps aumenta, o mesmo acontece com o processo de mudança para a esquerda, que é quando testes automatizados e monitoramento de desempenho acontecem no início do ciclo de vida e a verificação de segurança se torna parte do pipeline de entrega.

"Embora não seja uma nova tendência, as implantações mais frequentes e rápidas passaram de um desafio técnico para uma expectativa das partes interessadas", acrescenta White of Small Footprint. "À medida que as partes interessadas ficam mais informadas sobre as possibilidades e benefícios de implantações mais frequentes, elas não ficam mais satisfeitas com as semanas de espera entre os lançamentos e ficam pressionando as equipes de desenvolvimento a lançar com mais frequência. Se a equipe não tem uma integração contínua sólida/infraestrutura de entrega contínua em vigor, isso pode causar um enorme estresse na equipe", conclui.

Quigley diz que a execução bem-sucedida desses incrementos rápidos e bem definidos de conteúdo de software requer "um nível de diligência em relação ao gerenciamento de configurações e ao acompanhamento do crescimento de um produto ao longo do tempo, uma vez que há mais iterações entregues ao cliente".

 

Mais recursos no gerenciamento de lançamentos

Para uma introdução mais técnica ao gerenciamento de lançamentos, confira este white paper de Jez Humble da ThoughtWorks Studios. E, depois que você terminar isso, a Electric Cloud tem uma vasta gama de recursos de gerenciamento de lançamentos que se aprofundam em detalhes.

Se você estiver pensando no gerenciamento de lançamentos como uma profissão e já estiver trabalhando no  Agile, confira este curso rápido de Jan-Erik Sandberg na Pluralsight. E, se você acha que obter certificação no ITIL é uma boa ideia, a Pink Elephant oferece cursos oficiais de certificação ITIL a partir do nível básico.

Finalmente, se você está querendo pôr a mão na massa agora com o gerenciamento de lançamentos, dê uma olhada em como a Tecnologia da Informação de Harvard faz isso.

 

Melhore o gerenciamento de lançamentos com o Smartsheet para desenvolvimento de software

Capacite seu pessoal para ir além com uma plataforma flexível desenvolvida para atender às necessidades da sua equipe e se adaptar conforme essas necessidades mudam. Com a plataforma Smartsheet fica fácil planejar, coletar informações, gerenciar e criar relatórios sobre o trabalho de qualquer lugar, ajudando sua equipe a ser mais eficiente e mostrar resultados. Crie relatórios sobre as principais métricas e obtenha visibilidade do trabalho em tempo real, à medida que ele acontece, através de relatórios, painéis e fluxos de trabalho automatizados criados para manter sua equipe conectada e informada. Quando as equipes têm clareza sobre o trabalho que está sendo realizado, elas podem ser muito mais produtivas durante o mesmo período de tempo. Experimente o Smartsheet gratuitamente hoje mesmo.

 

Descubra por que mais de 90% das empresas da Fortune 100 confiam no Smartsheet para realizarem seu trabalho.

Experimente o Smartsheet gratuitamente Get a Free Smartsheet Demo