Agile Modeling Jlio Lins Junho 2003 Agile Alliance

  • Slides: 21
Download presentation
Agile Modeling Júlio Lins – Junho 2003

Agile Modeling Júlio Lins – Junho 2003

Agile Alliance • Em 2001, reune-se um grupo de representantes das metodologias e. Xtreme

Agile Alliance • Em 2001, reune-se um grupo de representantes das metodologias e. Xtreme 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 2 / 22

Manifesto • O manifesto estabelece 4 valores seguidos por metodologias ágeis – Interações e

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 3 / 22

Agile Modeling • Define um conjunto de valores, princípios e práticas a serem acopladas

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

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

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 5 / 22

Valores • • • Comunicação Simplicidade Feedback Coragem Humildade XP – Desenvolvedores ágeis reconhecem

Valores • • • Comunicação Simplicidade Feedback Coragem Humildade XP – 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 6 / 22

Alguns princípios • Software é o principal objetivo – Software de qualidade atendendo aos

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 7 / 22

Alguns princípios 2 • Facilitar o futuro – Facilidade de manutenção, documentação e motivação

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 8 / 22

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

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 9 / 22

Práticas – Trabalho em grupo • Modelar em grupo – Feedback dos colegas evita

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 10 / 22

Práticas - Simplicidade • Criar conteúdo simples – Modelos devem modelar apenas os aspectos

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. 11 / 22

Práticas – Validando o trabalho • Considerar testabilidade – Ao modelar, levar em conta

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 12 / 22

Mais algumas práticas • Usar padrões de projeto – Simplificar o padrão para atender

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 13 / 22

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

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 14 / 22

Modelos ágeis 2 • São suficientemente detalhados – O nível de detalhe deve ser

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 15 / 22

Exemplos de modelos ágeis Diagrama de atividade Fluxo navegacional 16 / 22

Exemplos de modelos ágeis Diagrama de atividade Fluxo navegacional 16 / 22

Áreas de trabalho ágeis • • Espaço reservado Quadros brancos abundantes Câmera digital Suprimento

Á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 17 / 22

Times ágeis • Desenvolvedor – Hábil para trabalhos em grupo, comunicativo, prático, disciplinado, inquisidor,

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 18 / 22

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

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 19 / 22

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

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 21 / 22

Referências • Agile Modeling www. agilemodeling. com • Agile Alliance www. agilealliance. org •

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 Modeling www. agiledata. org/essays/agile. Modeling. html • The New Methodology www. martinfowler. com/articles/new. Methodology. html • A Vision for the Agile Data Method www. agiledata. org/essays/vision. html • Evolutionary Database Design www. martinfowler. com/articles/evodb. html 22 / 22