metodologias Ágeis metodologias crystal adaptive software development tópicos avançados de...

22
Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto [email protected]

Upload: isabel-laranjeira-salazar

Post on 07-Apr-2016

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

Metodologias Ágeis

Metodologias CrystalAdaptive Software Development

Tópicos Avançados de Engenharia de Software 3Leonardo Cole Neto

[email protected]

Page 2: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 3: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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"

Page 4: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 5: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 6: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 7: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 8: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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?

Page 9: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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?

Page 10: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 11: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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)

Page 12: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

Leonardo Cole [email protected]

Família Crystal (2)

D10

E8

L4

C6

Page 13: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 14: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 15: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 16: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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”

Page 17: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 18: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

Leonardo Cole [email protected]

Adaptive Software Development

Ciclo de vida orientado a mudanças Desenvolvimento baseado em componentes Diversas semelhanças com o Crystal

Page 19: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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”

Page 20: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

Leonardo Cole [email protected]

Conclusão

“Desenvolvimento de software é um jogo de cooperação, usando desenvolvedores que pensam e fazem”

Alistair Cockburn

Page 21: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

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

Page 22: Metodologias Ágeis Metodologias Crystal Adaptive Software Development Tópicos Avançados de Engenharia de Software 3 Leonardo Cole Neto lcn@cin.ufpe.br

Leonardo Cole [email protected]

Perguntas ...Ser flexível é ser ágil?

Ser produtivo é não “perder” tempo com normas?Ser tolerante é permitir tudo?