Um pouco sobre agilidade em desenvolvimento de software
Manifesto ágil, Scrum e Kanban

Search for a command to run...
Manifesto ágil, Scrum e Kanban

No comments yet. Be the first to comment.
Dando continuidade ao artigo anterior sobre agilidade, vamos explorar o conceito de Scrumban, uma metodologia que combina o melhor de Scrum e Kanban para otimizar a produtividade. Antes de mais nada, é importante destacar que a aplicação de Scrumban ...
Quando falamos de liderança na área de tecnologia, é comum que o foco inicial seja processos, arquitetura, métricas e entregas. Tudo isso eu acredito ser super importante. Mas, na prática, o que suste

Nos últimos anos, muita gente da liderança técnica se afastou do código no sentido mais operacional. Não porque perdeu o interesse por tecnologia, mas porque a senioridade naturalmente empurra para ou

Desde que assumi o papel de Coordenador de equipes multidisciplinares e de senioridades desde Junior a um Senior / Tech Lead, com mentorias desdes mais seniores aos mais juniors, percebi que as métricas ágeis tradicionais (como Velocity e Burndown) c...

Relembrando alguns aprendizados (e perrengues)… Trabalhar com produtos digitais é completamente apaixonante. Ver uma ideia ganhar forma, resolver dores reais de pessoas e poder criar algo do zero, é tudo incrível! Mas quando o planejamento não acompa...

Hoje em dia, com o desenvolvimento de software ficando cada vez mais rápido e colaborativo, a Integração Contínua (CI) virou peça-chave na hora de garantir qualidade. Se pra você CI ainda é só “aquele negócio que roda uns testes automáticos”, talvez ...

Muito se fala em ser ágil, mas precisamos entender um pouco da origem e do motivo de que as grandes empresas precisam ser ágeis.
Antes de iniciar esse artigo, o conteúdo faz parte de uma apresentação que fiz aqui na empresa em que trabalho. Eu inicio falando que não sou agilista, mas um apreciador das ferramentas e do manifesto :)
Algumas métricas são retiradas dos times e também trago alguns exemplos de conteúdos da internet.
Então, bóra ao que interessa!
A origem de alguns métodos ágeis, no mundo de Software vem de outras engenharias. Se olharmos para a Engenharia Civil identificamos etapas de um projeto.
Para a construção de uma casa, precisamos iniciar com uma análise, partimos para uma fundação e depois iniciamos os Pilares. A sequência eu vou pedir para algum Engenheiro nos ajudar 😜
Nesse cenário, estamos falando de projetos em fase.
Essa metodologia, quando trazemos para o mundo de Engenharia de Software, podemos nomear como modelo Waterfall.
Exemplo de modelo Waterfall
Nesse modelo, quando iniciamos um projeto, levantamos os requisitos, desenvolvemos o design da funcionalidade, colocamos para o desenvolvimento e iniciamos o mesmo. Depois de todo o desenvolvimento, fazemos uma verificação, sendo validações internas e testes. Publicamos e dizemos que está pronto para utilização.
Acontece que no mundo atual, esse modelo pode “quebrar as pernas” do nosso produto.
Imagine o seguinte:
O cliente deseja um sistema onde ele possa acompanhar o andamento dos pedidos que são realizados em sua loja. Os funcionários utilizam o computador/notebook da loja para poder acessar o sistema. Para isso, ele traz algumas demandas (exemplo bem simplificado):
Nosso funcionário irá acessar o sistema;
Uma lista com todos pedidos será exibida;
O funcionário poderá filtrar por pedido;
Ao acessar um determinado pedido, irá exibir os detalhes.
Levantado todos requisitos e alinhado com o cliente o contrato, foi firmado um prazo de 6 meses para o desenvolvimento da aplicação. Dentro desse prazo, o fornecedor irá entregar a aplicação funcionando 100%.
Iniciado o desenvolvimento, passamos 6 meses desenvolvendo o sistema, contando a implementação, validações internas e entrega.
Ao entregar o sistema, o cliente levanta alguns pontos
Retrabalho no desenvolvimento pois não houve uma primeira validação da funcionalidade com o cliente final.
Passamos 6 meses em desenvolvimento, sendo que poderíamos estar validando com o cliente algumas etapas de entrega.
Se tivéssemos entregue e validado uma tela de login e acesso ao sistema, antes de entregarmos o sistema como um todo, poderíamos ter tido esse feedback durante o desenvolvimento.
Isso vale para todas funcionalidades do sistema.
É um exemplo simples mas a ideia é trazer que quando assumimos um desenvolvimento, por mais que o contrato esteja fechado, precisamos validar e sermos flexíveis a mudanças de acordo com os desejos do cliente.
É aí que colocamos em cheque o modelo Waterfall, para algumas organizações.
Ser ágil é diferente de ser rápido.
Ser ágil é ser adaptável a responder as mudanças.
Para ser ágil, precisamos entregar valor. Esse é um ponto importante! Entregando pequenas partes, conseguimos ter feedbacks mais rápidos e direcionamos a melhor estratégia para o caminho da entrega da funcionalidade/produto.
No fim das contas, ao receber feedbacks constante dos clientes, fazemos com que as mudanças sejam feitas em tempo.
Estamos descobrindo maneiras melhores de desenvolver
software, fazendo-o nós mesmos e ajudando outros a
fazerem o mesmo. Através deste trabalho, passamos a valorizar:Indivíduos e interações mais que processos e ferramentas;
Software em funcionamento mais que documentação abrangente;
Colaboração com o cliente mais que negociação de contratos;
Responder a mudanças mais que seguir um plano.
Ou seja, mesmo havendo valor nos itens à direita,
valorizamos mais os itens à esquerda.
O manifesto ágil dá diretrizes ao pensamento e modelo ágil.
Recomendo entrar lá e entender melhor a história disso tudo. Tem alguns autores bem conhecidos 😄
Para trabalharmos a agilidade, temos algumas ferramentas.
Vou abordar duas delas (e uma mescla dessas). O Scrum e o Kanban!
Para falarmos de Scrum, precisamos definir alguns papeis.
Figura no time que garante a aplicação da ferramenta;
Guia cerimônias e verifica o cumprimento das regras;
Supera os impedimentos apontados pelo time.
Devs Frontend, Backend, Fullstack, QAs, Tech Leaders, Devops…
A necessidade da especialidade dos devs vão ser de acordo com o produto.
Cuidar do Backlog de Produtos;
Solicita e refina as demandas junto com o dev team e prioriza;
Agrega o máximo de valor a cada entrega do time;
É a ponte dos stakeholders.
Anda junto com os POs|PMs;
Podemos realizar sprints de Design;
Acompanha e efetua handoff com os devs; (demandas UI)
Colhe feedback e atua na experiência do usuário.

Cerimônias do Scrum
Primeiro dia da Sprint;
Definição e estimativas das tarefas;
Recomendação de 2hrs de call, por semana de sprint;
PO | PM já está com o backlog priorizado;
Direciona entrega de maior valor possível.
Não é um reporte de ações;
Alinhamento entre equipes e solução de impedimentos;
15 min. recomendados;
Objetiva;
No modelo presencial, muitas empresas realizavam em pé. O nome original é “Stand up Daily”
Apresentar aos stakeholders o que foi produzido naquele ciclo;
Coleta de feedback e alinhamento;
Percepção de avanço.
Troca de feedback entre o time interno;
O que foi bem e o que não foi naquele ciclo (sprint);
Sair com ações;
Melhoria contínua.
Durante a sprint, olhamos a métrica de Burndown.

O gráfico de burndown é usado em Scrum para rastrear o progresso do trabalho durante um sprint. Ele ajuda a equipe a monitorar a quantidade de trabalho restante e a verificar se estão no ritmo certo para completar todas as tarefas planejadas até o final do sprint. Tem como objetivo:
- Transparência: Fornece uma visão clara e visual do progresso do sprint.
- Monitoramento: Ajuda a identificar desvios no planejamento e permite ajustes proativos.
- Comunicação: Facilita a comunicação dentro da equipe e com stakeholders sobre o andamento do trabalho.
Velocity:
Para entendermos nossa velocidade e termos uma média de entregas para estimarmos o quanto podemos entregar nas próximas sprints, podemos usar a métrica de Velocity.

https://www.atlassian.com/br/agile/project-management/metrics
O Kanban é uma metodologia ágil que se concentra na visualização do trabalho, gerenciamento do fluxo de trabalho e melhoria contínua. Originado no sistema de produção da Toyota, Kanban é amplamente utilizado para melhorar a eficiência e a eficácia na gestão de projetos.
Utiliza o quadro kanban para exibir as tarefas que são representadas por cartões e se movem pelas etapas do processo a medida que avança.
WIP (Trabalho em progresso): Definição de limites (mínimo e máximo) para o número de tarefas em cada etapa do processo, ajudando na sobrecarga de trabalho e melhorando o foco e a qualidade.
Acompanhamento de gargalos e impedimentos, garantindo um fluxo suave e eficiente de trabalho.
Pequenas entregas: incentiva a entrega frequente e incremental permitindo ajustes rápidos e melhoria contínua.
To Do: Tarefas a serem iniciadas.
In Progress: Tarefas em andamento.
Done: Tarefas concluídas.
Lead Time: Mede o tempo total que uma tarefa leva para ser concluída desde o momento em que é solicitada até a sua entrega.
Cycle Time: Enquanto o lead time mede o tempo total desde a solicitação até a entrega, o cycle time se concentra no tempo que uma tarefa leva para ser concluída a partir do momento em que se inicia o trabalho ativo nela.


O time decide a melhor ferramenta!
Framework inalado pode burocratizar os processos
Até lá! :)