7 boas práticas para levantamento de requisitos

Levantar requisitos de software é um trabalho contínuo: Apesar de ter um template, consultar múltiplas partes e revisar, é possível que haja uma ou outra brecha na especificação. Este post traz um checklist prático e dividido em etapas, para evitar omissões e mal entendidos nesta etapa.

Levantar requisitos de software é um trabalho contínuo: Apesar de ter um template, consultar múltiplas partes e revisar, é possível que haja uma ou outra brecha na especificação.

Para você que trabalha com levantamento de requisitos, aqui vai um checklist prático e dividido em etapas, para evitar omissões e mal entendidos na especificação.

Antes da especificação

1 – Identifique a Dor Principal: No início do projeto, trabalhe junto ao Product Owner e stakeholders para identificar qual é a maior dor a ser resolvida, e formalize esta identificação em um lugar acessível a todos. A dor principal que o projeto visa resolver será utilizada posteriormente para priorização dos requisitos, evoluções, e para manter o foco no valor de negócio durante todo o desenvolvimento.

2 – Estabeleça um template: Manter a consistência na documentação de um projeto é importante e transmite credibilidade. Além disso, um bom modelo de documento, que exija determinadas informações, previne que algum detalhe seja esquecido.

Recomenda-se que o seu template tenha as seguintes informações:

  • 2.1 – Numeração de requisitos: Todos os requisitos devem ser numerados seguindo um padrão consistente (ex: 001, 002, etc). Esta numeração facilita a rastreabilidade e comunicação entre equipes.
  • 2.2 – Critérios de aceite: Para cada requisito, defina claramente como será testado através de critérios de aceite específicos, mensuráveis e verificáveis, com exemplos práticos. Estes critérios servem como base para testes automatizados e validação de entrega. Exemplo: “Ao clicar em “Enter”, a próxima tela deverá ser carregada em até 3 segundos.
  • 2.3 – Fluxos de exceção: Documente cenários de erro, falhas de sistema, dados inválidos e situações inesperadas (exemplo: Usuário tinha uma lista de vídeos para assistir, mas um dos vídeos está indisponível por falha do servidor ou porque o arquivo está corrompido. O que deve aparecer na tela? Deve pular automaticamente para outro vídeo e ignorar aquele? Essa ocorrência deve ser salva em algum log?). Para cada exceção, defina como o sistema deve reagir, que mensagens exibir ao usuário e se o problema deve ser registrado para análise posterior.
  • 2.4 – Protótipos e diagramas: Inclua wireframes, mockups, diagramas de fluxo e modelos de dados para tornar os requisitos mais tangíveis. Os protótipos ajudam os desenvolvedores a entender a expectativa visual, e os fluxos ajudam a validar cenários complexos com múltiplas exceções e validações.
  • 2.5 – Campos de dados: Para cada campo de entrada, especifique tamanho máximo, formato esperado, validações necessárias e comportamento em casos de erro. Por exemplo: “Campo CEP: 8 dígitos numéricos, formato XXXXX-XXX, validação via API dos Correios”. Além disso, especifique também o que deve ocorrer com campos muito grandes apresentados em tela (se serão apresentados pela metade, se ao clicar o usuário poderá ver mais, ou só de apontar o mouse o texto restante aparecerá em um tooltip, etc). Caso não seja especificado, é provável que os desenvolvedores utilizem um tamanho padrão para cada campo, mas é bom ser o mais completo possível.

Durante a especificação

3 – Requisitos não funcionais básicos: usabilidade, segurança e integração:

  • Usabilidade: Defina padrões de experiência do usuário, tempos de resposta esperados, acessibilidade e facilidade de aprendizado. Especifique métricas como “90% dos usuários devem completar a tarefa X em menos de 3 cliques”.
  • Integração: Como o sistema irá interagir com outros sistemas? incluindo APIs, formatos de dados, protocolos de comunicação e tratamento de indisponibilidades de serviços externos (este ponto se relaciona também com os fluxos de exceção).
  • Informações sensíveis: Estabeleça políticas claras para tratamento de informações sensíveis, incluindo: critérios de classificação de dados, métodos de criptografia, controles de acesso, logs de auditoria e conformidade com regulamentações (LGPD, GDPR). Defina quem tem acesso a quais dados e em que circunstâncias.

4 – Valide os requisitos com um ponto focal e um desenvolvedor: Esta etapa é extremamente negligenciada, muitas vezes por conta de prazos apertados. Entretanto, o ideal é que o documento de requisitos seja validado pelo menos uma vez por uma pessoa da área de negócio (que entende as necessidades do usuário) e um desenvolvedor (que compreende a viabilidade técnica e o esforço de desenvolvimento). Esta dupla validação identifica inconsistências, ambiguidades e problemas de implementação antes que se tornem custosos.

5 – Verifique requisitos conflitantes: Revise sistematicamente os fluxos e os requisitos para identificar contradições, sobreposições ou dependências problemáticas. Caso o projeto seja muito grande ou complexo, considere criar uma matriz de rastreabilidade.

Extra – Uso de IA: A inteligência artificial é uma grande aliada para revisar requisitos, identificar inconsistências, sugerir casos de teste e automatizar partes da documentação. Entretanto, aqui vai uma dica: Escreva primeiro uma versão sem IA, e só depois a utilize.

Este estudo testou a utilização de IA para a escrita, e os resultados mostram que a dependência completa de IA pode criar um débito cognitivo – diminuição da atividade cerebral em áreas como memória e criatividade. Portanto, os participantes que escreveram primeiro de forma livre e somente depois utilizaram a IA tiveram uma melhor performance.

Após a especificação

6 – Mantenha o documento vivo e versionado: Mantenha o documento sempre atualizado e use controle de versão rigoroso. Cada versão deve ter data, responsável pelas mudanças e resumo das alterações, usando ferramentas disponíveis como Git, SharePoint, dentre outras.

7 – Estabeleça um fluxo para mudanças de requisito: Um processo claro gera transparência para toda a equipe. Por isso, estabeleça critérios para alterações nos requisitos, incluindo: quem pode solicitar mudanças, impacto, quando as mudanças serão feitas e implementadas.

Mudanças não controladas são uma das principais causas de estouro de prazo e orçamento.

CHAOS REPORT, 2023.

Referências

  1. Nataliya Kosmyna, Eugene Hauptmann, Ye Tong Yuan, Jessica Situ, Xian-Hao Liao, Ashly Vivian Beresnitzky, Iris Braunstein, Pattie Maes. 2025. Your brain on ChatGPT: Accumulation of cognitive debt when using an AI assistant for essay writing task [Preprint]. arXiv. Available from: https://doi.org/10.48550/arXiv.2506.08872
  2. The standish group. CHAOS REPORT 2023. Available from: https://thestory.is/en/journal/chaos-report.

“Dark design patterns” – padrões obscuros de design

Há diversos tipos de Padrões Obscuros. Citaremos alguns deles abaixo.

  • Sopa de palavrinhas (“Trick wording”): Ao preencher um formulário, você responde a uma pergunta que o leva a dar uma resposta que não pretendia. Lendo rápido, a pergunta lhe parece perguntar algo, mas ao ler de novo, o conteúdo da pergunta é outro;
  • Item surpresa (“Sneaking”): Você tenta comprar algo, mas em algum momento o site insere um item a mais em sua cesta;
  • Vendendo a alma (“Hard to cancel”): Você entra em uma situação com muita facilidade, mas descobre que é difícil sair dela (por exemplo, uma assinatura premium);
  • Privacidade Zuckering: Você é levado a compartilhar publicamente mais informações sobre si mesmo do que pretendia;
  • Difícil de comparar (“Comparision prevention”): A loja torna difícil para você comparar o preço de um item com outro, então acaba não conseguindo decidir a compra com mais informação;
  • Desvio de atenção (“Visual interference”): O design foca propositadamente sua atenção em algo para distraí-lo quanto a outro ponto;
  • Custos escondidos (Hidden costs): Você chega à última etapa e descobre algumas cobranças inesperadas (por exemplo, taxa de entrega);
  • Isca e troca: Você se propõe a fazer algo, mas um evento diferente e indesejável acontece (por exemplo, vê um anúncio tentador, mas quando tenta finalizar a compra, percebe que a opção não mais está disponível, momento em que a loja te oferece outras opções mais favoráveis no negócio);
  • Vergonha de confirmação (“Confirmshaming”): A opção de recusar é formulada de forma a envergonhar o usuário. Por exemplo, quando o site mostra uma oferta e apresenta dois botões: “eu quero perder o desconto” e “eu quero desconto!”;
  • Anúncios disfarçados (Disguised ads): Anúncios que são disfarçados como outros tipos de conteúdo ou navegação, para que você clique neles.
  • Continuidade forçada (Sneaking): Quando sua avaliação gratuita com um serviço chega ao fim e seu cartão de crédito começa a ser cobrado silenciosamente sem nenhum aviso.
  • Spam de amigos: O produto solicita permissões de e-mail ou mídia social sob o pretexto de que será usado para um resultado desejável, mas envia spam a todos os seus contatos em uma mensagem que afirma ser sua.

Referências:

Vieses cognitivos no design

Você já ouviu falar em vieses cognitivos?

Um viés cognitivo é um atalho de pensamento que afeta as nossas percepções, e portanto, julgamentos e decisões. Imagine só: Um ser humano toma várias microdecisões durante um dia (“Vou levantar agora ou daqui a 5 minutos? O que comer para o café da manhã? Vou sair de sapato ou tênis?“). Só que tomar decisões é cansativo!

Por isso, durante a evolução o cérebro humano criou atalhos, permitindo concentrar esforços em decisões que realmente importam (chamamos isso de diminuir a carga cognitiva). Porém, um viés cognitivo pode nos levar a percepções que não refletem toda a realidade ou contribuir para comportamentos irracionais. É isso que o Rian Dutra explica em seu livro “Enviesados”.

Abaixo, traremos os principais vieses apresentados no livro:

Viés da ancoragem

Imagine que você não tem noção de quanto custa uma bicicleta elétrica. Se alguém te falar que é 6000, você vai acreditar. Caso uma segunda pessoa te ofereça uma bicicleta elétrica de 4000, você pode achar que é um bom preço, pois é mais barato. Ou seja, o valor da primeira oferta de 6000 alterou sua percepção sobre a oferta de 4000.

A primeira oferta (de 6000) foi uma âncora. As âncoras são informações iniciais que os usuários obtêm, e que podem afetar o julgamento e interpretações posteriores. A âncora pode ser usada tanto para fazer um produto parecer mais barato ou mais caro. Também pode ser usada para diminuir a carga cognitiva (por exemplo, sugerindo um valor de contribuição, ao invés de deixar em aberto).

A primeira oferta (de 6000) foi uma âncora. As âncoras são informações iniciais que os usuários obtêm, e que podem afetar o julgamento e interpretações posteriores. A âncora pode ser usada tanto para fazer um produto parecer mais barato ou mais caro. Também pode ser usada para diminuir a carga cognitiva (por exemplo, sugerindo um valor de contribuição, ao invés de deixar em aberto).
Viés da ancoragem na prática.

Viés da perda (aversão à perda)

O ser humano tem 2 vezes mais medo de perder do que alegria de ganhar algo, afinal, “mais vale um pássaro na mão do que dois voando”. Provavelmente por questões evolutivas, as emoções negativas têm mais impacto que as emoções positivas.

Por exemplo, nas primeiras compras online, existia um receio muito grande de que a encomenda não fosse chegar. Era uma tecnologia nova, que iniciou-se na base da confiança. Para aliviar o medo de perder algo, os e-commerces começaram a dar mais informações sobre onde estava a encomenda.

A aversão à perda também pode ser usada para mostrar a um cliente o que ele perde ao não adquirir seu produto (os seguros de carro são um bom exemplo). Com isso, aumenta-se a chance de engajar mais clientes.

Efeito cashless

Quanto mais “real” for o pagamento, mais doloroso é. Por isso sentimos mais “dó” de gastar dinheiro físico do que sentimos ao fazer uma compra com o cartão de crédito. Quanto menos vemos o dinheiro sendo gasto, mais valorizamos uma aquisição. Com o cartão, porém, há a impressão de que não foi gasto tanto dinheiro assim, aumentando a propensão a comprar mais e por um valor maior.

A Disney, Amazon e tantos outros perceberam isso, e tornaram as compras online cada vez mais fáceis, até com compras de 1-clique (exemplo abaixo).

Viés do custo afundado

Imagine que você começou a aprender a tricotar. Comprou todas as agulhas, linhas, aprendeu a fazer alguns tipos de nó e até já fez as suas primeiras peças. Se alguém te falasse que é uma perda de tempo, você desistiria? Provavelmente não, porque já investiu dinheiro e tempo para aprender.

O viés do custo afundado é similar ao princípio físico da inércia, no sentido de que quando investimos muito em algo, tendemos a permanecer ali. Em aplicativos e sistemas, permitir que o usuário experimente seu produto e faça progressos, cumpra metas, favorece que ele tenha a tendência de continuar usando o seu produto.

Viés do status quo

A psicologia identificou que, se não há um grande incômodo, nosso cérebro tem uma preferência natural por deixar as coisas exatamente como elas estão. Os seres humanos iniciaram como nômades e passaram a ser sedentários, muito por conta de terem achado espaços confortáveis o suficientes para não precisar buscar outros incessantemente.

Preferimos continuar em nossa rotina, mesmo que hajam alternativas mais vantajosas. Nosso estado atual vira um ponto de referência, e qualquer mudança pode ser percebida como uma possível perda. Em aplicativos e sistemas, é possível usar o princípio do status quo para manter um usuário consumindo o produto (facilitando suas decisões, como deixar a resposta pré-preenchida), ou enfatizando os benefícios de mudar, caso seja esse o comportamento almejado.

Viés de enquadramento

Lembra daqueles anúncios famosos de pasta de dente? “9 em cada 10 dentistas recomendam”. Isso é uma forma de apresentar a informação. E se as propagandas falassem “1 em cada 10 dentistas não recomendam” ou “10% dos dentistas não recomendam”? Pareceria bem ruim.

Esse e vários outros exemplos mostram que manipular a forma como a informação é apresentada pode influenciar e alterar a tomada de decisão. O efeito de enquadramento atua utilizando a aversão à perda, de forma a maximizar algum aspecto positivo do produto, para que o consumidor preste atenção no ponto que o interessa, e não fique receoso de estar fazendo uma escolha ruim.

Fadiga da decisão

Quando sobrecarregados com muitas opções, podemos demorar muito ou até desistir de tomar uma decisão. Ao ser confrontados com muitas opções em um cardápio ou um aplicativo de compra, é bem provável que iremos na opção mais fácil. Inclusive, é possível que seja perdida uma boa oportunidade, simplesmente porque é cansativo ter que escolher tanto.

Para evitar a fadiga de decisão, devemos optar por uma boa arquitetura da informação, de forma a ser fácil discernir um tópico de outro, bem como dividir em partes os fluxos que podem ser muito grandes. O ideal é reduzir ao máximo as opções disponíveis. Quando isso não é viável, pode-se inserir ou criar algoritmos de recomendação que aprendem o gosto do usuário. Dessa forma, as recomendações irão ser cada vez mais assertivas e facilitar a sua escolha nas próximas vezes.

Heurística de afeto

Nossas decisões não são racionais, mas influenciadas por emoções. As emoções funcionam como “atalho mental”, quando temos alguma restrição. Quando pressionados, temos poucas informações ou o julgamento for muito complexo, tendemos a confiar nas nossas emoções mais do que em informações concretas (mesmo que não percebamos).

Para projetar considerando a heurística de afeto, é importante entender as emoções do usuário, considerando seus sentimentos para criar produtos que os cativem. Para isso, pesquisas com usuários e análise de dados serão seus melhores amigos.

Para você que leu até aqui, meu muito obrigado!

Esse texto é um resumo do livro “Enviesados” do Rian Dutra.