Quando o software foi desenvolvido pela primeira vez, o processo de desenvolvimento não se encaixava em nenhum tipo de governança. Então veio a cachoeira , que introduziu a ideia de que o desenvolvimento de software pode ser determinado no momento em que um aplicativo é criado ou construído.
Costumava demorar muito mais para testar e implantar o software do que agora porque não havia equilíbrio e nenhuma verificação durante o processo de desenvolvimento. Como resultado, recebemos softwares de baixa qualidade com erros e bugs, feitos muito depois dos prazos estabelecidos. O foco principal era o planejamento de projeto longo e demorado.
Projetos em cascata foram vinculados ao modelo de restrição tripla, também chamado de triângulo de gerenciamento de projetos. Cada lado do triângulo representa uma das restrições de gerenciamento de projeto: escala , tempo e custo . Como escreve Angelo Beretta , o modelo de restrição tripla afirma que “o custo é função do tempo e do volume, e esses três fatores estão relacionados de uma maneira certa e previsível ... Se quisermos encurtar o lead time (time), devemos aumentar o custo. O modelo também implica que, se quisermos aumentar o volume, devemos aumentar o custo ou o prazo de entrega. "
Mudança de Waterfall para Agile
A cachoeira veio até nós da produção e da engenharia mecânica, que são difíceis de imaginar sem um processo linear. Antes de construir um telhado, você constrói paredes. Os problemas de desenvolvimento de software também eram vistos como algo que poderia ser resolvido por meio de planejamento.
No final, a cachoeira foi reconhecida como uma abordagem prejudicial, ao contrário da abordagem intuitiva de desenvolvimento de software. Muitas vezes, o valor de um projeto não pode ser determinado até o final do ciclo do projeto. Em muitos casos, os projetos falharam. Além disso, o cliente não viu nenhum software funcionando até o final do projeto.
Agile implica em uma abordagem diferente que vai além do planejamento de todo o projeto, vinculando-se a datas e relatórios estimados. A metodologia ágil assume e leva a incerteza em consideração. Isso o encoraja a reagir à mudança em vez de ignorá-la. A mudança é vista como uma forma de atender às necessidades do cliente.
Valores ágeis
Agile é regido pelo Manifesto Agile. Aqui estão seus 12 princípios :
- A satisfação do cliente é a maior prioridade.
- A mudança de requisitos é incentivada, mesmo nos estágios posteriores de desenvolvimento.
- Um produto funcional deve ser lançado com a maior freqüência possível.
- Desenvolvedores e representantes comerciais devem trabalhar juntos.
- Profissionais motivados devem trabalhar no projeto.
- A comunicação ao vivo é a forma mais prática e eficaz de trocar informações.
- Um produto funcional é o principal indicador de progresso.
- Processos ágeis contribuem para o desenvolvimento sustentável.
- É importante prestar atenção à excelência técnica e ao bom design.
- A simplicidade é essencial.
- As melhores soluções arquitetônicas, requisitos e ideias de design vêm de equipes auto-organizadas.
- Reflita regularmente sobre maneiras de melhorar o desempenho e ajustar seu estilo de trabalho.
4 ideias principais do Agile:
- pessoas e interação são mais importantes do que processos e ferramentas,
- um produto funcional é mais importante do que uma documentação abrangente,
- a cooperação com o cliente é mais importante do que concordar com os termos do contrato,
- estar disposto a mudar é mais importante do que seguir o plano original.
Essa abordagem é muito diferente de uma cascata rígida. No Agile, o cliente é um membro da equipe de desenvolvimento. Na cachoeira, ele se envolve apenas no início, na definição dos requisitos do negócio, e no final, na consideração do produto final. No Agile, o cliente ajuda a equipe a escrever os critérios de aceitação do produto e permanece envolvido durante todo o processo. Além disso, o Agile exige mudança e melhoria contínua de todos os membros da organização. A equipe de desenvolvimento trabalha com outras equipes, incluindo gerentes de projeto e testadores. Quem faz o quê e quando depende da função atribuída e é discutido com toda a equipe.
Desenvolvimento ágil de software
O desenvolvimento ágil de software requer planejamento adaptativo, design evolutivo e entrega do produto final. Muitas metodologias, estruturas e práticas de desenvolvimento de software são categorizadas como ágeis, incluindo:
- Scrum
- Kanban ( )
- XP ( )
- Lean
- DevOps
- FDD ( )
- TDD ( )
- Crystal
- DSDM ( )
- ASD ( )
Todos eles são usados isoladamente ou em combinação com outras metodologias de desenvolvimento e implantação de software. Os mais comuns são Scrum , Kanban (ou uma combinação chamada Scrumban) e DevOps.
Scrum é um framework no qual a equipe trabalha de forma independente e multifuncional para aumentar a velocidade de entrega do produto acabado e agregar valor ao negócio do cliente. A equipe geralmente consiste em um Scrum Master, Gerente de Produto e Desenvolvedores. O foco principal do Scrum é em iterações mais rápidas com menos melhorias .
KanbanÉ uma estrutura ágil, às vezes também chamada de sistema de gerenciamento de fluxo de trabalho. Ajuda a equipe a visualizar seu trabalho e aumentar a eficiência (mantendo a agilidade). Kanban é geralmente um quadro branco digital ou físico. As tarefas da equipe se movimentam no tabuleiro dependendo do estágio: a tarefa ainda não começou, em andamento, em teste, concluída. Kanban permite que cada membro da equipe veja o status das tarefas.
Valores DevOps
DevOps é uma cultura, uma forma de pensar, uma forma de desenvolver software ou infraestrutura e uma forma de construir e implantar software e aplicativos. Operações e desenvolvimento não são separados; eles funcionam simultaneamente sem interferir um com o outro O
DevOps é baseado em duas outras áreas: Lean e Agile. DevOps não é um nome ou função em uma empresa. Na verdade, esse é um compromisso que uma organização ou equipe assume em termos de entrega, implantação e integração contínua de produtos. De acordo com Jin Kim , autor de The Phoenix and The Unicorn Project, existem três "caminhos" que definem os princípios do DevOps:
- princípios de fluxo,
- princípios de feedback,
- princípios de aprendizado sem fim.
Desenvolvimento de software DevOps
DevOps é uma prática ágil. Em sua forma verdadeira, representa uma cultura compartilhada e pensamento sobre o desenvolvimento de software e a implementação de tecnologia da informação ou infraestrutura.
Quando você pensa em automação, nuvem, microsserviços, você pensa em DevOps.
Nicole Forsgren, Jez Humble e Jin Kim escreveram o livro Fast Up! Como construir e escalar organizações de alto desempenho. " Em uma entrevista, eles explicaram o que é DevOps:
- A entrega de software eficaz é importante. Tem um impacto significativo na lucratividade, participação de mercado, qualidade, satisfação do cliente, objetivos organizacionais e missão.
- Empresas com alta eficiência alcançam alta velocidade de desenvolvimento, estabilidade e qualidade. Eles não precisam sacrificar nada para conseguir tudo isso.
- Você pode melhorar seu desempenho implementando princípios e práticas DevOps de Lean, Agile.
- A implementação dessas práticas e oportunidades também afeta sua cultura organizacional. Isso, por sua vez, afeta a eficácia do seu software e a produtividade da organização.
- É preciso muito trabalho para descobrir como melhorar a eficiência.
DevOps e Agile
Apesar das semelhanças, DevOps e Agile estão longe de ser a mesma coisa. Alguns argumentam que DevOps é melhor do que Agile. Chegar ao fundo da história é importante para evitar confusão.
Semelhanças
- Ambos são metodologias de desenvolvimento de software, você não pode argumentar contra isso.
- O Agile existe há mais de 20 anos e o DevOps também é relativamente novo.
- Ambas as abordagens acreditam no desenvolvimento rápido de software. Seus princípios são baseados em como desenvolver software rapidamente sem prejudicar o cliente ou as operações.
Diferenças
- , .
- , DevOps, Agile. , Agile , . DevOps, , , . .
- Agile , . DevOps , DevOps . , .
- DevOps , Agile . Agile MVP ( ) .
- Agile — , .
Agile | DevOps |
---|---|
, | |
Agile e DevOps são coisas diferentes, embora suas semelhanças levem muitos a pensar que são a mesma coisa. Esse mal-entendido está prestando um péssimo serviço ao Agile e ao DevOps.
Trabalhei com Agile e pela minha experiência posso dizer que é muito importante para equipes e organizações entender o que são DevOps e Agile. Você também precisa entender como eles ajudam as equipes a trabalhar com mais rapidez e eficiência, garantir a qualidade do produto e melhorar a satisfação do cliente.
Agile e DevOps não são rivais um do outro (pelo menos não há motivos ainda). Eles são aliados e não inimigos no campo ágil. Agile e DevOps podem trabalhar de forma exclusiva e inclusiva, o que permite que existam no mesmo espaço.
Tradução: Diana Sheremieva
Saiba mais sobre como obter uma profissão de alto perfil do zero ou Subir de nível em habilidades e salários, fazendo os cursos online pagos da SkillFactory:
- Curso DevOps (12 meses)
Mais cursos
- Machine Learning (12 )
- Data Science (12 )
- (9 )
- «Python -» (9 )