Konatus
Metodologia Ágil aplicada no Desenvolvimento de Software
Atualizado: 29 de out. de 2021
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

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.

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.