Table Of ContentExperiˆencias com desenvolvimento ´agil
Dairton Luiz Bassi Filho
Dissertac¸a˜o apresentada
ao
Instituto de Matema´tica e Estat´ıstica
da
Universidade de Sa˜o Paulo
para
obtenc¸a˜o do t´ıtulo
de
Mestre em Cieˆncias
´
Area de Concentra¸c˜ao: Ciˆencia da Computa¸c˜ao
Orientador: Prof. Dr. Eduardo Colli
S˜ao Paulo, 20 fevereiro de 2008
ii
Agradecimentos
Este trabalho aconteceu gra¸cas a colabora¸c˜ao de muitas mentes. Algumas influenciaram direta-
mente com sugest˜oes e opini˜oes, outras proveram est´ımulos para reflex˜oes, e outras mais, involunta-
riamente colaboraram simplesmente pelo contato. Todas de alguma forma me ajudaram a lapidar
este trabalho.
Agrade¸co`aminhafam´ıliaeaomeuorientador, Prof. Dr. EduardoColli, pelaconfian¸ca, incentivo
e apoio durante todo o longo percurso deste mestrado. Em especial, agrade¸co ao Prof. Dr. Fabio
Kon, pela exigˆencia, colabora¸c˜ao e confian¸ca.
Agrade¸co aos companheiros ´ageis da AgilCoop. Alexandre Freire, Paulo Cheque, Mariana Bravo,
HugoCorbucci,Prof. Dr. Jef,eJulianMonteiro,quetˆemsededicadoatemas´ageis. Eespecialmente,
aoProf. Dr. AlfredoGoldman,quesempreofereceuopini˜oeseajudade´otimaqualidade,eaoparceiro
de aventuras ´ageis, Danilo Sato, pelas sugest˜oes que deu, principalmente na reta final.
Agrade¸coatodosquecontribu´ıramcomoColm´eia,poiscolaboraramcomumsoftwareimportante
para o IME. Ao pessoal da PR&A, em particular ao S´ergio Malacrida pela confian¸ca que depositou
durante todo o projeto. A` equipe da ALESP pelo excelente trabalho que realizamos juntos. E ao
pessoal do Ikwa, que trabalha muito para fazer um sonho se tornar realidade.
Obrigado, esta obra s´o foi poss´ıvel gra¸cas a todos vocˆes!
iii
iv
Resumo
A grande demanda por sistemas e as dificuldades em produzi-los motiva a busca por maneiras
mais objetivas e eficazes para desenvolvˆe-los. As metodologias ´ageis apresentam uma abordagem
que considera os fatores humanos envolvidos no processo de desenvolvimento de software e foca na
entregadeprodutoscomom´aximodevaloragregado. Contudo,aimensaquantidadedevari´aveisque
influenciamnaprodu¸c˜aodesistemasabrangefatorest´ecnicos,comerciais,estrat´egicosemotivacionais
que tornam cada projeto altamente espec´ıfico e exige uma metodologia personalizada.
Nestetrabalho,apresentamosasprincipaismetodologias´ageisdedesenvolvimentodesoftwareque
serviram de base para as metodologias que adotamos nos quatro casos de estudo que descrevemos e
dosquaisextra´ımospercep¸c˜oeseumconjuntodepr´aticasquepodemseradotadosporoutrasequipes
de desenvolvimento.
Palavras-chave: M´etodos ´ageis, Programa¸c˜ao Extrema, Pr´aticas, XP, Scrum, Crystal, Desenvolvi-
mento de Software, Engenharia de Software.
v
vi
Abstract
The great demand for systems and the hard path to build software motivates the search for
more efficient ways to develop them. The agile methodologies propose an approach that consider the
human factors involved in software development processes and put the focus on delivery products
with the maximum business value. However, the wide amount of variables involved makes every
project extremely specific that it requires a customized methodology.
In this work, we introduce the principles of agile methodologies of software development that
were the basis to the methodologies that we implemented in four cases that we describe, and from
where we extract perceptions and a set of practices that can be useful for other development teams.
Keywords: Agile Methods, Extreme Programming, Practices, XP, Scrum, Crystal, Software Deve-
lopment, Software Engineering.
vii
viii
Sum´ario
Lista de Figuras xiii
Lista de Tabelas xv
1 Introdu¸c˜ao 1
1.1 Nosso Escopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 A Quem se Destina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Defini¸c˜oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Organiza¸c˜ao do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Metodologias de Desenvolvimento de Software 9
2.1 Modelos Tradicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Cascata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Prototipa¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.3 Espiral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.4 Rapid Application Development - RAD . . . . . . . . . . . . . . . . . . . . . . 15
2.1.5 Rational Unified Process - RUP . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Processos Emp´ıricos e Processos Prescritivos . . . . . . . . . . . . . . . . . . . . . . . 19
ix
x SUMA´RIO
2.3 Modelos A´geis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1 Surgimento dos M´etodos A´geis . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Caracter´ısticas Comuns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.3 Programa¸c˜ao eXtrema - XP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.4 Desenvolvimento Lean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.5 Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3.6 Evolutionary Project Management - EVO . . . . . . . . . . . . . . . . . . . . . 56
2.3.7 Feature Driven Development - FDD . . . . . . . . . . . . . . . . . . . . . . . . 58
2.3.8 M´etodos Crystal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.9 Dynamic Systems Development Method - DSDM . . . . . . . . . . . . . . . . . 70
2.3.10 Adaptative Software Development - ASD . . . . . . . . . . . . . . . . . . . . . 74
3 Experiˆencias com Desenvolvimento A´gil 75
3.1 Na Universidade - IME-USP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.1.1 Os Sistemas da USP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.1.2 Colm´eia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.1.3 XP e a Academia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.1.4 Fase Incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.1.5 Fase de Matura¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.1.6 Avalia¸c˜ao da Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.2 Na Indu´stria - PR&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.2.1 O Projeto e a Equipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.2.2 Processo de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.2.3 Pr´aticas A´geis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.2.4 Conclus˜ao do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Description:Keywords: Agile Methods, Extreme Programming, Practices, XP, Scrum, Crystal, Software Deve- lopment 6Todos os dados sobre o Manifesto Ágil, a Scrum Alliance e o DSDM Consortium foram coletados em 10/11/2007 [25] Mike Cohn, Agile estimating and planning, Prentice Hall, 2006.