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

Post on 07-Apr-2016

224 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Metodologias Ágeis

Metodologias CrystalAdaptive Software Development

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

lcn@cin.ufpe.br

Leonardo Cole Netolcn@cin.ufpe.br

Agenda

Introdução O Jogo Filosofias A família Crystal Crystal Clear vs XP Adaptive Software Development Conclusão Referências

Leonardo Cole Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

Família Crystal (2)

D10

E8

L4

C6

Leonardo Cole Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

Adaptive Software Development

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

Leonardo Cole Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

Conclusão

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

Alistair Cockburn

Leonardo Cole Netolcn@cin.ufpe.br

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 Netolcn@cin.ufpe.br

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

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

top related