Neste artigo, exploramos os resultados do uso da ferramenta de análise de histórias de usuários, ScopeMaster, em um exemplo de conjunto de histórias de usuários (acesse os originais aqui). As histórias que utilizamos são publicadas por Mike Cohn no site Mountain Goat e descrevem as funções de um site interativo a ser construído.
Sobre os exemplos de histórias de usuários
Escolhemos esses exemplos de histórias de usuários porque estão disponíveis gratuitamente e são publicadas por um conhecido autor de livros sobre como escrever histórias de usuários de software. São exemplos que qualquer pessoa pode baixar. (Na verdade, o PDF contém exemplos para três projetos diferentes). Para este exercício, apenas olhamos para as histórias dos Site ScrumAlliance . Baixe o CSV com exemplos de histórias de usuários
O objetivo do exercício é explorar o que o ScopeMaster pode revelar sobre um conjunto típico de histórias de usuários.
Preparação
Passo 1. Converta o PDF em CSV
O documento PDF contém uma lista com marcadores de histórias de usuários. Para preparar a lista para importação, primeiro copiamos cada história de usuário em uma linha de uma planilha. A planilha foi então salva como CSV pronta para importação para o ScopeMaster. Esta foi a parte mais demorada de todo o exercício! Felizmente, a maioria das histórias de usuários hoje em dia está contida em uma estrutura que pode ser facilmente formatada como um arquivo CSV e, portanto, essa etapa normalmente seria evitada.
No total, são 98 histórias de usuários. Aproveitamos para gerar um ID de referência exclusivo para cada um antes de importá-los. Você pode reutilizar o csv que criamos, se desejar, aqui: Exemplos de histórias de usuários originais do Mountain Goat – ScrumAlliance CSV
Passo 2. Importar para o ScopeMaster
Criamos então um novo projeto no ScopeMaster e selecionamos a opção “importar CSV”
Recomendamos a separação da parte funcional da história do usuário do texto de benefícios, por isso solicitamos que a importação do ScopeMaster fizesse isso para nós.
Etapa 3. Analise tudo
Em seguida, iniciamos a análise automatizada. Basta pressionar o botão verde.
É aqui que a mágica acontece. O mecanismo de análise do ScopeMaster funciona em cada história de usuário por vez, é interpretada, analisada, testada, dimensionada e com referências cruzadas.
Em apenas menos de 3 minutos, o ScopeMaster analisou cada palavra de todas as 98 histórias de usuários e realizou quase 112 mil testes.
Resultados
Agora vamos dar uma olhada no que o ScopeMaster nos conta sobre essas histórias de usuários.
Cada história de usuário: interpretada, testada e dimensionada (se possível)
- O ScopeMaster examinou cada palavra de cada história de usuário para determinar se consegue estabelecer uma intenção funcional clara. Está claro?
- Se sim, o ScopeMaster determinou quem é o do utilizador e o que eles querem/precisam alcançar. ou seja. É orientado ao usuário e funcional?
- A partir da intenção funcional determinada acima, o ScopeMaster estimou o tamanho funcional nos pontos de função COSMIC dos padrões ISO. Qual é o tamanho?
Visão dos exemplos de histórias de usuários
O diagrama do modelo de caso de uso foi gerado a partir da interpretação do o conjunto de histórias de usuários. Este diagrama revela instantaneamente insights sobre muitos aspectos de qualidade do conjunto de histórias de usuários que simplesmente não são visíveis em repositórios de requisitos como Trello, Jira, Azure DevOPs. Este diagrama revela o relacionamento lógico entre histórias de usuários. Este diagrama ajuda você a determinar se você tem os requisitos corretos.
Das histórias de usuários ao modelo de dados
A partir das intenções funcionais determinadas pelo ScopeMaster, um diagrama de classes sugerido de todas as classes prováveis e seus métodos são determinados a partir do texto das histórias de usuário. Isso pode ajudar os desenvolvedores a entender quais dados eles precisam considerar e como eles podem ser armazenados e manipulados. Este não é um diagrama de classes definitivo, mas um ponto de partida muito útil. Este diagrama ajuda a determinar como organizar e estruturar os dados para atender aos requisitos.
Testes gerados diretamente de histórias de usuários
Determinando o tamanho do backlog
Para todas as equipes, todos os projetos, as histórias de usuários variam em tamanho e no esforço para entregá-las. Essa variabilidade pode ser muito alta. O ScopeMaster foi projetado desde o início para automatizar o dimensionamento funcional de requisitos de software escritos. Isso significa que ele foi projetado para eliminar ou reduzir o trabalho administrativo de leitura de requisitos para determinar uma estimativa formal do tamanho funcional do software que eles descrevem. O tamanho funcional é um indicador de magnitude independente da tecnologia e orientado ao usuário. O ScopeMaster estima o tamanho funcional nos dois principais padrões ISO para dimensionamento de software, a saber: Pontos de Função CÓSMICO e IFPUG Pontos de Função. Recomendamos o primeiro porque é mais adequado para arquiteturas de software modernas e lida melhor com requisitos incompletos. ScopeMaster estima o funcional tamanho de todas as histórias em todo o seu backlog em questão de minutos, evitando que a equipe perca tempo com discussões inúteis sobre pontos da história ou tamanho de camisetas.
Análise de Qualidade
Em menos de 3 minutos, o ScopeMaster identificou centenas de problemas com as histórias de usuários.
Ambiguidades
51 das 98 histórias de usuários tinham significado funcional ambíguo, que se não fosse resolvido levaria a bugs. 51 defeitos identificados.
Histórias de usuários de segurança básica ausentes
Não houve menção a login, autenticação, autorização, permissão ou logout em todas as histórias de usuário. Esta é evidentemente uma omissão importante. Normalmente esperamos que isso exija pelo menos várias histórias de usuários. (embora a história da “senha esquecida” esteja aí). 5 defeitos identificados:
• Conecte-se
• Validar email
• Alterar a senha
• Sair
• E então, com cada história de usuário sensível à função, será necessário haver uma verificação de função e/ou permissões
O conjunto original de histórias de usuários não descrevia completamente a funcionalidade necessária.
Termos inconsistentes para usuários/personas
O ScopeMaster identificou 26 tipos de usuários potenciais. É provável que existam apenas 10 personas distintas. 16 defeitos identificados.
Termos inconsistentes para usuários/personas
Da mesma forma, o ScopeMaster identificou 41 tipos de objetos potenciais, enquanto provavelmente existem apenas cerca de 25 a 30. 16 defeitos identificados.
Integralidade da manutenção de dados (análise CRUD)
Para cada tipo de objeto válido deve haver pelo menos 1 função para cada evento CRUD. Depois de eliminar os tipos de objetos redundantes, isso leva a cerca de 80 histórias de usuários funcionais ausentes. 80 defeitos identificados.
Valores discrepantes de capacidade
O Diagrama do Modelo de Caso de Uso revelou outros requisitos ausentes com base na função/personas. Estimamos pelo menos 1 ou 2 por tipo de usuário. 10 defeitos identificados
Declarações de valor
O ScopeMaster identificou que apenas 58 dos 98 usaram a frase “de modo que”, no entanto, todos, exceto 3, incluem o termo “so”. 3- 40 defeitos identificados
NFRS
Além disso, a detecção de Requisitos Não Funcionais do ScopeMaster identificou que existem diversas categorias relevantes de NFRs que não foram mencionadas neste conjunto de histórias de usuários: acessibilidade, auditabilidade, observabilidade. 3 Defeitos identificados
Resumo dos resultados de qualidade
Em apenas 3 minutos, o ScopeMaster identificou 211 problemas prováveis (97 + 114) com essas histórias de usuários. Ele também inferiu por meio da análise CRUD que apenas metade das prováveis histórias de usuários necessárias estão realmente listadas. (este conjunto de exemplos de histórias de usuários pode ter sido cortado deliberadamente antes da publicação).
Além disso, o ScopeMaster gerou mais de 140 cenários de testes essenciais, que ajudarão a acelerar a iniciativa de testes funcionais, uma vez criada a funcionalidade.
O objetivo deste exercício não foi criticar os exemplos de histórias de usuários, mas destacar o valor do uso do ScopeMaster em qualquer conjunto de histórias de usuários.
Agradecemos quaisquer comentários do pessoal da Mountain Goat.
Conclusão
A partir deste exercício, podemos ver que o ScopeMaster realiza um trabalho valioso neste conjunto de exemplos de histórias de usuários. Tem:
- Revelou mais de 200 problemas que podem ser prontamente resolvidos antes de se tornarem inadvertidamente causa de retrabalho.
- Escopo ausente revelado
- Revelou um design de dados potencial
- Produziu cenários de teste básicos utilizáveis para cada história de usuário, incluindo testes positivos e negativos.
- Estimou o tamanho funcional de cada história (incluindo as faltantes) nos padrões ISO de tamanho funcional.
Tudo isso resulta em uma quantidade substancial de trabalho útil e perspicaz que ajuda a trazer certeza ao escopo e reduzir o risco de qualquer projeto de software.
Seria ótimo ouvir Mike Cohn ou qualquer pessoa que trabalhou no site ScrumAlliance sobre sua experiência no uso dessas histórias de usuários e sobre suas opiniões sobre a análise do ScopeMaster. Até agora, ninguém de sua equipe esteve disponível para comentar.