Entender o ciclo de vida do desenvolvimento Agile de software e o fluxo de trabalho do processo

By Kate Eby | 18 de August de 2016

As organizações têm enorme sucesso em atender à rápida mudança das necessidades dos clientes, adotando a metodologia de desenvolvimento de software Agile, que oferece uma abordagem iterativa para o projeto e desenvolvimento de software. A abordagem Agile abrange as constantes mudanças que ocorrem no desenvolvimento da tecnologia, permitindo que as equipes quebrem os longos requisitos, construam e testem fases em segmentos menores, acabando entregando software de trabalho rapidamente e com mais frequência.

Este artigo cobrirá o ciclo de vida do desenvolvimento Agile e o fluxo de trabalho do processo que ocorre durante uma iteração.

Veja como é fácil criar um quadro Kanban no Smartsheet

Os quadros Kanban são rápidos e fáceis de criar em Smartsheet em apenas duas etapas.

Desenvolvimento Agile de software vs. Desenvolvimento Waterfall de software

Não há uma única metodologia que possa ser aplicada em todos os projetos. Entretanto, muitas equipes estão caminhando para uma metodologia adaptativa, como Agile, e se afastando da metodologia preditiva, Waterfall, ao desenvolver software. O método convencional de desenvolvimento Waterfall segue fases estritas, seguindo os requisitos originais e o plano de projeto criado no início do projeto. Um gerente de projeto gasta tempo negociando marcos, características, recursos, trabalhando longamente nas etapas de planejamento de um projeto, geralmente desenvolvendo um plano de projeto completo que detalha como o trabalho será movido através de muitas etapas até a conclusão.

Os clientes finalizam os requisitos antes do início do desenvolvimento e então ocorre um longo processo de desenvolvimento, com o gerente de projeto acompanhando cada movimento do projeto através de cada entrega e finalmente até a entrega. Se tudo correr bem, este processo produz um lançamento dentro do prazo e do orçamento. Os principais inconvenientes desta abordagem estão bem documentados: não é responsivo a mudanças e leva muito tempo para entregar software pronto para uso. Quando a tecnologia forma o campo de jogo e impulsiona cada mudança, um ciclo de lançamento de seis meses (ou mais), com requisitos gravados em pedra, não atende à necessidade comercial.

A história por trás do desenvolvimento de software Agile é de frustração com a metodologia tradicional Waterfall. Agile é projetado para acomodar as mudanças e a necessidade de desenvolvimento mais rápido de software (como discutido nos Valores e Princípios do Manifesto Agile. O líder do projeto normalmente facilita o trabalho da equipe de desenvolvimento, elimina gargalos e ajuda a equipe a se manter concentrada a fim de fornecer iterações de software regularmente. É menos sobre marcos do que sobre horas, seleção de características, priorização e reuniões.

Ao contrário do modelo Waterfall, a equipe de desenvolvimento acaba decidindo no início de um sprint (ou iteração) o que pode ser realizado no prazo e se propõe a construir uma série de recursos, entregando software pronto para uso que pode ser instalado em um ambiente de produção no final do sprint. Uma vez que os métodos de desenvolvimento de software Agile (como o Dynamic Systems Development Method - DSDM) são flexíveis, a maioria é adequada para adaptação de métodos - onde as equipes de desenvolvimento podem adaptar o fluxo para atender às necessidades do produto.

 

O ciclo de vida Agile

Há uma variedade de metodologias de desenvolvimento de software Agile (ou desenvolvimento de sistemas), incluindo, mas não se limitando a elas:

  • Disciplined Agile Delivery (DAD)
  • Adaptive Software Development
  • Modelagem Agile
  • Kanban
  • Scrum
  • Scrumban
  • Extreme Programming (XP)
  • Dynamic Systems Development (DSDM)
  • Feature Driven Development
  • Desenvolvimento Lean de Software

O objetivo geral de cada método Agile é se adaptar às mudanças e fornecer software pronto para uso o mais rápido possível. Entretanto, cada metodologia tem pequenas variações na forma como define as fases de desenvolvimento de software. Além disso, mesmo que o objetivo seja o mesmo, o fluxo de processo de cada equipe pode variar de acordo com o projeto ou situação específica. Como exemplo, o ciclo de vida completo do desenvolvimento de software Agile inclui o conceito, a concepção, a construção, o lançamento, a produção e as fases de aposentadoria.

O fluxo de processo Agile

  1. Conceito - os projetos são idealizados e priorizados
  2. Início - os membros da equipe são identificados, o financiamento é posto em prática e os ambientes e requisitos iniciais são discutidos
  3. Iteração/Construção - a equipe de desenvolvimento trabalha para fornecer software de trabalho com base nos requisitos de iteração e feedback
  4. Lançamento - teste de QA (Garantia de Qualidade), treinamento interno e externo, desenvolvimento de documentação e liberação final da iteração na produção
  5. Produção - suporte contínuo do software
  6. Aposentadoria - atividades no final da vida, incluindo notificação e migração de clientes

Esta visão apresenta o modelo completo do ciclo de vida Agile dentro da empresa. Em qualquer empresa pode haver projetos operando simultaneamente, vários sprints/iterações sendo registrados em diferentes linhas de produtos e uma variedade de clientes, tanto externos quanto internos, com uma gama de necessidades comerciais.

Ciclo de vida do desenvolvimento de software Agile

 

agile software development lifecycle

Agile Software Development Workflow

The Agile software development lifecycle is dominated by the iterative process. Each iteration delivers the next piece of the development puzzle: software and supporting elements (e.g. documentation) available for use by customers, until the final product is complete. Each iteration is usually two to four weeks in length and has a fixed completion time. The iteration process is methodical and the scope of each iteration is only as broad as the allotted time allows.

Multiple iterations will take place during the Agile software development lifecycle and each follows its own workflow. During an iteration, customers and business stakeholders provide feedback to ensure that the features meet their needs. 

A typical iteration process flow can be visualized as follows:

  • Requirements: Define the requirements for the iteration based on the product backlog, sprint backlog, and customer and stakeholder feedback.
  • Development: Design and develop software based on defined requirements.
  • Testing: Quality assurance (QA) testing, internal and external training, documentation development.
  • Delivery: Integrate and deliver the working iteration into production.
  • Feedback: Review customer and stakeholder feedback and work it into the requirements of the next iteration.

Agile Software Development Workflow Diagram


While you may feed additional features into the product backlog throughout the project, the rest of the process repeats until the product backlog has been cleared. As a result, the Agile software development process flow is a loop rather than a linear process.

Agile Scrum Workflow

The flow of work in Scrum is directed via a series of meetings, as described below:

Sprint planning is used to choose the work that will be incorporated into an upcoming Sprint based on the product backlog.

A daily Scrum is a short meeting where each participant answers the following questions:

  • What work did you do yesterday?
  • What work will you do today?
  • What obstacles are in your way?

The Scrum master, who manages the meetings, uses the data gathered to update the burndown chart and look for ways to remove the obstacles that were identified.

A sprint review is a meeting at the end of each Sprint to evaluate what was completed and to review the product backlog and determine what still needs to be done. Reviews focus on the product.

Finally, the sprint retrospective meeting at the end of each Sprint which covers what worked well and what can be improved. Retrospectives focus on the process.
You can read more about Scrum in our comprehensive guide.

Making the Agile Process Work for You

As with any methodology, there are advantages and disadvantages (Read about the advantages and disadvantages of Agile). The Agile method is more suitable in situations where customers and project stakeholders are available to provide input, functional portions of software are needed quickly, flexibility is desired to accommodate changing requirements, and the team is co-located and able to collaborate effectively. 

As with any change, integrating Agile processes into your business can be overwhelming. Here are four activities that will help support the adoption of Agile workflow:

  • Daily Meetings: Host consistent or daily stand-up meetings to maintain open communication, hold workers accountable, and keep each iteration moving forward.
  • Live Demonstrations: Deliver live demonstrations of each iteration’s final product to show progress.
  • Share Feedback: Receive feedback from stakeholders and customers and share it with the entire team before the next iteration begins.
  • Remain Agile: Make changes to your process based on feedback to ensure each iteration improves the last.

Streamline the Agile Software Lifecycle with Smartsheet for Project Management

Do gerenciamento de tarefas simples e planejamento de projetos à gestão de portfólio e recursos complexos, o Smartsheet ajuda a melhorar a colaboração e acelerar a velocidade do trabalho — aumentando sua produtividade. 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. Experimente o Smartsheet gratuitamente hoje mesmo.

Ligue os seus colaboradores, processos e ferramentas com uma plataforma simples e fácil de utilizar.

Experimente o Smartsheet gratuitamente Get a Free Smartsheet Demo