Modelagem ágil - Agile modeling

A modelagem ágil (AM) é uma metodologia para modelar e documentar sistemas de software com base nas melhores práticas. É um conjunto de valores e princípios que podem ser aplicados em um projeto de desenvolvimento de software (ágil). Essa metodologia é mais flexível do que os métodos de modelagem tradicionais, tornando-a mais adequada em um ambiente de mudanças rápidas. Faz parte do kit de ferramentas de desenvolvimento ágil de software .

A modelagem ágil é um suplemento para outras metodologias de desenvolvimento ágil , como Scrum , Extreme Programming (XP) e Rational Unified Process (RUP). Ele está explicitamente incluído como parte da estrutura de entrega ágil disciplinada (DAD). De acordo com as estatísticas de 2011, a modelagem ágil foi responsável por 1% de todo o desenvolvimento ágil de software.

Práticas básicas

Existem várias práticas principais:

Documentação

  1. Documente continuamente. A documentação é feita ao longo do ciclo de vida, em paralelo à criação do resto da solução.
  2. Documento atrasado. A documentação é feita o mais tarde possível, evitando idéias especulativas que podem mudar em favor de informações estáveis.
  3. Especificações executáveis. Os requisitos são especificados na forma de "testes do cliente" executáveis, em vez de documentação "estática" não executável.
  4. Informações de fonte única. As informações (modelos, documentação, software), são armazenadas em um local e apenas em um local, para evitar dúvidas sobre qual é a versão / informação "correta".

Modelagem

  1. Participação ativa das partes interessadas. As partes interessadas da solução / software que está sendo modelado devem estar ativamente envolvidas nisso. Esta é uma extensão da prática do cliente no local da Extreme Programming .
  2. Visão de arquitetura. A equipe realiza uma modelagem leve e de alto nível que mal é boa o suficiente (JBGE) no início de um projeto de software para explorar a estratégia de arquitetura que a equipe acredita que funcionará.
  3. Ferramentas inclusivas. Prefira ferramentas de modelagem, como quadros brancos e papel, que sejam fáceis de trabalhar (elas são inclusivas).
  4. Modelagem de iteração. Quando um requisito / item de trabalho não foi suficientemente explorado em detalhes por meio da modelagem antecipada, a equipe pode escolher fazer essa exploração durante sua sessão de planejamento de iteração / sprint. A necessidade de fazer isso geralmente é vista como um sintoma de que a equipe não está realizando uma modelagem antecipada suficiente.
  5. Apenas mal o suficiente (JBGE). Todos os artefatos, incluindo modelos e documentos, devem ser suficientes apenas para a tarefa em questão. O JBGE é de natureza contextual, no caso do modelo é determinado por uma combinação da complexidade de tudo o que o modelo descreve e as habilidades do público para esse modelo.
  6. Modelagem prospectiva. Uma equipe ágil analisará seu backlog em uma ou mais iterações / sprints à frente para garantir que um requisito / item de trabalho esteja pronto para ser trabalhado. Também chamado de "preparação do backlog" ou "refinamento do backlog" no Scrum .
  7. Model storming. Uma curta sessão de modelagem ágil, geralmente improvisada. Sessões de model storming são realizadas para explorar os detalhes de um requisito ou aspecto de seu design.
  8. Vários modelos. Os modeladores ágeis devem saber como criar uma variedade de tipos de modelo (como histórias de usuário, mapas de história, modelos de dados, diagramas de linguagem de modelagem unificada (UML) e muito mais) para aplicar o melhor modelo para a situação em questão.
  9. Requisitos priorizados. Os requisitos devem ser trabalhados em ordem de prioridade.
  10. Previsão de requisitos. A equipe realiza uma modelagem leve e de alto nível que é JBGE no início de um projeto de software para explorar os requisitos das partes interessadas.

Limitações

Existe uma dependência significativa da comunicação pessoal e da colaboração do cliente. As disciplinas de modelagem ágil podem ser difíceis de aplicar:

  • Em grandes equipes (digamos 30 ou mais) sem suporte de ferramentas adequado
  • Onde os membros da equipe são incapazes de compartilhar e colaborar em modelos (o que tornaria o desenvolvimento ágil de software em geral difícil)
  • Quando as habilidades de modelagem são fracas ou inexistentes.

Veja também

Referências

links externos