Desenvolvimento Ágil 1
Just-in-Time Custo = Espaço + Publicidade + Pessoal De que forma poderiamos bater a concorrência se um destes factores fosse zero? 2
Just-in-time Inventory is waste. Custo de armazenamento Risco de não venda 3
Just-in-time Problemas Como absorver flutuções da procura? Como garantir a qualidade das partes? 4
Just-in-time A inexistência de stocks exige uma nova forma de organizar o trabalho Near-zero setup-time Higher work flexibility: Multi-skilled workers Well defined interfaces among components Better quality control 5
Just-in-time Benefícios Menor custo Maior qualidade 6
Just-in-time e o software Formas de desperdício no desenvolvimento de um produto de software Implementar e testar funcionalidades que o cliente não necessita Fazer documentação que o cliente não vai ler Corrigir bugs que nunca deviam ter existido Solução: Software pull system 7
Just-in-time e o software 8
Motivation The clients or users are not sure what they want They have difficulty stating all they want and know Many details of what they want will only be revealed during development As they see the product develop, they change their minds External forces (e.g. a competitor s product or service) lead to changes or enhancements in requests Source:Agile and Iterative Development: A Manager s Guide 9
The software pool-system Rapid continuous delivery of working software Responder às necessidades mais imediatas dos clientes Ciclos pequenos de desenvolvimento: 1 semana 1 mês (timeboxes) Sem logística invertida Zero Defects Quaisquer alterações são incorporadas na próxima release 10
Agile Duas grandes vantagens: 1. Adaptação à mudança 2. Visibilidade 11
The Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan 12
The Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan 13
Making Agile Work! Self-organizing teams Shared ownership (o código é de todos) Quality control Pair programming Code inspections Test-Driven development Technical Excelence Planning Involve everyone Daily Monitoring and replaning 14
Scrum in 100 words Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time. It allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month). The business sets the priorities. Teams self-organize to determine the best way to deliver the highest priority features. Every two weeks to a month anyone can see real working software and decide to release it as is or continue to enhance it for another sprint. 15
Scrum has been used by: Microsoft Yahoo Google Electronic Arts Lockheed Martin Philips Siemens Nokia BBC 16
Scrum has been used for: Commercial software In-house development Contract development Fixed-price projects Financial applications ISO 9001-certified applications Embedded systems 24x7 systems with 99.999% uptime requirements the Joint Strike Fighter Video game development FDA-approved, life-critical systems Satellite-control software Websites Handheld software Mobile phones Network switching applications ISV applications Some of the largest applications in use 17
Characteristics Self-organizing teams Product progresses in a series of monthlong sprints Requirements are captured as items in a list of product backlog No specific engineering practices prescribed One of the agile processes 18
Scrum in 10 mins or less http://www.youtube.com/watch? v=q5k7a9yeoui&feature=player_embedded 19
Putting it all together 20
Referências Extreme Programming: A gentle introduction http://www.extremeprogramming.org/ Manual do SCRUM (página da cadeira) The SCRUM Alliance Web site http://www.scrumalliance.org/ 21