DevSecOps

26 ago, 2010

Elicitação de requisitos e suas técnicas

Publicidade

Fala, pessoal!

A elicitação de requisitos é uma fase muito importante em qualquer projeto de desenvolvimento de software, pois se elaborada de maneira incorreta, todo o projeto estará comprometido.

É importante, pois é nesse momento que identificamos e definimos a estratégia de desenvolvimento do produto/serviço. É agora que conhecemos algumas informações como:

  • Fonte de Requisitos;
  • Quais são as partes interessadas no produto/serviço;
  • Quais são as principais necessidades do usuário;
  • Definimos as fronteiras do sistema;
  • Quais são as premissas e restrições do sistema ou do ambiente.

É normal, que durante a identificação das fontes de requisitos, tenhamos que realizar reuniões com profissionais de todos os níveis hierárquicos e conhecer as necessidades de cada um. Muitas empresas, quando terceirizam o serviço, elegem uma pessoa (stakeholder) para ser o ponto focal entre o contratante e contratada. Isso pode ser muito perigoso, pois caso esse profissional não conheça as reais necessidades dos usuários finais, ou  passe alguma informação errada, todo o projeto estará comprometido.

Sei que muitos podem estar pensando que isso não é problema da empresa contratada, pois a responsabilidade é do stakeholder ou contratante, porém, como sempre frisamos, devemos nos preocupar em entregar valor para o nosso cliente, e só atingiremos esse objetivo trabalhando como parceiros.

Por essa razão, sempre que possível, prefira conhecer e conversar pessoalmente com todos os envolvidos no projeto, conhecer suas reais necessidades, e se necessário, fazer a observação “in loco”, que nada mais é que sentar ao lado do operador do sistema por um determinado tempo e conhecer seu trabalho.

Para conhecermos quem são as pessoas interessadas no produto/serviço, devemos fazer perguntas como:

  • No caso de sucesso ou falha do projeto, quais as pessoas afetadas?
  • Quem são os usuários finais do produto?
  • Quem são os responsáveis pela aprovação/reprovação da solução, quando implantada?
  • Quem será o responsável pelo desenvolvimento e manutenção do produto?
  • Quem são os responsáveis pelos testes?

Definir as fronteiras do sistema ajuda na definição de escopo do sistema. Temos uma visão mais clara do que está dentro e principalmente fora do escopo.

Conhecer as reais necessidades do usuário não significa que atenderemos todos os desejos dele. Temos que nos focar na solução do problema. Como citei anteriormente, nem sempre o usuário sabe de sua real necessidade. Essa etapa é critica. Ter desvios de foco é a coisa mais comum nesse momento.

Identificar premissas e restrições de ambiente é de extrema importância, pois dependendo destas, o valor e o tamanho do projeto podem ser significantemente maiores ou menores.

Técnicas de Elicitação: entrevistas

Como citado no artigo “Softskills do Analista de Negócios“, a comunicação é de extrema importância para uma boa elicitação. Uma das técnicas mais usadas na elicitação são as entrevistas com os usuários ou stakeholders.

Normalmente a entrevista é a primeira técnica utilizada para descobrir as necessidades dos usuários. Agora é o momento de escutar mais do que falar.  Para os analistas iniciantes, o início das entrevistas ode ser um pouco confuso, pois muitas informações são despejadas de uma só vez, sem organização. O usuário está falando de determinado assunto, de repente lembra-se de outra funcionalidade, para então retornar ao assunto inicial.

É realmente um momento em que devemos estar muito atentos. Eu, particularmente, aprendi a usar gravadores, mas não é sempre que essa técnica é bem vista pelas pessoas do outro lado.

Para tornarmos as entrevistas mais produtivas, recomendo que você a estruture, da seguinte maneira:

  • Informando os temas que serão abordados: assim, tanto o entrevistado, quanto você, conseguirão se preparar com perguntas e respostas mais completas.
  • Informando sua duração: dizer a hora de início e do fim da entrevista é uma maneira de ambos
    organizarem seus compromissos para antes e depois. Nunca deixe uma
    entrevista durar mais do que 2 horas. A partir desse tempo, ambos
    estarão cansados e começarão a se dispersar, fugindo completamente do
    objetivo.
  • Fazer uma breve apresentação sobre si e o que espera conseguir com ela: no “ao vivo”, na hora da entrevista, apresentar-se é fundamental, assim como explicar o motivo do encontro, mesmo que isso já tenha sido feito anteriormente, provavelmente por e-mail ou telefone;
  • Explicar como será a condução da entrevista: dessa forma, o entrevistado se sentirá menos intimidado ou preocupado com suas atitudes. Um bom exemplo é o caso do gravador – é preciso explicar o motivo de se gravar a entrevista e pedir autorização para o entrevistado para gravar a conversa.

Ao terminar a entrevista, é interessante que você recapitule as informações obtidas, mesmo que de maneira resumida. Se necessário, já deixe uma nova entrevista agendada. Informe também o entrevistado, que você poderá entrar em contato para tirar eventuais dúvidas.

Tenho certeza de que com essa estrutura de entrevista, você atingirá seus objetivos na elicitação de requisitos. Fiquem à vontade para postar dúvidas, criticas e sugestões nos comentários ou pelo meu e-mail.

Abraços e até a próxima semana