Agile Modeling Robson Godoi Grupo de Estudos em Processos de Desenvolvimento CIN - UFPE Outubro 2002 Conteúdo Objetivo Introdução Manifesto for Agile Software Development Agile Modeling Agile Modeling e XP Agile Modeling e UP Conclusões Referências Objetivo Apresentar os conceitos de Análise de Projetos Ágeis, mostrando as principais caracteristicas da Agile Modeling Conteúdo Objetivo Introdução Manifesto for Agile Software Development Agile Modeling Agile Modeling e XP Agile Modeling e UP Conclusões Referências Introdução Pesquisas indicam a pouca “qualidade” dos softwares desenvolvidos. Cronogramas e orçamentos estourados; Necessidades dos clientes não alcançadas; Má comunicação com o cliente. A procura pela “bala de prata” (Brooks -1987) Problemas: Complexidade, Conformidade, Mutabilidade e Invisibilidade Soluções: Linguagem de alto-nível, Prototipação, Desenvolvimento incremental e Bons desenvolvedores. Heavyweight x Lightweight Heavyweight (Plan-driven) Pregam planejamento extensivo, processos bem definidos e rigoroso reuso para produzir uma atividade de desenvolvimento eficiente e previsível. Amadurecendo gradualmente para atingir a perfeição. Lightweight (Agile) Pregam planejar o suficiente, documentar o suficiente, utilizar a individualidade, codificar de maneira simples e eficiente, buscando a satisfação momentânea do cliente. Ser bom o suficientemente. The Planning Spectrum (Boehm - 2002) Conteúdo Objetivo Introdução Manifesto for Agile Software Development Agile Modeling Agile Modeling e XP Agile Modeling e UP Conclusões Referências Agile Manifesto Fevereiro de 2001. 17 pessoas da área de desenvolvimento de software se reuniram e formaram a Agile Alliance. Buscavam uma alternativa à processos heavyweight de desenvolvimento do software. Incentivavam melhores maneiras de se desenvolver software. Formularam princípios que definem os critérios para processos ágeis de desenvolvimento. Valores da Agile Alliance Indivíduos e Interações mais que processos e ferramentas. Software operante mais que documentações completas. Colaboração do cliente mais que negociações contratuais Responder às mudanças mais que seguir um planejamento Conteúdo Objetivo Introdução Manifesto for Agile Software Development Agile Modeling Agile Modeling e XP Agile Modeling e UP Conclusões Referências O que é um Agile Model ? É um modelo bom o suficiente, nada mais, que exibe as seguintes características: Atende seu propósito. É inteligível. É suficientemente preciso. É suficientemente consistente. É suficientemente detalhado. Provê um valor positivo. É tão simples quanto possível. Agile Modeling (AM) É uma metodologia baseada na prática para modelagem efetiva de sistemas baseados em software. A metodologia AM é uma coleção de práticas, guiadas por princípios e valores que podem ser aplicados por profissionais de software no dia a dia. AM não é um processo prescritivo, ela não define procedimentos detalhados de como criar um dado tipo de modelo, ao invés, ela provê conselhos de como ser efetivo na atividade de modelagem. It’s “touchy-feely”, it’s not hard and fast – pense em AM como uma arte, não como uma ciência. O que é AM ? É uma atitude, não um processo prescritivo. É um suplemento aos métodos existentes, ele não é uma metodologia completa. É uma forma efetiva de se trabalhar em conjunto para atingir as necessidades dos stakeholders do projeto. É efetivo e é sobre ser efetivo. É uma coisa que funciona na prática, não é teoria acadêmica. É para o desenvolvedor médio mas não é um substituto de pessoas competentes. O que não é AM ? Não é uma bala de prata. Não é um ataque à documentação, pelo contrário AM aconselha a criação de documentos que tem valor. Não é um ataque às ferramentas CASE. Não é para todos. Objetivos de AM Definir e mostrar como colocar em prática uma coleção de valores, princípios e práticas pertinentes à modelagem efetiva e lightweight. Explorar como aplicar técnicas de modelagem em projetos de software através de uma abordagem ágil tal como XP, DSDM, SCRUM e outros. Explorar como melhorar a modelagem sob processos prescritivos como os Unified Process (UP), como o Rational Unified Process (RUP) ou o Enterprise Unified Escopo de AM Valores de AM Além dos valores definidos pela AA, incorporou e estendeu os do XP: Comunicação Simplicidade Feedback Coragem Humildade Princípios centrais de AM Simplicidade assumida Mudanças são bem-vindas O Software é seu objetivo principal Se preparar para o problemas futuros é seu objetivo secundário Mudanças incrementais Maximizar o investimento dos stakeholders Modelar com um propósito Múltiplos modelos Trabalho de qualidade Feedback rápido Viaje leve Princípios adicionais de AM Conteúdo é mais importante que representação Todos podem aprender com todos os outros Conheça seus modelos Conheça suas ferramentas Adaptação local Comunicação aberta e honesta Trabalhe com o instinto das pessoas Práticas centrais de AM Participação ativa dos stakeholders do projeto Aplique os artefatos certos Propriedade coletiva Considere a “testabilidade” Crie vários modelos em paralelo Crie conteúdo simples Represente os modelos de forma simples Apresente os modelos publicamente Passe para os outros artefatos Modele em pequenos incrementos Modele com os outros Prove, demonstre com código Use as ferramentas mais simples Práticas adicionais de AM Aplique normas de modelagem Aplique padrões “fáceis” Descarte os modelos temporários Formalize os modelos de contrato Modele para comunicar Modele para entender Reutilize recursos existentes Atualize somente quando doer Conteúdo Objetivo Introdução Manifesto for Agile Software Development Agile Modeling Agile Modeling e XP Agile Modeling e UP Conclusões Referências Agile Modeling e XP XP inclui claramente atividades de modelagem, mesmo que de forma implícita (User stores, modelos Class Responsibility Collaborator (CRC) e sketches). Metodologia baseada em práticas (Proximidade conceitual). Alguns diagramas são melhores que muitas linhas de código Documentação é preciso, mas só a necessária. Conteúdo Objetivo Introdução Manifesto for Agile Software Development Agile Modeling Agile Modeling e XP Agile Modeling e UP Conclusões Referências Unified Process (UP) Ciclo de vida para Enterprise UP (Superset do RUP) Agile Modeling e UP Princípios e práticas AM estão em UP, mesmo que de forma implícita (Participação ativa dos stakeholders, Aplique normas de modelagem, aplique o artefato correto, etc). Cultura da organização estar aberta aos valores, princípios e práticas de AM (Organizações não centradas em documentação). AM para aumentar a fluidez do processo. Conteúdo Objetivo Introdução Manifesto for Agile Software Development Agile Modeling Agile Modeling e XP Agile Modeling e UP Conclusões Referências Conclusões AM parecer ser mostrou uma metodologia bastante flexível e abrangente, permitindo uma adapdação “facil” sobre diversas metodologias existentes e consolidadas. Conteúdo Objetivo Introdução Manifesto for Agile Software Development Agile Modeling Agile Modeling e XP Agile Modeling e UP Conclusões Referências Referências www.agilemodeling.com www.agilealliance.com