Quais aspectos do Gerenciamento de Liberação ajudam a explicar a diferença entre o Waterfall e o Agile?

12

Ao explicar o DevOps a alguém, ocorre uma pergunta como:

Como o Gerenciamento de Liberação usando a metodologia Agile difere do Waterfall?

Então, que tipo de critério você pode usar para explicar essas diferenças para esse público?

Pierre.Vriens
fonte

Respostas:

11

O DevOps do IMO é uma cultura, bem como o Agile (sem escolher uma metodologia ágil.) Portanto, você não "faz" o DevOps.

Você "executa" uma metodologia de lançamento chamada Entrega contínua como parte de uma cultura do DevOps. (divulgação completa, acho que nunca me referi ao CD como uma metodologia de lançamento antes, mas, no meu estado de jetlagged, acho que funciona)

Se você comprar isso, aqui está a definição de Entrega Contínua de uma das pessoas que escreveu o livro com o mesmo título, Jez Humble .

Entrega Contínua é a capacidade de obter alterações de todos os tipos - incluindo novos recursos, alterações de configuração, correções de bugs e experimentos - na produção ou nas mãos dos usuários, com segurança e rapidez, de maneira sustentável.

Nosso objetivo é fazer implantações - seja de um sistema distribuído em larga escala, de um ambiente de produção complexo, de um sistema incorporado ou de um aplicativo - casos previsíveis e rotineiros que possam ser executados sob demanda.

Conseguimos tudo isso, garantindo que nosso código esteja sempre em um estado implementável, mesmo diante de equipes de milhares de desenvolvedores que fazem alterações diariamente. Assim, eliminamos completamente as fases de integração, teste e proteção que tradicionalmente seguiam o “dev complete”, bem como o congelamento de código.

Assim, você pode trabalhar em uma metodologia Agile, tendo um software que possa demonstrar para os negócios, certificando-se de fazer testes automatizados adequados, reagindo bem à mudança e a todas as coisas que a tornam melhor que a cascata. Com muita frequência, isso não significa que você possa implementá-lo na produção.

Você acaba com algo assim: ágil sem cd

Portanto, o software (provavelmente) será melhor quando você terminar, se você não tiver algum tipo de abordagem iterativa, mas você realmente não sabe porque usuários reais nunca o viram.

O que você realmente deseja é algo mais parecido com isto:

insira a descrição da imagem aqui

A cada iteração, algo é implantado na produção. Portanto, o software é implantado . Se você decidir criar downloads, abra o servidor da Web ou, no entanto, coloca o software nas mãos dos usuários que o lançam .

Que diabos!? Eu perguntei sobre DevOps! Ninguém perguntou sobre entrega contínua !!

Então, o que o DevOps tem a ver com isso?

É muito, muito difícil (quase impossível) realmente ter seu software em um estado em que você possa implantá-lo quando quiser, a menos que a equipe esteja trabalhando em uma cultura de DevOps. Uma cultura em que administradores de sistema, DBA, SREs, pessoal de segurança, desenvolvedores, QAs etc. fazem parte de uma única equipe e não fazem parte isolada de uma organização com transferências.

Nota :

Sobre parte de um comentário publicado nesta resposta, que era assim:

Sobre o seu "... software em um estado em que você pode implantá-lo quando quiser ...": isso me lembra o software "piloto automático" (em um avião) ... Minha pergunta favorita sobre isso: " Imagine uma atualização é aplicado a esse software ... Como você se sentiria em fazer isso a bordo ... Enquanto estiver a bordo? ".

Eu amo essa pergunta (em negrito, na citação acima)! A ideia de "está realmente pronta?" é algo que eu discuto o tempo todo - blog . Na IMO, é vital que você confie na segurança, no desempenho e em outros testes "secundários" para praticar CD. Os recursos são feitos quando são feitos, mas os hackers estão sempre lá.

Ken Mugrage
fonte
Obrigado por seus pontos de vista / respostas interessantes (e imagens brilhantes ...). Devo admitir que nunca ouvi falar do termo Metodologia de Liberação , embora o Gerenciamento de Liberação seja o que eu estou familiarizado (por mais de duas décadas ...). Sobre o seu "... software em um estado em que você pode implantá-lo quando quiser ..." (combinado com o "jetlagged"): isso me lembra o software "piloto automático" (em um avião) ... Meu favorito pergunta sobre isso: " Imagine que uma atualização seja aplicada a esse software ... Como você se sentiria em fazer isso a bordo ... Enquanto estiver a bordo? ".
Pierre.Vriens
1
Eu amo essa pergunta! A ideia de "está realmente pronta?" é algo que eu discuto o tempo todo - blog . Na IMO, é vital que você confie na segurança, no desempenho e em outros testes "secundários" para praticar CD. Os recursos são feitos quando são feitos, mas os hackers estão sempre lá.
Ken Mugrage
1
Eu estava me referindo a - "Imagine que uma atualização seja aplicada a esse software ... Como você se sentiria em fazer isso a bordo ... Enquanto estiver a bordo?"
Ken Mugrage
E Edite embora, eu sou um n00b aqui :)
Ken Mugrage
Por favor, revise minha edição sugerida para integrar também seu comentário interessante. Se você não gostar, execute uma reversão para a versão anterior (o link está dentro de "revisões") e / ou melhore / estenda ainda mais como desejar. Adivinhe, parece que "a bordo" algumas das minhas "permissões" foram alteradas ... parece que eu já tenho muitos representantes aqui para ainda precisar de "aprovações" para essas edições sugeridas ... por sorte, isso é apenas algumas SE- software (não uma atualização sugerida para alguma rota de um voo sem a aprovação prévia do controle de tráfego aéreo ...). Oeps 2 (correção): ele foi aprovado na velocidade da luz ...
Pierre.Vriens
2

Não tenho certeza se não há outros, mas estes são os critérios que eu uso:

+-------------------+-----------+-----------+
! Criteria          ! Agile     ! Waterfall !
+-------------------+-----------+-----------+
! Release Events    ! Frequent  ! Rare      !
! Risk              ! Less      ! High      !
! Required Effort   ! Smoother  ! Peaks     !
! Volume of changes ! Small     ! Huge      !
+-------------------+-----------+-----------+

E se você realmente deseja experimentar a diferença como usuário de algum software, pense em usar algum software (como uma distribuição Linux), onde você pode escolher entre usar um desses lançamentos:

  • uma Rollingversão " " (==> Ágil).

  • uma Long Term Supportversão " " (==> Cachoeira).

Pierre.Vriens
fonte
1
O exemplo do Linux pode não ser muito inspirador :) Pessoalmente, não gosto dos lançamentos contínuos por causa de: 1. o nível de qualidade e 2. as mudanças bastante perturbadoras (prefiro me concentrar no meu trabalho, não no linux que estou usando para o meu trabalhos). Então, eu uso os de longo prazo (geralmente além da EOL) e me concentro apenas em uma grande atualização a cada 2-3 anos. A menos que isso esteja apenas aumentando a adversidade de mudanças devido ao envelhecimento? :)
Dan Cornilescu
@ DanCornilescu Eu usei este exemplo do Linux porque acho que é um exemplo extremo do aspecto "a" do release mgnt (ou seja, a frequência dos lançamentos) para ambos os métodos. Embora "pessoalmente", concordo plenamente com o seu desagrado por lançamentos, pelas mesmas razões que você mencionou.
Pierre.Vriens