Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Métodos Ágeis para Desenvolvimento de Software Livre

2,634 views

Published on

Apresentação realizada no FISL16 sobre métodos ágeis para o desenvolvimento de software livre.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Métodos Ágeis para Desenvolvimento de Software Livre

  1. 1. Métodos Ágeis paraMétodos Ágeis para Desenvolvimento deDesenvolvimento de Software LivreSoftware Livre Dionatan Moura Jamile Alves Porto Alegre, 09 de julho de 2015
  2. 2. Quem somos?Quem somos? Jamile AlvesDionatan Moura
  3. 3. Ágil e SoftwareÁgil e Software Livre?Livre?
  4. 4. Métodos ÁgeisMétodos Ágeis ● Manifesto Ágil ● Lean Software Development ● Kanban ● Scrum ● eXtreme Programming
  5. 5. Manifesto ÁgilManifesto Ágil ValoresValores ● 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 http://www.agilemanifesto.org
  6. 6. Manifesto ÁgilManifesto Ágil PrincípiosPrincípios ● Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado. ● 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. ● Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo. http://www.agilemanifesto.org
  7. 7. Manifesto ÁgilManifesto Ágil PrincípiosPrincípios ● Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto. ● 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. ● 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. ● Software funcionando é a medida primária de progresso. http://www.agilemanifesto.org
  8. 8. Manifesto ÁgilManifesto Ágil PrincípiosPrincípios ● Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente. ● Contínua atenção à excelência técnica e bom design aumenta a agilidade. ● Simplicidade--a arte de maximizar a quantidade de trabalho não realizado--é essencial. http://www.agilemanifesto.org
  9. 9. Manifesto ÁgilManifesto Ágil PrincípiosPrincípios ● As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis. ● Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo. http://www.agilemanifesto.org
  10. 10. Usar ÁgilUsar Ágil VSVS Ser ÁgilSer Ágil
  11. 11. Lean Software DevelopmentLean Software Development
  12. 12. Lean Software DevelopmentLean Software Development O que é valor?O que é valor?
  13. 13. Lean Software DevelopmentLean Software Development Mas o que é valor em software livre? http://www.fsf.org/working-together/gang
  14. 14. Trabalho x ValorTrabalho x Valor Trabalho com desperdício oculto Trabalho com valor agregado Trabalho com desperdício evidente
  15. 15. ● Sete Princípios ● Eliminar desperdícios ● Incluir a qualidade no processo ● Amplificar aprendizado ● Decidir tão tarde quanto possível ● Entregar rápido ● Empoderar o time ● Ver o todo Lean Software DevelopmentLean Software Development
  16. 16. ● Desperdícios ● Trabalho incompleto (estoque) ● Funcionalidades extras (superprodução) ● Reaprendizado ● Processos extras (superprocessamento) ● Troca de Tarefas ● Espera ● Defeito Lean Software DevelopmentLean Software Development
  17. 17. KanbanKanban http://fabrica.ms.senac.br ● Visualiza o fluxo de trabalho ● WIP: Work In Progress ● Sistema Puxado (Pull)
  18. 18. ScrumScrum http://epf.eclipse.org Backlog do Produto Backlog da Sprint Reunião Diária Entrega 24 horas 1-4 semanas
  19. 19. Extreme ProgrammingExtreme Programming
  20. 20. PropriedadePropriedade coletivacoletiva Extreme ProgrammingExtreme Programming
  21. 21. http://agilecoach.typepad.com/ Extreme ProgrammingExtreme Programming Modelo de Histórias de UsuárioModelo de Histórias de Usuário
  22. 22. <Título> Como um <papel de usuário> Eu quero <objetivo> Para que <razão de negócio> Extreme ProgrammingExtreme Programming Histórias de UsuárioHistórias de Usuário
  23. 23. Critério de Aceitação X Dado que <pré-condição A> E <pré-condição B> Quando <ação> Então <resultado> Extreme ProgrammingExtreme Programming Critérios de AceitaçãoCritérios de Aceitação
  24. 24. http://driverlayer.com/img/we%20deliver/20/any Extreme ProgrammingExtreme Programming Pequenas EntregasPequenas Entregas
  25. 25. https://oblogdoalves.wordpress.com/category/piadas/ Extreme ProgrammingExtreme Programming Projeto SimplesProjeto Simples
  26. 26. ● Código consistente ● Encoraja a propriedade coletiva Extreme ProgrammingExtreme Programming Padrões de CodificaçãoPadrões de Codificação
  27. 27. http://en.wikipedia.org Extreme ProgrammingExtreme Programming Trabalho em ParesTrabalho em Pares
  28. 28. http://martinfowler.com/books/refactoringBook.jpg Extreme ProgrammingExtreme Programming RefatoraçãoRefatoração
  29. 29. RegrasRegras I. Escrever novo código somente se já existir um teste automatizado falhando II. Eliminar duplicação Extreme ProgrammingExtreme Programming TDD – Desenvolvimento Guiado por TestesTDD – Desenvolvimento Guiado por Testes
  30. 30. Escreva um teste para o próximo pedaço da funcionalidade. 3 Passos Escreva código funcional até o teste passar. Refatore o código novo (e antigo) até ficar bem estruturado. http://www.pro-tools-expert.com Extreme ProgrammingExtreme Programming TDD – Desenvolvimento Guiado por TestesTDD – Desenvolvimento Guiado por Testes
  31. 31. http://agileinaflash.blogspot.com.br/2009/02/red-green-refactor.html Mantra do TDDMantra do TDD Extreme ProgrammingExtreme Programming TDD – Desenvolvimento Guiado por TestesTDD – Desenvolvimento Guiado por Testes
  32. 32. http://martinfowler.com Serviços Unidade UI Extreme ProgrammingExtreme Programming Automatização de TestesAutomatização de Testes
  33. 33. http://www.in2it.be Ferramenta de gerência de configuração Time de desenvolvimento Stakeholders Integração contínua Ambiente de homologação Ambiente de produção Monitoramento contínuo Extreme ProgrammingExtreme Programming Integração ContínuaIntegração Contínua
  34. 34. http://mario.wikia.com
  35. 35. MVP e MMPMVP e MMP MMP (Minimum Marketable Product – Produto MínimoMMP (Minimum Marketable Product – Produto Mínimo Comercializável)Comercializável) MVP (Minimum Value Product – Produto Viável Mínimo)MVP (Minimum Value Product – Produto Viável Mínimo) http://www.romanpichler.com
  36. 36. Dívidas TécnicasDívidas Técnicas (Technical Debt)(Technical Debt) http://www.andrejkoelewijn.com/ Negócio (Visível) Valor + Valor - Técnico (Invisível)
  37. 37. Clean CodeClean Code
  38. 38. E sim, é possível!E sim, é possível!
  39. 39. CaseCase dodo ModusModus
  40. 40. E o Segredo:E o Segredo:
  41. 41. FeedbackFeedback Constante!Constante! http://www.samatters.com
  42. 42. Métodos Ágeis paraMétodos Ágeis para Desenvolvimento de Software LivreDesenvolvimento de Software Livre Dionatan Moura Jamile Alves Porto Alegre, 09 de julho de 2015 Dionatan Moura ● @dionatanmoura ● www.dionatanmoura.com Jamile Alves ● @jsmalves Slides http://www.slideshare.net/dionatanmoura

×