Como especificar software de uma maneira mais efetiva?

Utilizando User Stories!

Cristiane Butura
CWI Software
2 min readApr 23, 2019

--

Mas, o que é uma User Story? Uma user story é apresentada por Cohn (2004) como uma forma de descrever uma funcionalidade requisitada por um usuário ou necessária para um determinado software.

O conceito de user story vem ao encontro do princípio ágil “Software em funcionamento mais que documentação abrangente” — que norteia as equipes de desenvolvimento a manterem o foco na entrega sem excluir a necessidade de documentação, otimizando-a de forma a agregar maior valor ao projeto e/ou produto.

Nesse contexto, em substituição a um extenso documento, pode-se utilizar a prática de escrever histórias de usuários como forma de descrever requisitos de software. As mesmas visam proporcionar respostas rápidas para a equipe de desenvolvimento atender o usuário.

A história de usuário deve, em sua descrição, conter o que deve ser implementado, para quem a implementação está sendo desenvolvida e por que se faz necessário o desenvolvimento desta funcionalidade. Com essa forma de detalhamento pode-se tomar decisões mais assertivas em relação à necessidade do cliente e proporcionar maior ganho em qualidade (HELM; WILDT, 2014).

O formato de escrita tem por objetivo fazer com que cada história de usuário seja facilmente entendida tanto pelo cliente quanto pela equipe de desenvolvimento. É importante que todos os envolvidos sejam responsáveis e capazes de manter as histórias. Isso possibilita que todas as necessidades sejam detalhadas e implementadas de forma mais assertiva.

Existem diversas formas de escrita de histórias de usuário, porém, independente do padrão utilizado o importante é responder essas três perguntas — O que? Para quem? Por quê?

A seguir um modelo de escrita que pode ser utilizado:

Sendo… (Para quem a funcionalidade será desenvolvida)
Posso… (Descrição resumida das capacidades da funcionalidade)
Para que… (Por que o cliente precisa dessa funcionalidade; o valor agregado ao negócio)

Exemplo de escrita:

Sendo um vendedor que realiza 50 visitas por dia
Posso consultar as últimas compras de cada cliente
Para que ao chegar no cliente eu possa consultar qual foi sua última compra, e assim conseguir negociar com ele estando melhor informado.

Nesse contexto, uma boa história de usuário deve seguir o conceito INVEST, o qual remete a:

  • Independent (Independente) — cada história deve ser independente das demais;
  • Negotiable (Negociável) — podem ter sua prioridade e ordem execução alteradas, pois não são contratos, mas sim lembretes;
  • Valuable (Valiosa) — deve agregar valor ao negócio do cliente;
  • Estimatable (Estimável) — podem ser estimadas;
  • Small (Pequena) — devem ser pequenas, de modo a facilitar a estimativa;
  • Testable (Testável) — deve ser possível testar as histórias.

Histórias de usuário agregam benefícios consideráveis ao processo de desenvolvimento, uma vez que são facilmente entendidas tanto pelo cliente quanto pela equipe de desenvolvimento, são capazes de focar no objetivo do sistema, além de apoiarem o desenvolvimento iterativo e incremental.

Referências:

Cohn, M. (2004), User Stories Applied: For Agile Software Development,
AddisonWesley Professional, 1 ed.

Helm, R.; Wildt, D. (2014), Daniel, Histórias de Usuário, 3 ed.

--

--