metodologias Ágeis metodologias crystal adaptive software development tópicos avançados de...
TRANSCRIPT
Metodologias Ágeis
Metodologias CrystalAdaptive Software Development
Tópicos Avançados de Engenharia de Software 3Leonardo Cole Neto
Leonardo Cole [email protected]
Agenda
Introdução O Jogo Filosofias A família Crystal Crystal Clear vs XP Adaptive Software Development Conclusão Referências
Leonardo Cole [email protected]
Alistair Cockburn(pronounced "Coburn", the Scottish way )
Metodologista 20 anos coletando dados sobre projetos com e sem
sucesso Tenta juntar os fatores que contribuem para criar uma
metodologia adequada Ciclo: ignorant guess, experiência, aprendizado,
formulação de uma teoria, descobrir que estava tudo errado
"I can announce with perfect certainty and wonderful evidence what I believe, and be completely sure that it is wrong. However, I have no information as to where or how it is wrong"
Leonardo Cole [email protected]
Game: “A way of amusing oneself”
Diversos tipos– Físico, mental, individual, coletivo, competitivo,
cooperativo, goal-seeking, finito, infinito “The Software Development is like a rock
climbing game”– Cooperativo, finito, goal-seeking, coletivo– Objetivo
Produzir um sistema o mais rápido possível, considerando fatores como: custo, facilidade de uso, livre de defeitos e segurança
Leonardo Cole [email protected]
Características do Jogo
Maior experiência e técnica, escaladas mais difíceis
Individual e coletivo ao mesmo tempo Ferramentas necessárias para escaladas
sérias Planejamento e improvisação
– “Unforeseen obstacles are certain to show up” Diversão e desafio
Leonardo Cole [email protected]
People as Non-Linear, First-Order Components
Formalismos matemáticos– As pessoas não estavam interessadas em aprender– Tiveram sucesso em ignorar e ainda assim produzir software
Pessoas desenham muito, vamos produzir ferramentas– As pessoas não estavam interessadas em aprender– Tiveram sucesso em ignorar e ainda assim produzir software
O que eles tinham a dizer– “It slows me down - I won't make the schedule if I use it”
Primeiro protótipo de metodologia (IBM)– “The most palatable, low-ceremony methodology I thought possible”– As pessoas não estavam interessadas em aprender– Tiveram sucesso em ignorar e ainda assim produzir software
Leonardo Cole [email protected]
People, success and failure modes
People are communicating beings, doing best face-to-face, in person, with real-time question and answer
People have trouble acting consistently (discipline) over time.
People are highly variable, varying from day to day and place to place.
People generally want to be good citizens, are good at looking around, taking initiative, and doing "whatever is needed" to get the project to work
People prefer to fail conservatively than to risk succeeding differently
Leonardo Cole [email protected]
Just-In-Time Methodology Construction
Metodologia desenvolvida e adaptada durante o projeto Antes: melhor chute, baseado em entrevistas com pessoas de
projetos anteriores Durante: Rascunho de metodologia
– How long are the iterations and increments?– What reviews are done?– Where do people sit?– What work products need to be produced?– What standards are mandatory, what are recommended (for tools,
drawings, tests, and code)?– What does time reporting look like?– What can be done to keep communication and morale up?
Leonardo Cole [email protected]
Just-In-Time Methodology Construction
Durante primeira iteração: refazer entrevistas– Are we going to make it, working the way we are
working? Depois de cada iteração: workshop
– What did we learn?– What can we do better?
Durante outras iterações: verificações– Is this working?– Do we need to do something better in this
increment?
Leonardo Cole [email protected]
Crystal
Crystal faz parte de um família de metodologias criadas por Alistair Cockburn (1998) cujas premissas são:
Todo projeto tem necessidades, convenções e uma metodologia diferente
O funcionamento do projeto é influenciado por fatores humanos, e há melhora neste quando os indivíduos produzem melhor
Comunicação melhor e lançamentos freqüentes reduzem a necessidade de construir produtos intermediários do processo
Leonardo Cole [email protected]
Família Crystal (1)
“Strong on communication, light on work products. High productivity, self-evolving, based on human strengths and weaknesses"
Classificação dos projetos quanto a problemas causados por perdas ou falhas:
– Confortável (C)– Algum custo (D)– Alto custo (E)– Custo de vidas (L)
Quanto a quantidade de pessoas envolvidas– Até 6 pessoas (Clear)– De 7 à 20 (Yellow)– De 21 à 40 (Orange)– De 41 à 80 (Red)
Leonardo Cole [email protected]
Crystal Orange
D40 extensível para E80 1 a 2 anos de duração Time-to-market Necessidade de comunicação com equipe
atual e futura Necessidade de manter tempo e custos baixos Sistemas não críticos
Leonardo Cole [email protected]
Crystal Orange - Metodologia
Papéis– “Sponsor, Business expert, Usage expert, Technical facilitator,
Business analyst/designer, Project Manager, Architect, Design Mentor, Designer/programmer, Lead designer/ programmer, Reuse Point, Writer, Tester, UI designer”
Divisão em times responsáveis por:– Planejamento, monitoramento, arquitetura, tecnologia,
funções, infra-estrutura e testes externos Desenvolvimento incremental (2-4 meses) Rastreamento por milestones (releases e decisões
importantes) ao invés de documentos Envolvimento direto do usuário
Leonardo Cole [email protected]
Crystal Orange - Metodologia
Workshops para ajustes na metodologia no começo e fim de cada iteração
Artefatos– “Requirements document, release sequence, schedule, status
reports, UI design document, a common object model, inter-team specs, user manual, source code, test cases, and migration code”
Templates, padrões de codificação e GUI e detalhes de testes são responsabilidade de cada time
Cada indivíduo é livre para utilizar quaisquer técnicas
Leonardo Cole [email protected]
Crystal Clear
D6 extensível para E8 Papéis reduzidos
– Separados: “Sponsor, Senior designer, Designer/ programmer, User (part-time at least)”
– Compartilhados: “Project Coordinator, Business Expert, Requirements Gatherer”
Um único time Desenvolvimento incremental (<2 meses) Artefatos reduzidos
– “Release sequence, schedule of user viewings and deliveries, annotated use cases, design sketches & notes as needed, screen drafts, a common object model, running code, migration code, test cases and user manual”
Leonardo Cole [email protected]
Crystal Clear vs XP
XP é considerado um projeto D6-D14 Única grande diferença
– Disciplina vs Tolerância “XP is a high-discipline, low-tolerance
methodology while Crystal Clear is prioritized for tolerance”
Crystal Clear pode ser um primeiro passo para utilização do XP
Leonardo Cole [email protected]
Adaptive Software Development
Ciclo de vida orientado a mudanças Desenvolvimento baseado em componentes Diversas semelhanças com o Crystal
Leonardo Cole [email protected]
Unindo forças
“Jim Highsmith, author of Adaptive Software Development, and Alistair Cockburn, author of the Software Development as a Cooperative Game have decided unify their work on light and self-adaptive methodologies”
Leonardo Cole [email protected]
Conclusão
“Desenvolvimento de software é um jogo de cooperação, usando desenvolvedores que pensam e fazem”
Alistair Cockburn
Leonardo Cole [email protected]
Referências
www.crystalmethodologies.org/ alistair.cockburn.us/ www.agilealliance.org/articles Software development as a cooperative Game
– Addison-Wesley 2002 www.cutter.com/consultants/charetter.html
Leonardo Cole [email protected]
Perguntas ...Ser flexível é ser ágil?
Ser produtivo é não “perder” tempo com normas?Ser tolerante é permitir tudo?