Buscar

Fundamentos de Agilidade - seus primeiros passos para a transformação ágil

Prévia do material em texto

FONTE: https://cursos.alura.com.br/course/fundamentos-agilidade/task/55963
Método Waterfall
· Método Waterfall é utilizado nas engenharias para o desenvolvimento de projetos. Ele é composto por elementos sequenciais, ou seja, o fluxo do projeto proposto inicialmente não deve ser alterado conforme as fases avançam.
· É necessário que os requisitos/documentação sejam aprovados e assinados pelo cliente e responsável do projeto. Esse requisito tem todo o detalhamento do fluxo que deve ser seguido para atingir o seu objetivo final e, uma vez assinado, esse fluxo não muda mais.
· No Waterfall, quando dividimos o modelo em etapas, a primeira etapa se direciona para a segunda e esta se movimenta para a terceira e assim por diante. 
· O impacto de um melhor feedback do projeto diminui, porque além do resultado ser visto só no final do processo, as fases não podem ser retrocedidas, excluindo a possibilidade de alguma alteração.
· Desvantagens do Waterfall: 
· Ao longo do processo, mudam através de feedbacks do cliente, promovendo uma alteração no fluxo estabelecido inicialmente, sendo que no Modelo Waterfall isso não seria possível de fazer, já que cada fase está muito bem estabelecida. 
· Um projeto definido hoje pode não ter o mesmo sentido daqui 6 meses, porque há muita volatilidade no mundo, as coisas evoluem rapidamente, principalmente a tecnologia.
Waterfall X Agile
O método de desenvolvimento de projetos comumente usado, chamado de Waterfall, foi herdado de engenharias nas quais cada projeto era dividido em fases que dependiam da fase anterior ser aprovada, tendo um conjunto de requisitos. As fases só avançam, e isso tornava seus clientes satisfeitos.
Exemplo de Waterfall (engenharia civil): o processo de construção de um imóvel é dividido em fases, como análise do terreno, fundação e pilares de sustentação. Uma vez que uma fase é aprovada e finalizada ela não pode ser alterada.
Porém, para o desenvolvimento de software, esse método herdado de engenharias não era o ideal, porque a cada tarefa concluída eram validadas novas mudanças a partir de feedbacks, o que fazia com que o fluxo fosse alterado. Então ele teve que passar por uma reestruturação para que, depois dos feedbacks de cada tarefa desenvolvida, o fluxo pudesse ser alterado durante o processo de desenvolvimento do projeto. 
As principais diferenças entre os métodos são em relação à Priorização, Fluxo e Feedback.
Priorização
· Escreva uma lista de tarefas e atividades pendentes e desejadas do seu dia a dia. Deve ser definida como priorização a tarefa de mais importância e mais urgência.
· Importância: deve caracterizar qual o objetivo que essa tarefa estará ajudando a atingir.
· Urgência: a atividade que tem um prazo menor de entrega.
· Qual critério utilizar para fazer a priorização? Depende do contexto da empresa, do momento, do tipo de projeto e do cliente. Porém, independentemente do critério, geralmente devemos priorizar aquilo que nos gera um maior retorno financeiro.
· As Matrizes de Priorização têm como objetivo ajudar na visualização das tarefas e dar clareza para os processos decisórios, além de ajudar a montar uma cadeia de priorização mais eficiente.
· Matriz de Eisenhower, um jeito fácil de definir como priorizar suas tarefas de modo que as mais importantes não sejam deixadas de lado pelas que aparecem de repente ou delegar aquelas que são urgentes.
Priorização: utilizando a matriz Eisenhower
A ideia é que todas as suas tarefas possam ser distribuídas em quadrantes, divididas em dois eixos: Importância e Urgência. Esses quadrantes recebem um valor de 1 a 4 baseado em sua prioridade. Uma vez classificadas as tarefas disponíveis dentro destes quadrantes, você pode então decidir como irá proceder.
Cada quadrante corresponde às tarefas:
· De muita importância e muita urgência: Crises.
· Não há tempo a perder, coloque no topo das suas tarefas
· De muita importância, mas pouca urgência: Metas e planejamentos.
· Programe-se para fazer, e tente reservar um tempo para isso.
· De pouca importância, mas muita urgência: Interrupções.
· Delegue ou faça apenas o que não for atrapalhar seu trabalho
· De pouco importância e pouca urgência: Distrações.
· Ignore
Fluxo
Para delinear um fluxo, é necessário que as priorizações estejam estabelecidas. Ou seja, definir o critério de uma tarefa, para que mudem de ordem no fluxo. 
1. Defina o projeto e seu objetivo final
2. Defina o que você quer solucionar com esse projeto.
3. Divida o projeto em pequenas metas/tarefas para atingir o objetivo final.
4. Defina o critério de priorização das tarefas
5. Estabeleça um fluxo que priorize a resolução desse problema, ou seja, foque no que é mais importante
Feedback
De acordo com o que for vivenciado, as prioridades são mudadas. O feedback nada mais é do que avaliações e críticas sobre os resultados obtidos, sejam elas positivas ou negativas, colaborando para o crescimento da empresa.
Assim, o Agile nos permite priorizar tarefas, mudanças de fluxos conforme as tarefas são priorizadas e feedbacks de clientes durante a finalização de cada uma dessas tarefas.
1. Priorização das tarefas estabelecidas que vão gerar o objetivo final.
2. Depois de priorizá-las, o fluxo de trabalho é definido, seja ele dividido por etapas ou finalidades.
3. Quando é terminada uma finalidade, faz sentido ir atrás do Feedback de seu cliente.
4. Com essa reação do cliente (feedback) é possível fazer alterações no fluxo ou até eliminar tarefas que não sejam mais necessárias.
O Método Ágil
· O que é ser ágil? Ser ágil significa entregar valor rapidamente, ter uma abordagem com foco naquilo que gera mais valor para o cliente e empresa, ou seja, quando algum cliente apresenta um problema, devemos oferecer a ele entregas parciais de acordo com a necessidade desse cliente.
· A agilidade não trará mais velocidade logo de imediato, mas sim ao longo do tempo quando o desperdício for eliminado, e a qualidade for aumentada e percebida.
· Esses ciclos rápidos de entrega fazem com que os fluxos e feedbacks sejam constantes e o aprimoramento do serviço/produto seja cada vez melhor, alcançando melhores resultados no final do processo. 
· Os principais valores do Manifesto ágil são:
1. Indivíduos e Interações > Processos e Ferramentas: as interações entre os indivíduos são mais importantes que os processos e as ferramentas, ou seja, a maneira como a equipe trabalha impacta diretamente no desenvolvimento do que será produzido.
2. Software funcional > Documentação compreensiva: Ter um software funcionando é mais importante do que uma documentação detalhada e compreensiva, ou seja, devemos trabalhar para desenvolver um projeto para ele funcionar.
3. Colaboração do cliente > Negociação de contrato: A colaboração do cliente é mais importante que a negociação de contrato, ou seja, a proximidade com o cliente é essencial para que o feedback tenha valor e fazer com que isso tenha impacto no fluxo de trabalho.
4. Resposta às mudanças > Seguir o plano: Responder às mudanças é mais importante do que seguir o plano, ou seja, a mudança é algo natural e, se confrontarmos essa situação, teremos um cliente insatisfeito.
Princípios do Manifesto Ágil
O Agile Manifesto, ou Manifesto Ágil, que foi escrito em 2001 por pessoas que já tinham um vasto conhecimento na área de desenvolvimento de Software. O objetivo era descobrir quais eram as semelhanças entre os diversos desenvolvimentos de software pelos quais eles haviam passado e que faziam com que os clientes ficassem mais ou menos satisfeitos. Tem 12 princípios: 
1. Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado.
2. Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente.
3. Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo.
4. Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto.5. Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho.
6. O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face.
7. Software funcionando é a medida primária de progresso. 
8. Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente.
9. Contínua atenção à excelência técnica e bom design aumenta a agilidade.
10. Simplicidade--a arte de maximizar a quantidade de trabalho não realizado--é essencial.
11. As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis.
12. Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo.
Cases de aplicação das metodologias ágeis
Ao ler tais cases, não “copie e cole” as práticas de agilidade que já foram feitas dentro de outras organizações. Não é porque elas geraram um resultado enorme que você terá o mesmo resultado. Deve ser entendido o porquê de determinada empresa ter aplicado certa característica ágil, o que ela queria resolver com isso, e analisar vários fatores dentro da empresa antes de implantar a mesma metodologia na sua empresa/equipe.
https://www.sopesp.com.br/2019/11/28/metodos-ageis-avancam-nas-empresas/
https://www.scrumalliance.org/
https://www.agilealliance.org/agilealliancebrazil/