Metodologias Ágeis
Metodologias Crystal
Adaptive Software Development
Tópicos Avançados de Engenharia de Software 3
Leonardo Cole Neto
[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 Neto
[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 Neto
[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 Neto
[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 Neto
[email protected]
People as Non-Linear, First-Order
Components

Formalismos matemáticos
–
–

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
–

As pessoas não estavam interessadas em aprender
Tiveram sucesso em ignorar e ainda assim produzir software
“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 Neto
[email protected]
People, success and failure modes





People are communicating beings, doing best face-toface, 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 Neto
[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 Neto
[email protected]
Just-In-Time Methodology
Construction

Durante primeira iteração: refazer entrevistas
–

Depois de cada iteração: workshop
–
–

Are we going to make it, working the way we are
working?
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 Neto
[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 Neto
[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
Algum custo
Alto custo
Custo de vidas
(C)
(D)
(E)
(L)
Quanto a quantidade de pessoas envolvidas
–
–
–
–
Até 6 pessoas
De 7 à 20
De 21 à 40
De 41 à 80
(Clear)
(Yellow)
(Orange)
(Red)
Leonardo Cole Neto
[email protected]
Família Crystal (2)
L4
E8
D10
C6
Leonardo Cole Neto
[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 Neto
[email protected]
Crystal Orange - Metodologia

Papéis
–

Divisão em times responsáveis por:
–



“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”
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 Neto
[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, interteam 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 Neto
[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 Neto
[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 Neto
[email protected]
Adaptive Software Development



Ciclo de vida orientado a mudanças
Desenvolvimento baseado em componentes
Diversas semelhanças com o Crystal
Leonardo Cole Neto
[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 Neto
[email protected]
Conclusão
“Desenvolvimento de software é um jogo de
cooperação, usando desenvolvedores que
pensam e fazem”
Alistair Cockburn
Leonardo Cole Neto
[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 Neto
[email protected]
Perguntas ...
Ser flexível é ser ágil?
Ser produtivo é não “perder” tempo com normas?
Ser tolerante é permitir tudo?
Leonardo Cole Neto
[email protected]
Download

Crystal