21
Agile Modeling Júlio Lins – Junho 2003

Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

Embed Size (px)

Citation preview

Page 1: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

Agile ModelingJúlio Lins – Junho 2003

Page 2: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

2 / 22

Agile Alliance

• Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming

• O grupo se denomina Agile Allience• É então publicado o Manifesto for Agile

Software Development

Page 3: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

3 / 22

Manifesto

• O manifesto estabelece 4 valores seguidos por metodologias ágeis– Interações e indivíduos acima de processos e

ferramentas– Software em funcionamento acima de

documentação completa– Colaboração de clientes acima de negociação

contratual– Atendimento a mudanças acima do

planejamento inicial

Page 4: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

4 / 22

Agile Modeling

• Define um conjunto de valores, princípios e práticas a serem acopladas a um método ágil de modelagem.

Page 5: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

5 / 22

Filosofia

• Agilizar a criação e manutenção de modelos através de práticas ágeis e eficazes

• Modelos incluem requisitos, análise, projeto, modelagem de banco de dados

• Foco no uso de ferramentas simples– Quadro branco– Post-it– Cartões CRC

Page 6: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

6 / 22

Valores

• Comunicação• Simplicidade• Feedback• Coragem• Humildade

– Desenvolvedores ágeis reconhecem que não sabem de tudo e procuram aprender se comunicando com outros

– Não são “donos da verdade”, simplesmente atendem às demandas dos seus clientes

XP

Page 7: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

7 / 22

Alguns princípios

• Software é o principal objetivo– Software de qualidade atendendo aos requisitos

é mais importante que documentação• Travel light

– Documentação boa o bastante para alcançar os objetivos

– Avaliar com cautela documentos a serem mantidos

• Abraçar mudanças– Mudanças fazem parte do desenvolvimento

• Supor simplicidade– A melhor solução é a mais simples

Page 8: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

8 / 22

Alguns princípios 2

• Facilitar o futuro– Facilidade de manutenção, documentação e

motivação dos desenvolvedores é importante para o próximo release

• Qualidade– Qualidade para atender clientes e

desenvolvedores• Feedback rápido

– Artefatos devem ser validados o mais breve possível por outros desenvolvedores e envolvidos

• Conteúdo é mais importante que a representação

Page 9: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

9 / 22

Práticas – Desenvolvimento Iterativo e Incremental• Usar os artefatos adequados

– Diferentes modelos para diferentes situações• Criar vários modelos em paralelo

– Cada modelo oferece uma visão diferente da realidade

• Passar para outro artefato– Quando houver dificuldade em um modelo, tente

outro• Modelar em pequenos incrementos

– Modelos complexos deve ser divididos em porções liberadas uma de cada vez

Page 10: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

10 / 22

Práticas – Trabalho em grupo• Modelar em grupo

– Feedback dos colegas evita erros• Participação ativa dos envolvidos

– Informações sobre o negócio e feedback devem estar disponíveis

• Propriedade coletiva– Distribui o conhecimento e permite feedback

• Modelos disponíveis publicamente– Desenvolvedores têm acesso fácil a todos os

modelos

Page 11: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

11 / 22

Práticas - Simplicidade

• Criar conteúdo simples– Modelos devem modelar apenas os aspectos

necessários para atender ao público alvo• Simplificar representação

– Evitar detalhes desnecessários sobre elementos do modelo

• Adotar ferramentas mais simples– O importante é modelar, e não o modelo em si.

O registro pode ser feito com câmeras digitais, scanners, etc.

Page 12: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

12 / 22

Práticas – Validando o trabalho• Considerar testabilidade

– Ao modelar, levar em conta como o código será testado. Se não puder ser testado, não deve ser construído.

• Provar o modelo com código– A implementação do modelo prova que ele

realmente está correto

Page 13: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

13 / 22

Mais algumas práticas

• Usar padrões de projeto– Simplificar o padrão para atender

suficientemente às necessidades do modelo• Descartar modelos temporários

– Boa parte da documentação serve apenas para entender o problema

• Atualizar modelos quando estritamente necessário– Caso haja impacto se o modelo ficar

desatualizado, justifique claramente o custo de atualizá-lo

Page 14: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

14 / 22

Modelos ágeis

• Cumprem seu objetivo– O sucesso do modelo é definido pelo

entendimento do público alvo• São fáceis de entender

– São voltados ao público alvo do modelo• São suficientemente precisos

– Não precisam refletir perfeitamente a realidade modelada. Erros no modelo são tolerados.

• São suficientemente consistentes– Inconsistências entre artefatos diferentes são

toleradas

Page 15: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

15 / 22

Modelos ágeis 2

• São suficientemente detalhados– O nível de detalhe deve ser suficiente para

atender ao objetivo em questão• Agregam valor positivo

– O benefício de um modelo deve necessariamente cobrir o seu custo de criação

• São tão simples quanto possível– Usar o mínimo conjunto de notações que atende

ao trabalho

Page 16: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

16 / 22

Exemplos de modelos ágeis

Diagrama de atividade Fluxo navegacional

Page 17: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

17 / 22

Áreas de trabalho ágeis

• Espaço reservado• Quadros brancos abundantes• Câmera digital• Suprimento de modelagem

– Pilotos, post-it, etc• Mesa grande

– Para modelos CRC, etc• Espaço para colar cartazes• Computador e Projetor• Livros

Page 18: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

18 / 22

Times ágeis

• Desenvolvedor– Hábil para trabalhos em grupo, comunicativo,

prático, disciplinado, inquisidor, realista– Muitos generalistas e poucos especialistas

• A mentalidade deve ser focada nos objetivos do grupo

• Todos devem participar das atividades ativamente com opiniões construtivas

Page 19: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

19 / 22

Estou usando Agile Modeling?• Quando todas as práticas principais

estiverem sendo usadas• Práticas possuem sinergia entre si e

dependem uma das outras para funcionar• Se alguma prática deixou de ser adotada,

os benefícios são bastante prejudicados

Page 20: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

21 / 22

Conclusão

• Agile Modeling define valores, princípios e práticas para serem aplicados em outras metodologias

• Não é um processo prescritivo– Não define atividades e passos

• Documentação é produzida de maneira ágil e prática

• Requer um ambiente e pessoal diferenciado

Page 21: Agile Modeling Júlio Lins – Junho 2003. 2 / 22 Agile Alliance Em 2001, reune-se um grupo de representantes das metodologias eXtreme Programming, SCRUM,

22 / 22

Referências• Agile Modeling

www.agilemodeling.com• Agile Alliance

www.agilealliance.org• Agile Data

www.agiledata.org

• Agile Modeling, Scott Ambler 2002, Wiley

• An Introduction to Agile Modelingwww.agiledata.org/essays/agileModeling.html

• The New Methodologywww.martinfowler.com/articles/newMethodology.html

• A Vision for the Agile Data Methodwww.agiledata.org/essays/vision.html

• Evolutionary Database Designwww.martinfowler.com/articles/evodb.html