Confira artigo publicado anteriormente no DevMedia:
Ter os requisitos funcionais bem definidos e entendidos pelo time faz toda a diferença no desenvolvimento de um produto de software. Entretanto, isso nem sempre é algo fácil de ser feito. Aqui será demonstrada uma técnica para o entendimento de requisitos e assim permitir a elaboração de user stories utilizando a ferramenta 5w2h.
INTRODUÇÃO
Em um meio ágil e competitivo, como é o ambiente corporativo, um maior entendimento do que precisa ser feito contribui muito nas atividades que serão desenvolvidas por colaboradores de setores ou áreas diferentes. Quando se desenvolve um produto, a sua concepção deve conter o mínimo de erros, pois isto gera custos, tanto para o cliente quanto para a empresa.
No desenvolvimento de software com boas práticas ágeis o foco é na entrega de valor ao cliente. Sendo assim, necessita-se que as definições de requisitos sejam realizadas de forma eficaz, para que as necessidades do cliente sejam atendidas. Uma prática bastante difundida é o uso de User Stories para escrever os requisitos, pois é uma forma resumida para descrever as funcionalidades que trarão valor ao produto. Para auxiliar no entendimento dos requisitos e na criação das suas respectivas user stories, pode ser utilizada a técnica 5W2H.
E DE ONDE VEM?
A user story deriva da metodologia ágil e foca mais na comunicação verbal do que na documentação. Esta técnica traz uma comunicação clara entre o time de desenvolvimento e o Product Owner (cliente).
É composta por 3 aspectos: descrição usada para planejamento, discussão para concretizar detalhes e critérios de aceitação, que indicam quando a história está pronta. As histórias são independentes, negociáveis, necessitam de valor, estimáveis e pequenas.
Exemplo:
Como hóspede, quero cancelar minha reserva.
- Constate que um membro Premium poderá cancelar a reserva no mesmo dia sem ter que pagar uma multa.
- Verificar que um membro deverá pagar uma multa de 10% ao cancelar a reserva no mesmo dia.
- Comprovar se um e-mail é enviado ao final da transação.
FERRAMENTA 5W2H
O 5w2h é considerado uma ferramenta de planejamento, que é muito utilizada em Administração de Empresas. É um checklist contendo determinadas atividades que os colaboradores da organização precisam desenvolver com o máximo de clareza. Tem um destaque relevante na solução dos problemas, pois elimina por completo qualquer dúvida que possa surgir sobre um processo ou atividade.
O nome desta ferramenta foi definido por juntar as primeiras letras dos nomes (em inglês) das diretrizes utilizadas neste processo. Abaixo você pode ver cada uma delas e o que elas representam:
- What – O que será feito (etapas)?
- Why – Por que será feito (justificativa)?
- Where – Onde será feito (local)?
- When – Quando será feito (tempo)?
- Who – Por quem será feito (responsabilidade)?
- How – Como será feito (método)?
- How much – Quanto custará fazer (custo)?
ADAPTAÇÃO DO 5W2H PARA O CONTEXTO DE DESENVOLVIMENTO ÁGIL
O atual processo de desenvolvimento da NeoGrid está baseado em boas práticas de métodos ágeis utilizando user stories como forma para descrever os requisitos funcionais. Entretanto, quando começamos a utilizar as user stories, em algumas vezes nos deparávamos com a falta de aprofundamento na descrição. Mesmo tendo um padrão de escrita, nem sempre os dados descritos auxiliavam a concepção correta do requisito. Então, foi preciso inovar!
Adaptamos o 5W2H para o nosso contexto para compor as user stories, onde foi possível conceber os requisitos de forma eficaz e criar critérios de aceitação, que permitem identificar os cenários dos testes a serem realizados. A utilização não é complexa. Na concepção do requisito, basta aplicar as perguntas e coletar as informações. De posse dos dados já é possível compor a user story.
EXEMPLO PRÁTICO
Contexto do Projeto
# O Cliente:
- é uma rede de produtos manipulados.
- a partir da centralização dos pedidos de manipulação e da identificação dos produtos mais comumente solicitados, iniciou-se a produção e distribuição de medicamentos próprios com 20 produtos.
- possui 4 centrais de manipulação em diferentes estados, conta com uma equipe de 40 farmacêuticos e 220 técnicos de manipulação.
- produz 140 medicamentos distintos.
- venda de 22 milhões de unidades/ano.
- a área administrativa dividida em Financeira (Contas a Pagar e Contas a Receber), Recursos Humanos e Administração de Materiais (Controle de Estoque).
- as fórmulas dos produtos foram desenvolvidas pela própria empresa, detendo os direitos autorais e de produção.
- os processos de compra e venda se dá através de dois departamentos: Compras e Vendas.
- tem como objetivo estratégico tornar-se o maior laboratório de criação de fórmulas e manipulação da América Latina até 2015.
# Descrição do Problema:
Um dos problemas da rede está no controle de produção…
- As centrais de manipulação possuem o controle dos estoques realizado de modo manual, o que gera um alto grau de desperdício de matéria-prima.
- As centrais de manipulação utilizam matéria-prima crítica e controlada que, ocasionalmente, deixa de constar no estoque sem que o fim seja identificado.
# Objetivos de Negócio:
- Controlar o uso da matéria-prima ao longo do processo de manipulação.
# Objetivo Específico do Sistema:
- O sistema deverá controlar a matéria-prima utilizada, identificando precisamente a necessidade de matéria-prima e controlando seu uso.
A TÉCNICA 5W2H ADAPTADA…
- Qual é o objetivo do requisito?
- Por que o requisito deve ser implementado?
- Onde poderá ser visualizado o requisito?
- Quais são os pré-requisitos para este requisito?
- Qual é o perfil de acesso para este requisito?
- Quais são os critérios de aceitação para este requisito?
- Quais serão as mensagens de validação para este requisito?
APLICANDO A TÉCNICA NO CONTEXTO DO PROJETO
1. Qual é o objetivo do requisito?
R: Implementar um ambiente de controle de produção de medicamentos manipulados.
2. Por que o requisito deve ser implementado?
R: Para permitir a identificação precisa da necessidade de matéria-prima e controlar o seu uso eliminando o alto grau de desperdício.
3. Onde poderá ser visualizado o requisito?
R: Em um item de menu específico, conforme layout de tela Homes.
4. Quais são os pré-requisitos para este requisito?
4.1. Ter sido identificado o fluxo de produção.
4.2. Ter acesso às fórmulas dos medicamentos.
5. Qual é o perfil de acesso para este requisito?
R: Responsável pelo controle da produção, por exemplo: técnico em manipulação.
6. Quais são os critérios de aceitação para este requisito?
6.1. O estoque de segurança para matérias-primas críticas deverá ser de 5 dias de produção e para matérias prima simples deverá ser de 3 dias de produção.
6.2. O sistema deverá sinalizar a necessidade de compra de matéria-prima quando tiver estoque para produção para, pelo menos, 7 dias úteis, sem considerar o prazo do estoque de segurança.
6.3. O sistema não deverá disparar um aviso de compra de matéria-prima crítica se não houver produção de medicamentos que utilizem este tipo de insumo nos últimos 30 dias.
7. Quais serão as mensagens de validação para este requisito?
Para o critério de aceitação: O sistema deverá sinalizar a necessidade de compra de matéria-prima quando tiver estoque para produção para, pelo menos, 7 dias úteis, sem considerar o prazo do estoque de segurança.
A mensagem de validação deverá ser:
“Há estoque de matéria-prima X para produção de medicamento durante 7 dias úteis. Deseja efetuar novo pedido de compra? Sim/Não”
CRIANDO UMA USER STORY…
“Como técnico de manipulação, necessito que seja implementado um ambiente de controle de produção de medicamentos manipulados, pois assim poderei identificar de forma precisa a necessidade de matéria-prima e controlar o seu uso.”
Para aceitar:
- O estoque de segurança para matérias-primas críticas deverá ser de 5 dias de produção e para matérias prima simples deverá ser de 3 dias de produção.
- O sistema deverá sinalizar a necessidade de compra de matéria-prima quando tiver estoque para produção para, pelo menos, 7 dias úteis, sem considerar o prazo do estoque de segurança.
- Conforme item anterior, quando houver a necessidade de compra, o sistema deverá exibir a seguinte mensagem:
“Há estoque de matéria-prima X para produção de medicamento durante 7 dias úteis. Deseja efetuar novo pedido de compra? Sim/Não” - O sistema não deverá disparar um aviso de compra de matéria-prima crítica se não houver produção de medicamentos que utilizem este tipo de insumo nos últimos 30 dias.
- O usuário terá acesso ao menu Produção > Controle da Produção.
Para considerar:
- O acesso às fórmulas deverá estar de acordo com as regras estabelecidas pela empresa.
- São matérias-primas críticas os insumos utilizados para a fabricação de medicamentos manipulados de uso controlado (tarja preta).
- Este módulo deverá ser pré-requisito para o módulo ‘Compras’.
CONCLUSÃO
Ao adotar a ferramenta para compor as user stories, obtivemos resultados significativos no entendimento dos requisitos funcionais. Ganhamos mais habilidade crítica, pois conseguimos captar mais no detalhe o que o Product Owner queria nos dizer. Também conseguimos melhorar a cobertura de testes, uma vez que foi possível ter uma maior abrangência dos critérios de aceitação a partir das perguntas e assim poder sinalizar quando está efetivamente “pronta”. Nossas user stories estão com tamanho mais adequado, onde já se consegue identificar um “épico” e assim fracionar em requisitos menores. Para os requisitos não funcionais também é utilizado do mesmo procedimento, o que possibilitou uma melhoria na qualidade da escrita e, consequentemente, na implementação destes requisitos. Como estamos em um ambiente de melhoria contínua, identificamos a necessidade de ampliar a utilização da ferramenta para demais as áreas da empresa que trabalham com a ferramenta de SGR.
Autoras:
Dieine da Silva
Pós-graduada em Melhoria do Processo de Software pela Universidade Federal de Lavras e bacharel em Ciência da Computação pela UEPG. Com 8 anos de experiência na área de Teste de Software e Qualidade de Software. Atualmente, é Analista de Testes, Qualidade e Processos da equipe de Arquitetura e Frameworks na NeoGrid.
Patrícia Araújo Gonçalves
Pós-graduada em Teste e Garantia da Qualidade de Software pela Universidade Feevale e bacharel em Administração de Empresa com ênfase em Análise de Sistemas pela PUCRS. Tem 8 anos de experiência na área de Teste de Software. Atualmente, é Analista de Teste da equipe Projetos Especiais na NeoGrid.