Agile vs cachoeira - qual metodologia de gerenciamento de projetos para escolher?
Qual é a melhor metodologia para usar para o desenvolvimento de software? A decisão nem sempre é uma tarefa fácil. O projeto agregou valor para o cliente, o negócio ou nenhum dos dois?
Manter esses fatores em mente, decidimos fazer uma comparação de cabeça a cabeça de duas das metodologias de desenvolvimento de software mais usadas (Agile vs cachoeira) e avaliar onde cada um pode ser melhor empregado em.
O que é ágil?
A Agile é uma abordagem magra e moderna para o desenvolvimento de software, criada essencialmente como uma solução-resposta às desvantagens das metodologias anteriores. Dado o nome, o ágil enfatiza a entrega precoce do produto e suporta alterações adaptáveis e flexíveis que podem ser feitas a qualquer momento no ciclo de vida do projeto.
As metodologias ágeis contêm uma ampla gama de formas diferentes: Scrum, Programação Extrema (XP), Desenvolvimento Encorregado por Recursos (FDD) e Cristal.
9. Pesquisa Global de Gerenciamento de Projetos 2017revelou que aproximadamente 71% das organizações usam abordagens ágeis.
Mecânica principal de ágil
O fluxo de trabalho ágil opera nos seguintes princípios:
Abordagem iterativa -O desenvolvimento é fragmentado em prazos curtos conhecidos como iterações, que duram 2-4 semanas. Cada iteração envolve o desempenho da equipe transversal que se concentra em entregar o produto acabado até o final do timebox fornecido.
Mudar a gestão -Cada estágio de desenvolvimento passa por revisão e análise progressos para garantir que a satisfação do cliente se aline com o escopo do projeto. As alterações são encorajadas a serem feitas e adotadas sempre que necessário para fins de otimização e melhoria.
Priorização -A equipe trabalha em completa harmonia em todos os domínios de uma fase de desenvolvimento: planejamento, projetar, codificação, testes e avaliação. Cada unidade de equipe se comunica com a outra unidade para compartilhar seu relatório de progresso e trabalhar em colaboração para mitigar lacunas existentes ou bloqueios iminentes.
Confira outros artigos ágeis noGerenciador de tarefas UDN.Blog:
Ciclo de vida do desenvolvimento ágil
O ciclo de vida do desenvolvimento ágil é um detalhamento todo o trabalho em seis etapas:
Plano:Uma vez que a imagem maior para o escopo do projeto seja finalizada, o esboço é dividido em objetivos menores e facilmente alcançáveis. Cada um desses objetivos é então atribuído às iterações que possuem metas e recursos exclusivos para si mesmos.
Análise:Na fase de análise, a equipe se une para delinear os principais requisitos do projeto. As reuniões entre as partes interessadas e os gerentes são conduzidas para realizar o propósito e a demografia do uso do produto.
Projeto:A equipe começa a trabalhar em design de software e o design do sistema usando os requisitos estabelecidos na fase de análise.
Codificação:Esta é a fase de implementação em que o desenvolvimento começa com a primeira iteração. Recursos e aspectos do desenvolvimento são criados e, em seguida, testados para funcionalidades impecáveis.
Testando:Quando a codificação e o desenvolvimento estiverem concluídas, é então testado para requisitos de negócios e possíveis erros. Esta fase é caracterizada por todos os tipos de testes que podem melhorar eficiências de produção, como testes unitários, testes de sistemas, testes de integração e teste de aceitação.
Desdobramento, desenvolvimento:Esta é a última fase de um ciclo iterativo em que o produto acabado é implantado aos clientes. O feedback do cliente é obtido, e quaisquer alterações ou melhorias prováveis necessárias para serem feitas são então incorporadas no próximo ciclo iterativo.
Estruturas e metodologias ágil populares
Agile é um guarda-chuva amplo que engloba múltiplas estruturas e metodologias para implementá-lo o mais suave possível. Um dos mais populares são:
1. Scrum.
Sem dúvida, uma das estruturas ágeis mais populares adotadas por equipes é Scrum. A estrutura destina-se a lidar com projetos por meio de meios iterativos e incrementais. Scrum é baseado em colaboração sistemática contínua entre os membros da equipe entre o ciclo do projeto.
Existem três papéis principais no Scrum, Scrum Master, proprietário do produto e equipe de desenvolvimento.
Vamos passar por esses elementos para entender melhor seu papel:
O Scrum Master, também conhecido como o 'facilitador' ajuda a equipe a entender o escopo do projeto e atua como uma figura central dentro de um projeto. Seus deveres primordiais incluem limpar quaisquer ambiguidades que os membros da equipe possam ter em relação ao escopo do projeto e removem quaisquer obstáculos que estejam parando a equipe de trabalhar eficientemente.
Um proprietário de um produto é tipicamente uma das principais partes interessadas de um projeto. Ele comunica a visão do produto com a equipe de desenvolvimento e fornece feedback oportuno sobre o trabalho que está sendo feito. Além disso, ele também é responsável por priorizar as tarefas que iriam no backlog.
A equipe de desenvolvimento é a equipe que está trabalhando em todas as obras de desenvolvimento do produto. Também conhecido como a 'equipe Scrum', é um grupo transversal que é responsável pelo desenvolvimento do produto ou serviço real.
Além disso, o ciclo de trabalho é dividido em 'sprints', que geralmente dura de 2 a 4 semanas. Durante os sprints, os stands-ups diários ocorrem para relatar o progresso do projeto e as mudanças necessárias.
2. Kanban.
Outra das metodologias ágeis mais populares adotadas pelas equipes é Kanban. Esta metodologia ágeis se concentra em dividir o trabalho em pequenas partes e visualizando o fluxo de trabalho através de cartões de uma forma que facilita a identificação de gargalos.
Normalmente, o.Sistema Kanban.Funciona através do princípio de categorizar o trabalho em respectivas categorias de 'fazer', 'em andamento' e 'feito'. Você pode facilmente mover os cartões para representar o progresso. Ele também define os limites do trabalho em andamento (WIP) para restringir o número de itens que podem ser adicionados a uma determinada coluna para ajudar a manter o foco nas tarefas atuais apenas.
O Kanban é um sistema leve e flexível que funciona melhor para projetos onde os requisitos geralmente mudam, já que os cartões flutuantes permitem fazer mudanças rápidas no fluxo de trabalho e dar à equipe uma heads para o que vem a seguir.
19 melhores ferramentas de Kanban para usar em 2022
Confira outros artigos ágeis noGerenciador de tarefas UDN.Blog:
3. Lean.
A metodologia magra do ágil se concentra na eliminação de fluxos de trabalho e eficientes de construção através de melhorias contínuas no ciclo de vida do projeto. Esta metodologia funciona inteiramente no princípio de adicionar apenas o que cria valor e remoção do resto.
'Desperdício' aqui refere-se a quaisquer tarefas, reuniões, processos de trabalho ou documentação que possam estar diminuindo você. Eliminá-los, para que você possa alcançar mais em menos tempo. Metodologia Lean recomenda a eliminação de três inimigos de Lean - Muda (resíduos), mura (desigualdade) e Muri (sobrecarga).
Em poucas palavras, o Lean muda a maneira como as equipes operam e mantêm sua concentração - focada ao laser para otimizar os processos de trabalho, tanto quanto possível.
4. XP (programação extrema)
Programação extremaA metodologia do gerenciamento de projetos ágeis é direcionada para melhorar a qualidade do software sendo desenvolvida e a capacidade de resposta para evoluir os requisitos do cliente. A metodologia funciona para aumentar a produtividade dos desenvolvedores e definir regras básicas quando se trata de codificação e teste.
Algumas das regras quando se trata de XP estão incluindo histórias de usuários, programação de pares, desenvolvimento orientado por testes e muito mais. A programação extrema também está inclinada para liberar o software em ciclos de desenvolvimento curtos, para que possa ajustar de acordo com os requisitos do cliente chegando ao longo do tempo.
As práticas gerais de programação extrema concentram-se em revisão contínua e testes em todo o projeto para corrigir quaisquer bugs e problemas o mais ativamente possível. E quando seguido corretamente, essas práticas resultam em software de maior qualidade.
5. Crystal.
O cristal é uma das metodologias ágeis mais flexíveis por aí. O ponto focal desta metodologia é indivíduos e suas interações, em vez de processos. Cristal se concentra principalmente em 6 aspectos quando se trata de desenvolvimento de software - pessoas, interações entre eles, comunidade, comunicação, habilidades e talentos.
A metodologia é na verdade uma família de outras metodologias, como cristalino, amarelo cristal, laranja cristalina e outros.
O gênio por trás do cristal, Alistair Cockburn, desenvolveu diretrizes para colaboração de equipe e trabalho em equipe, em vez de estratégias de desenvolvimento passo a passo para um projeto. A metodologia suporta a responsabilidade e a transparência da equipe e fornece uma abordagem adaptativa para permitir que a equipe responda a alterações de efetivamente.
6. Desenvolvimento orientado por recursos (FDD)
Como o nome indica, os recursos estão no centro dessa metodologia ágil. Os recursos no FDD não se referem necessariamente a recursos do produto, em vez de histórias de usuário no Scrum. O desenvolvimento orientado pelo recurso consiste em 5 atividades básicas - desenvolvimento de um modelo geral, a construção de uma lista de recursos, planejamento por recurso, projetando por recurso e construção por recurso.
A lista de recursos é geralmente gerada pela singularidade de cada modelo de projeto, e o objetivo principal do FDD é fornecer um produto de software centrado no cliente.
O DSD também incentiva o relatório de status em todos os níveis a ficar de olho no progresso do projeto e nos resultados chegando ao longo do tempo. Isso também elimina a confusão e o retrabalho excessivo entre a equipe de desenvolvimento.
7. Método de Desenvolvimento de Sistemas Dinâmicos (DSDM)
O DSDM é uma estrutura ágil que fornece uma base abrangente para planejar e executar projetos de desenvolvimento de software. Datado de 1994, foi concebido o método de desenvolvimento de sistemas dinâmicos para criar uma estrutura padrão do setor para a entrega de software de qualidade.
Os 8 princípios básicos em que o DSDM opera são:
Como um framework ágil flexível, o DSDM pode ser facilmente usado para projetos de TI e não-TI.
Confira outros artigos ágeis noGerenciador de tarefas UDN.Blog:
Qual é o modelo de cachoeira?
Datado de volta até 1970,Cachoeira, é um método tradicional de desenvolvimento de software que funciona em um formato seqüencial de desenvolvimento. Isso implica uma progressão passo a passo do processo, onde cada fase prossegue de maneira linear, facilitando a administração e compreensão.
De acordo com um relatório publicado por Gartner em 2015, 56% dos métodos de gerenciamento de projetos compostos por metodologia da cachoeira.
Mecânica principal em que modelo de cachoeira opera
O modelo da cachoeira opera nos seguintes princípios:
Objetivos distintos:O escopo de longo prazo do projeto é determinado antes do início do desenvolvimento. Os gerentes de projeto, partes interessadas e clientes precisam ter uma visão clara do que o produto final será moldado.
Time-Boxing:Cada fase é designada uma quantidade fixa de tempo. Depois que a fase estiver concluída, é feita para congelar, então não há caminho de retorno para a etapa anterior.
Modo independente de trabalho:Cada equipe para um domínio específico, trabalha em metas individuais com pouca ou nenhuma colaboração com equipes trabalhando em outras unidades.
Principais aspectos da metodologia da cachoeira
O Workflow da cachoeira.pode ser visualizado nas seguintes etapas:
Requisitos:Muito parecido com o ágil, esta é a primeira fase que detém todos os requisitos técnicos e não técnicos do projeto em um documento específico de requisitos. Esses requisitos são estritamente permanentes que definem o papel e o Outlook do produto final.
Análise:A equipe realiza uma análise dos sistemas e técnicas usadas para realizar o desenvolvimento de produtos.
Projeto:Especificações de design como serviços, linguagens de programação e camadas de dados são determinadas e finalizadas.
Codificação:Em referência aos requisitos, análise e objetivos criados nos estágios anteriores, a equipe de desenvolvimento grava o código-fonte na quarta fase.
Testando:Nesta fase, todos os tipos de testadores começam a testar a versão final do produto para qualquer número de erros e bugs.
Operações:A fase de operações é responsável pela implantação da versão completa e testada do produto para o mercado.
Agile vs cachoeira pros & amp; CONS.
Como a Agile é uma metodologia de desenvolvimento de software contemporânea, fornece uma infinidade de benefícios e vantagens para equipes de TI que optam por trabalhar usando-a como sua principal metodologia.
Em AN. Pesquisa on-line da HP de 601 desenvolvimento e profissionais de TI , 54% dos entrevistados afirmaram que depois de adotar metodologias ágeis, experimentaram a maior colaboração entre as equipes que não existiram de outra forma. Considerando que, 43% disseram que o tempo necessário para o mercado era massivamente reduzido.
No entanto, nem todos os tipos de projeto e cenários se despedem com as características liberais do ágil.
Vamos dar uma olhada nas vantagens e desvantagens do ágil.
Esta é a vantagem mais importante do ágil. Como o desenvolvimento é feito em iterações, a equipe tem acesso flexível para retornar ao estágio anterior para fazer qualquer tipo e tamanho de alterações.
Como um projeto ágil funciona em ciclos curtos de iterações, pode ser difícil atribuir uma data de vencimento definida à linha do tempo do projeto.
O trabalho realizado em pedaços menores permite que os membros da equipe terminem no tempo. Além disso, uma vez que a codificação e o teste são realizadas de forma síncrona com o plano e a fase de projeto do desenvolvimento, todas as mudanças e melhorias são feitos de forma ida eficiente com o fluxo de trabalho em movimento.
Isso aumenta a probabilidade de um lançamento antecipado de produtos também.
Correções e melhorias feitas em cada ciclo adicionam uma carga extra de trabalho em parte da equipe de desenvolvimento. É provável que isso resulte em tempo adicional se dedicação e competência não forem exibidas pelos membros da equipe de desenvolvimento.
O feedback do cliente no final de cada ciclo iterativo permite a participação igual aos clientes no desfecho e design do produto.
Como as equipes ágeis são construídas para comunicação de perto, todos os membros da equipe precisam estar próximos em todos os momentos durante o trabalho para transportar esse nível de comunicação efetivamente.
Agile incentiva as equipes a trabalharem juntas, estabelecendo um alinhamento com seus objetivos e objetivos. A comunicação transparente e frequente entre diferentes unidades de equipe permite um maior grau de produtividade e apaga as chances de um conflito.
Como Agile não importa o projeto para ter um esboço rigoroso no início, o resultado final do produto pode moldar ser completamente inesperado e grosseiramente diferente do que foi o requisito inicial de negócios.
Agile facilita uma sala constante para melhoria. No final de cada iteração, o produto acabado é testado para lacunas e feitos para melhorar após cada ciclo de teste ser concluído.
As melhorias também são uma parte contínua do desenvolvimento como feedback do cliente é recuperado durante todo o ciclo de vida do projeto.
Como o progresso está acontecendo entre os ciclos em ágil, torna-se difícil medir o desempenho. Você não pode definir um monte de kpis definitivos no início do projeto, então você não sabe o que olhar durante o ciclo de vida do projeto.
A Agile suporta evoluir ideias e decisões para se encaixar na janela de escopo e desenvolvimento do projeto. Isso é especialmente benéfico para aplicativos e ferramentas de software que não possuem um objetivo final definido e são submetidos a alterações com base na experiência do cliente.
Como não há objetivo definido no final do projeto, torna-se um desafio prever com precisão os recursos necessários no início do projeto.
A incapacidade de decidir o custo, o tempo e os recursos resulta em planejamento de recursos ruins e podem ser um problema maior, uma vez que o projeto avança.
Embora desde que o ágil entrou no centro das atenções, a metodologia da cachoeira tornou-se largamente banal, mas a abordagem linear para o desenvolvimento de software ainda tem um conjunto de benefícios exclusivos para si mesmo.
Aqui estão um conjunto de ambas as vantagens e desvantagens da metodologia da cachoeira: