Upload
dionatan-moura
View
228
Download
5
Embed Size (px)
Citation preview
Métodos Ágeis para Métodos Ágeis para Desenvolvimento de Desenvolvimento de
Software LivreSoftware Livre
Dionatan MouraJamile Alves
Porto Alegre, 09 de julho de 2015
Quem somos?Quem somos?
Jamile AlvesDionatan Moura
Ágil e Software Ágil e Software Livre?Livre?
Métodos ÁgeisMétodos Ágeis● Manifesto Ágil● Lean Software Development● Kanban● Scrum● eXtreme Programming
Manifesto ÁgilManifesto ÁgilValoresValores
● Indivíduos e interaçõesmais que processos e ferramentas
● Software em funcionamentomais que documentação abrangente
● Colaboração com o clientemais que negociação de contratos
● Responder a mudançasmais que seguir um plano
http://www.agilemanifesto.org
Manifesto ÁgilManifesto ÁgilPrincí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
Manifesto ÁgilManifesto ÁgilPrincí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
Manifesto ÁgilManifesto ÁgilPrincí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
Manifesto ÁgilManifesto ÁgilPrincí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
Usar ÁgilUsar ÁgilVSVS
Ser ÁgilSer Ágil
Lean Software DevelopmentLean Software Development
Lean Software DevelopmentLean Software Development
O que é valor?O que é valor?
Lean Software DevelopmentLean Software Development
Mas o que é valor em software livre?
http://www.fsf.org/working-together/gang
Trabalho x ValorTrabalho x Valor
Trabalho com desperdício oculto
Trabalho com valor agregado
Trabalho com desperdício evidente
● 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
● Desperdícios
● Trabalho incompleto (estoque)● Funcionalidades extras (superprodução)● Reaprendizado● Processos extras (superprocessamento)● Troca de Tarefas● Espera● Defeito
Lean Software DevelopmentLean Software Development
KanbanKanban
http://fabrica.ms.senac.br
● Visualiza o fluxo de trabalho● WIP: Work In Progress● Sistema Puxado (Pull)
ScrumScrum
http://epf.eclipse.org
Backlogdo Produto
Backlogda Sprint
ReuniãoDiária
Entrega24 horas
1-4semanas
Extreme ProgrammingExtreme Programming
Propriedade Propriedade coletivacoletiva
Extreme ProgrammingExtreme Programming
http://agilecoach.typepad.com/
Extreme ProgrammingExtreme ProgrammingModelo de Histórias de UsuárioModelo de Histórias de Usuário
<Título> Como um <papel de usuário> Eu quero <objetivo> Para que <razão de negócio>
Extreme ProgrammingExtreme ProgrammingHistórias de UsuárioHistórias de Usuário
Critério de Aceitação XDado que <pré-condição A> E <pré-condição B> Quando <ação> Então <resultado>
Extreme ProgrammingExtreme ProgrammingCritérios de AceitaçãoCritérios de Aceitação
http://driverlayer.com/img/we%20deliver/20/any
Extreme ProgrammingExtreme ProgrammingPequenas EntregasPequenas Entregas
https://oblogdoalves.wordpress.com/category/piadas/
Extreme ProgrammingExtreme ProgrammingProjeto SimplesProjeto Simples
● Código consistente● Encoraja a propriedade coletiva
Extreme ProgrammingExtreme ProgrammingPadrões de CodificaçãoPadrões de Codificação
http://en.wikipedia.org
Extreme ProgrammingExtreme ProgrammingTrabalho em ParesTrabalho em Pares
http://martinfowler.com/books/refactoringBook.jpg
Extreme ProgrammingExtreme ProgrammingRefatoraçãoRefatoração
RegrasRegrasI. Escrever novo código somente se já existir um teste automatizado falhando
II. Eliminar duplicação
Extreme ProgrammingExtreme ProgrammingTDD – Desenvolvimento Guiado por TestesTDD – Desenvolvimento Guiado por Testes
Escreva um teste para o próximo
pedaço da funcionalidade.
3 PassosEscreva 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 ProgrammingTDD – Desenvolvimento Guiado por TestesTDD – Desenvolvimento Guiado por Testes
http://agileinaflash.blogspot.com.br/2009/02/red-green-refactor.html
Mantra do TDDMantra do TDD
Extreme ProgrammingExtreme ProgrammingTDD – Desenvolvimento Guiado por TestesTDD – Desenvolvimento Guiado por Testes
http://martinfowler.com
Serviços
Unidade
UI
Extreme ProgrammingExtreme ProgrammingAutomatização de TestesAutomatização de Testes
http://www.in2it.be
Ferramenta de gerência de configuração
Time de desenvolvimento
StakeholdersIntegração contínua
Ambiente dehomologação
Ambiente deprodução
Monitoramentocontínuo
Extreme ProgrammingExtreme ProgrammingIntegração ContínuaIntegração Contínua
http://mario.wikia.com
MVP e MMPMVP e MMP
MMP (Minimum Marketable Product – Produto Mínimo MMP (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
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)
Clean CodeClean Code
E sim, é possível!E sim, é possível!
Case Case do do
ModusModus
E o Segredo:E o Segredo:
FeedbackFeedbackConstante!Constante!
http://www.samatters.com
Métodos Ágeis paraMétodos Ágeis paraDesenvolvimento de Software LivreDesenvolvimento de Software Livre
Dionatan MouraJamile Alves
Porto Alegre, 09 de julho de 2015
Dionatan Moura● @dionatanmoura
● www.dionatanmoura.com
Jamile Alves● @jsmalves
Slideshttp://www.slideshare.net/dionatanmoura