• Konatus

Metodologia Ágil aplicada no Desenvolvimento de Software

Atualizado: Out 29

A metodologia ágil permite errar rápido e reduzir custos de investimento através de um planejamento de entregas por sprints feito de forma incremental e iterativa


Imagem: ilustração

Desenvolver software não é uma tarefa simples. Tudo parece bem alinhado na teoria, mas na prática há uma gama considerável de variáveis a serem melhor compreendidas durante o processo, e nem sempre (ou quase nunca) o escopo definido no início de um projeto será o mais adequado e eficiente.


Na década de 1970, o modelo em cascata foi uma das primeiras diretrizes de método para desenvolvimento de projetos de software. Nele, as fases acontecem dentro de um escopo rígido e com recursos limitados devido a limitação de orçamento. A inflexibilidade de processos resultante dessa forma de trabalho tende a comprometer a qualidade da entrega final.


Por esta razão, a Konatus tem preferência por realizar os projetos com processos e desenvolvimentos ágeis. Antes de mencionar benefícios desta filosofia, apresentamos a seguir as definições de cada elemento que contribuem para ela:


Scrum: framework utilizado em metodologias ágeis onde os projetos são fragmentados em ciclos, como se fossem miniprojetos sendo entregues por sprints ao cliente.

Imagem: processo de metodologia ágil. Fonte: acervo pessoal

Sprint: conjunto de atividades a serem executadas durante um determinado período. Os ciclos de tempo de uma sprint normalmente duram de 2 a 4 semanas.


Product Backlog: listagem de todas as funcionalidades a serem desenvolvidas para o produto. Dentro da lista, prioridades são estabelecidas e divididas em sprints para serem entregues.


Sprint Planning: trata-se do planejamento de execução de cada sprint ao ser iniciada. O objetivo é definir o que pode ser entregue e como será executado. Essa etapa é realizada com a participação de toda equipe e, eventualmente, do próprio cliente.


Scrum Team: time de desenvolvimento do projeto, composto por:

  • PO (Product Owner): responsável por ver e analisar o desenvolvimento do ponto de vista do cliente. Ele define o que é esperado como entrega, quais são os requisitos, funcionalidades e padrão de qualidade do produto final. O mesmo também deve estar atento à sinergia de comunicação da equipe para se certificar de que todos estão trabalhando em prol do mesmo objetivo, estando em prontidão para esclarecer questionamentos;

  • Scrum Master: tem papel de liderança dentro do time e deve garantir que todos estão sendo produtivos, assim como ajudar na resolução de desafios e interferências que possam prejudicar o andamento do projeto e atividades planejadas;

  • Scrum Team: time responsável por desenvolver todas as funcionalidades e requisitos devem ser implementadas pela equipe multidisciplinar que realizará todas as fases de projeto: codificação, design, testes, documentos etc.

Daily Scrum: tem como definição uma reunião rápida que deve ocorrer no início de cada dia, onde cada membro informa: o que fez no dia interior, o planejamento de atividades do dia e se há alguma dificuldade que está bloqueando o processo. A interação deve ser curta e objetiva para atualizar status e certificar que os empecilhos serão resolvidos rapidamente para não comprometer a data de entrega de cada sprint;


Sprint Review: reunião que ocorre após o fechamento de cada sprint, na qual a equipe relata as funcionalidades implementadas durante o ciclo e discute as “lições aprendidas”, para que as práticas com bons resultados sejam replicadas em outras sprints e as práticas não proveitosas sejam excluídas.


Incremento: é a entrega ao cliente, o acréscimo de uma ou mais funcionalidades no processo.




Após o time percorrer todas as fases do ciclo, o “Product Backlog” é revisitado e inicia-se o planejamento da próxima sprint.


Apresentados os principais elementos acima, a pergunta que surge é: mas quais os benefícios da metodologia ágil?


Conforme mencionado no início do texto, o modelo cascata é muito inflexível e pouco participativo (da parte do cliente) no decorrer do processo, influenciando no fator "expectativa vs realidade" e na qualidade de entrega devido à limitações.


No desenvolvimento de software, a metodologia ágil é extremamente benéfica pela dinâmica entre o time de desenvolvimento e pela comunicação com o cliente. Trabalhando com entregas periódicas por sprint, o cliente pode ter a liberdade de revisitar o escopo junto com a equipe.


Como assim, revisitar o escopo? Vamos supor a seguinte situação:


“Após a entrega da segunda sprint do projeto, o cliente percebe que funcionalidade X, na verdade, não é tão funcional assim e outro aspecto poderia ser adicionado”.


  • No modelo cascata, isso não é possível de forma fluída por dois motivos: cliente não é tão participativo no desenvolvimento do projeto, portanto perceberia essa necessidade talvez apenas na entrega final do projeto. Haveria necessidade de revisão de orçamento e envio de nova proposta para aprovação. Por conta da burocracia, o prazo poderia ser drasticamente afetado.


  • Na metodologia ágil, a nova funcionalidade é incluída no backlog do produto e priorizada para ser entregue dentro de uma sprint. Neste modelo, o cliente pode optar por participar de uma reunião semanal com a equipe desenvolvedora para se informar sobre o status do projeto. No momento da entrega da sprint, já seria possível fazer a avaliação do escopo em geral e das periodizações de entregas.


Em suma, a flexibilidade ao decorrer do projeto permite a todos - cliente e time de desenvolvimento - “errar rápido”.


Sabemos o quão desafiador é definir um escopo fechado e assertivo sem necessidade de revisão. Com a possibilidade de acompanhar as funcionalidades implementadas durante o processo, a metodologia ágil evita desperdícios e gera mais satisfação em relação a qualidade e funcionalidades do produto final.



31 visualizações0 comentário

Posts recentes

Ver tudo