Upload
ronaldo-carvalho-salazar
View
213
Download
0
Embed Size (px)
Citation preview
Agile ModelingJúlio Lins – Junho 2003
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
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
4 / 22
Agile Modeling
• Define um conjunto de valores, princípios e práticas a serem acopladas a um método ágil de modelagem.
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
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
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
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
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
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
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.
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
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
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
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
16 / 22
Exemplos de modelos ágeis
Diagrama de atividade Fluxo navegacional
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
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
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
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
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