Prévia do material em texto
Isabella Fonseca Desenvolvimento de Aplicações Web Gerenciamento de Projetos de Aplicações Web Isabella Fonseca Unidade II - Métodos e framework ágeis Métodos e framework ágeis Métodos e Framework Ágeis Fonte: https://www.versionone.com/agile-101/agile-methodologies/ Muito se fala sobre ser assim… Fonte: https://realtimeboard.com/blog/choose- between-agile-lean-scrum-kanban/#.WVL_acZ2pmA Enquanto outros assim definem… Métodos e Framework Ágeis Métodos e Framework Ágeis O que importa é… http://agilelion.com/agile-kanban-cafe/agile-and-lean-influences-where-did-kanban-scrum- scrumban-come-from Métodos e Framework Ágeis - Origem Fonte: http://www.stateofagile.versionone.com/ Métodos e Framework Ágeis - Distribuição Métodos e Framework Ágeis - Características Fonte: https://www.slideshare.net/kurtsolarte/sdc-sydney-2011solarte Métodos e Framework Ágeis - Características Fonte: https:// pt.slideshare.ne t/tptman/agile- lean-and-in- between Métodos e Framework Ágeis - Timeline Scrum Scrum é um framework organizacional para desenvolvimento de equipes produtivas com foco em boas práticas de liderança. É implementado para entregar resultados esperados de forma mais efetiva, sendo esse trabalho executar estratégias de venda, entregar melhores campanhas de marketing ou construir melhores produtos, sejam eles de software ou não. Scrum Uso fora da TI http://www.agile247.pl/wp-content/uploads/2017/04/versionone-11th-annual-state-of-agile-report.pdf Características do Scrum • Simples • 13 regras • Descrito em 16 páginas • Extensível e pouco prescritivo • Utilizado para desenvolvimento de novos produtos “Pode construir o produto errado mais rápido!!” Pilares do Scrum Transparência Inspeção Adaptação • Comprometimento. • Foco. • Sinceridade. • Respeito. • Coragem. Valores do Scrum Papéis do Scrum • Product Owner • Scrum Master • Development Team XP Valores do XP Comunicação Simplicidade Feedback Coragem Respeito Papéis do XP •Coach. •Cliente. •Programadores. •Testadores. Práticas do XP O desenvolvimento é feito em iterações semanais. No início da semana, desenvolvedores e cliente reúnem-se para priorizar as funcionalidades. O cliente identifica prioridades e os desenvolvedores as estimam. Como o escopo é reavaliado semanalmente, o projeto é regido por um contrato de escopo negociável. Ao final de cada semana, o cliente recebe novas funcionalidades, completamente testadas e prontas para serem postas em produção. XP - Jogo do Planejamento A liberação de pequenas versões funcionais do projeto auxilia muito no processo de aceitação por parte do cliente, que já pode testar uma parte do sistema que está comprando. XP - Pequenas versões Procura facilitar a comunicação com o cliente se adaptando a realidade dele. Conceitos são alinhados através desta técnica. É preciso traduzir as palavras do cliente para o significado que ele espera dentro do projeto. XP - Metáfora Tem como foco construir códigos fáceis de se entender e de serem alterados. Significa manter o design simples desde o início e melhorá-lo continuamente, ao invés de tentar deixá-lo perfeito desde o início e então congelá- lo. XP - Projeto Simples A equipe de desenvolvimento é formada pelo cliente e pela equipe de desenvolvimento. Comunicação! XP - Time Coeso São testes construídos pelo cliente em conjunto de analistas e testadores, para aceitar um determinado requisito do sistema. XP - Teste de Aceitação Trabalhar com qualidade, buscando ter ritmo de trabalho saudável, sem horas extras. Há uma busca constante de trabalho motivado. Para isto o ambiente de trabalho e a motivação da equipe devem estar sempre em harmonia. XP - Ritmo sustentável Reuniões em pé para não se perder o foco nos assuntos, produzindo reuniões rápidas, apenas abordando tarefas realizadas e tarefas a realizar pela equipe. XP - Reuniões em pé O código fonte não tem dono e ninguém precisa solicitar permissão para poder modificar o mesmo. O objetivo com isto é fazer a equipe conhecer todas as partes do sistema. XP - Propriedade coletiva de código A dupla é formada por um iniciante na linguagem/ negócio e outra pessoa funcionando como um instrutor. Como é apenas um computador, o novato é que fica à frente fazendo a codificação, e o instrutor acompanha ajudando a desenvolver suas habilidades (o contrário também é interessante). Desta forma o programa sempre é revisto por duas pessoas, evitando e diminuindo assim a possibilidade de erros. Com isto busca-se sempre a evolução da equipe, melhorando a qualidade do código fonte gerado. XP - Programação em par A equipe de desenvolvimento precisa estabelecer regras para programar e todos devem seguir estas regras. XP - Padrão de Codificação É um processo que permite a melhoria contínua da programação, com o mínimo de introdução de erros e mantendo a compatibilidade com o código já existente. Refatorar melhora a clareza do código, divide-o em módulos mais coesos e de maior reaproveitamento, evitando a duplicação de código-fonte -> maximização do reuso XP - Refatoração Primeiro crie os testes automatizados e depois crie o código para que os testes funcionem. Esta abordagem é complexa no início, pois vai contra o processo de desenvolvimento de muitos anos. Testes de regressão, por exemplo, são essenciais para que a qualidade do projeto seja mantida -> Maior segurança para se efetuar refatorações. XP - Desenvolvimento orientado a testes Sempre que produzir uma nova funcionalidade, nunca esperar uma semana para integrar à versão atual do sistema. Isto só aumenta a possibilidade de conflitos e a possibilidade de erros no código fonte. Integrar de forma contínua permite saber o status real da programação. XP - Integração contínua Scrum e XP “Ambos Scrum e Extreme Programming (XP) pregam que a equipe complete alguma parte palpável de trabalho que seja entregável ao fim de cada iteração. Essas iterações são pensadas para serem curtas e com espaço de tempo definido.” Mike Cohn Lean Maximizar o valor do cliente enquanto minimizando desperdícios. Lean Kaizen = é uma palavra Japonesa utilizada para indicar a melhoria a longo prazo de algo ou alguém - melhoria contínua. O primeiro passo do Lean Manufacturing é mapear o processo e entender onde há desperdícios. O kaizen é inserido neste contexto como base de uma prática de melhoria sistêmica. Lean - Kaizen 1.Elimina desperdício para maximizar valor 2.Empoderar o time: não focar em microgerenciamento, respeito ao time para que tomem decisões e sejam produtivos 3.Entregar o mais rápido possível para maximizar o ROI através de iterações curtas e feedback constante Lean - Princípios que focam em 7 conceitos centrais 4. Otimizar o todo: ver além do que as partes de um projeto e enxergar como está alinhado a organização. 5. Construir qualidade constantemente 6. Decidir o mais tarde possível 7. Amplificar aprendizagem dos envolvidos no processo Lean - Princípios que focam em 7 conceitos centrais Jidoka- primeiro tear com parada automática https://www.citisystems.com.br/jidoka/ Parar e notificar anormalidades! Acertos de qualidade feitos o mais cedo possível, ao longo do processo: “fazer certo da primeira vez”. Lean - Stop the line • Cultura “Stop-the-Line”- Acertos de qualidade feitos o mais cedo possível, ao longo do processo: “fazer certo da primeira vez”. •Preocupação com as Falhas •Relutância em Simplificar Motivos de Falhas •Compromisso em Aprender com os Erros •Reverência à Expertise Técnica Lean - Stop the line ● Eliminação de inventário (estoques intermediários) criados em nome da “economia de escala” de Taylor. ● Otimização holística do processo e não de suas partes. Trabalhadores aptos no processo como um todo (e não em sub-processos ou atividades) – adaptaçãorápida da linha de produção para cada nova situação ou problema. Lean - Just in time (JIT) Lean - 7 desperdícios Fonte: https://pt.linkedin.com/pulse/os-7- desperd%C3%ADcios-do-lean-daniel-nobre Lean - Desperdícios ocultos Fonte: https://www.citisystems.com.br/7-desperdicios-producao/ Lean Development - Desperdícios Kanban Lean e Kanban - história Fonte: https://www.slideshare.net/DigitalCatapultDevelopmentPractices/ agile-scrum-lean-kanban-in-a-flash • Objeto Kanban: Cartão sinalizador. • Sistema Kanban: Sistema de fluxo de entrega que controla a quantidade de trabalho em progresso usando sinais visuais. • Método Kanban: Método para definição, gerenciamento e melhoria de serviços que entregam trabalho do conhecimento, como serviços profissionais, indústria criativa e desenho de produtos de software. Kanban Kanban - 3 princípios básicos Fonte: http://www.stateofagile.versionone.com/ • Visualizar fluxo de trabalho. • Limitar trabalho em progresso. • Gerenciar fluxo. • Tornar políticas explícitas. • Implementar laços de feedback. • Melhorar colaborativamente, evoluir experimentalmente. Kanban - práticas centrais Ponto de compromisso - ponto em um sistema kanban onde é estabelecido o compromisso de se entregar um item de trabalho. Ponto de entrega - ponto no sistema kanban onde o item de trabalho é considerado completo. Kanban - Visualizar o fluxo de trabalho Através do quadro, expõe métricas de velocidade, gargalos, filas, variabilidade e desperdício. Com isso, incentiva discussões sobre melhorias e equipes as promovem rapidamente nos processos. Estuda o tempo de ciclo necessário para entregar um produto. Modifica o comportamento e incentiva maior colaboração no trabalho. Promove consenso entre trabalhadores e colaboradores. Kanban - Transparência Work in Progress (WIP) – número de itens de trabalho dentro de um sistema sendo considerado em um determinado ponto no tempo. Lead Time – tempo de um item de trabalho entre os pontos de compromisso e entrega. Kanban - Visualizar o fluxo de trabalho Na execução do fluxo, as vezes, ocorre algum tipo de conflito.É demandado um controle empírico por meio de transparência, inspeção e adaptação. Gargalos, onde o fluxo é restringido por um sub- processo em particular, e bloqueadores, onde há dependências com outros serviços, são importantes para tomar nota e gerenciar. Kanban - Gerenciar fluxo Kanban - Gerenciar fluxo WIP •WIP está intimamente ligado a entrega orientada a valor •WIP alto é RUIM!! E representa um grande risco de itens não finalizados a serem entregues ao cliente! •E… por isso, é bom limitar WIP!! Kanban - tornar políticas explícitas Kanban - implementar laço de feedback http://brodzinski.com/2013/07/cumulative-flow-diagram.html Kanban - CFD Scrum e Kanban http://agilelion.com/agile- kanban-cafe/agile-2-0- embracing-lean-and-rise- ultra-light-methods Scrum e Kanban São ambos altamente adaptativos, sendo o Scrum mais prescritivo que Kanban -> Scrum lhe dá mais restrições. Por exemplo, o Scrum prescreve o uso de iterações de duração fixa, o Kanban não. Prevê equipes multifuncionais, não obrigatórias no Kanban. Além de preescrever 3 papéis – PO, Scrum Master e Scrum Team, o Kanban não determina seu time. Scrum e Kanban Únicas restrições Kanban: Visualize Seu Fluxo de Trabalho e Limite Suas Atividades em Andamento. O raciocínio comum tanto em Scrum quanto em Kanban é: menos é mais! Então, na dúvida, comece com menos! Scrum e Kanban Scrum e Kanban https://realtimeboard.com/ blog/choose-between- agile-lean-scrum-kanban/ #.WVL_acZ2pmA Scrum e Kanban Por fim… https://agilespy.files.wordpress.com/2013/12 lean_agile_process_toolkits_980x688.png Métodos e Framework Ágeis Uso de técnicas combinadas http://www.agile247.pl/wp-content/uploads/2017/04/versionone-11th-annual-state-of-agile-report.pdf Uso de formas de acompanhamento combinadas http://www.agile247.pl/wp-content/uploads/2017/04/versionone-11th-annual-state-of-agile-report.pdf Doing Agile Vs. Being Agile From Agile2012 Sobre utilizar técnicas e ferramentas ágeis www.knowledgebridgepartners.com/ Sobre mudar seu mindset… •Ter o cliente sempre por perto (de verdade!) •Envolver os stakeholders significa que ele irá validar frequentemente e não somente ao final de iterações, por exemplo, ou mesmo ao final do projeto :( •Entender o que ele realmente quer para que a entrega de valor seja melhor planejada e entregue mais cedo possível Being Agile •Ter entregas regulares e prontas para serem validadas. •Não adianta entregar um incremento com coisas “por fazer" •Obter feedback real constante e aprender com os erros •Fazer reuniões de retrospectivas que tenham ações concretas para a melhoria contínua Being Agile •Ter coragem de dizer sempre a verdade sobre: •Cronogramas atrasados e irreais •Prazos não factíveis •Não ter conhecimento sobre algo que você tem que resolver e pedir ajuda! •Equipe realmente comprometida com o projeto e não somente com sua reputação! •Todos auxiliam em tudo! Entendem o objetivo e pensam no todo! Being Agile •Criar tarefas objetivas e pequenas para que sejam terminadas mais rápido (Melhor monitoramento, WIP baixo e feedback imediato) •Focar nas tarefas a serem executadas -> não adianta achar que multitasking é efetivo Being Agile •Experimentar novas formas de fazer - inspecionar e adaptar •Alternar papéis, alterar documentos, reunião, fluxos, etc •Demonstrar algo pronto ao final de cada iteração, algo que possa ser usado. •Todo mundo deve saber de tudo. A saturação da comunicação acelera o trabalho. Being Agile •Fazer uma reunião por dia. Verificar o trabalho da equipe e ver o que pode ser feito para aumentar a velocidade (e criar plano de ação para isso). •Simplicidade: para ser ágil, é necessário simplificar processos, seja de definição, de aprovação, etc. •Reflexão frequente e adaptação: como a mudança é uma constante no mundo digital, é importante refletir constantemente sobre os esforços, ajustando-os quando necessário. Being Agile •Lembrar que sucesso de um projeto não é atender ao famoso triângulo "escopo, prazo e custo" e sim, atender aos objetivos do cliente! • Mudar a forma como cada um enxerga o seu cliente, o negócio dele e a própria capacidade real de entregar software de valor agregado. Como disse Steve Denning, "Delighting Customers” Being Agile