Qual é a maneira correta de criar documentos de requisitos?


23

No momento, meu supervisor está criando documentação / especificações de requisitos para mim usando o software de rastreamento de bugs. Parece-me uma péssima ideia, todos os requisitos estão nesses pequenos tíquetes e eu tenho que clicar neste formulário da Web idiota para chegar aos requisitos. O que é uma solução de software são para requisitos / especificações de software?

Para deixar claro, estou construindo esse grande componente de software com alguns recursos e esses recursos estão sendo estabelecidos neste software de rastreamento de erros.

Respostas:


17

Estou bastante surpreso que ninguém até agora tenha recomendado o uso de um wiki para rastrear requisitos.

Eu achei que era um sistema quase perfeito, porque:

  • Ele permite que as pessoas colaborem nos requisitos e torna esse aspecto altamente visível;
  • Permite manter facilmente os requisitos atualizados à medida que o projeto avança;
  • Você pode entrar e ver a história a qualquer momento, no caso de uma disputa "não é isso que concordamos";
  • A maioria dos wikis modernos possui recursos de formatação decentes, por isso parece quase tão bom quanto um documento do Word;
  • Você pode vincular diretamente seus requisitos à documentação real;
  • Você nunca precisa se preocupar com pessoas trabalhando com cópias diferentes / obsoletas;
  • Os requisitos podem começar a ser tratados como um processo iterativo, assim como o design / implementação;
  • Se os requisitos começarem a ficar realmente grandes / complicados, é fácil dividi-los em páginas / tópicos.
  • A maioria dos wikis aceita HTML; portanto, se você realmente precisar de formatação avançada, provavelmente poderá usar uma ferramenta como o Windows Live Writer .

Dada a escolha, eu quase sempre escolho o método wiki hoje em dia, é realmente bastante indolor comparado aos documentos antiquados do Word ou tentando colocar tudo em um rastreador de erros.


Descobri que você pode incorporar com relativa facilidade os dados do seu sistema de rastreamento no seu wiki e, se você configurar alguns erros hierárquicos, poderá agrupá-los no requisito, então os marcos do projeto terão páginas wiki, assim como projetos, clientes e clientes. tudo é fácil de entender. O Wiki é a cola, mas ainda usa um rastreador de erros. Investigue a capacidade do seu rastreador de bugs de apontar para uma página da web no wiki!
Tim Williscroft

Absolutamente, um wiki não substitui um sistema de rastreamento de bugs, é complementar. O melhor planejamento e colaboração do projeto são feitos no wiki; os problemas ainda precisam ser rastreados em um IMS ou fila de prioridade.
Aaronaught

6

Eu sempre uso o IEEE Std 830-1998 (Prática recomendada pelo IEEE para especificações de requisitos de software) como modelo para o meu documento SRS. Consulte http://standards.ieee.org/reading/ieee/std_public/description/se/830-1998_desc.html

O próprio documento final do SRS geralmente é um único documento do OpenOffice.org, mas geralmente existem muitas partes constituintes, incluindo planilhas e diagramas.

Eu costumo reunir todos esses documentos em um repositório que coloco em um sistema de controle de revisão , como SVN ou CVS. Todos os outros analistas de negócios, designers, desenvolvedores, testadores, gerentes de projeto e clientes têm acesso a esse repositório, para que possam lê-lo e fazer edições.

Lembre-se, o SRS é um documento vivo e em evolução. Continuará a mudar e crescer por algum tempo. Não apenas é importante que todas as partes interessadas tenham acesso ao SRS, mas também é importante ter um histórico completo das alterações e a capacidade de reverter essas alterações também, se necessário. Portanto, um sistema de controle de revisão funciona muito bem para esse fim. Boa sorte!


5

O uso do rastreador de erros para gerenciamento de requisitos tem a tendência de ocultar a falta de colaboração e comunicação dentro da empresa.

Sem julgar qualquer método específico:

  • se você usar o cascata, precisará de documentos bem estruturados, precisos e com várias páginas (não um parágrafo que muitas pessoas digitam normalmente como descrição de um bug). Também é impossível escrever e manter esses documentos em um nível decente de qualidade se os vendedores / marketing (que originam os requisitos) não funcionarem bem em conjunto com a equipe de engenharia.
  • se você usar um dos métodos ágeis, uma unidade de requisitos será uma história do usuário, representada por um cartão de história. O cartão em si não é um requisito, apenas um ponto de partida da conversa.

Uma (breve) experiência de um de meus empregadores anteriores com o uso de um rastreador de erros para os requisitos foi que ele proporcionou a muitas pessoas uma maneira muito fácil de parar de se comunicar completamente. As pessoas simplesmente escreviam um desejo, o despejavam no rastreador de erros e supunham que ele acabaria se tornando realidade.

É claro que eles fizeram isso sem levar em consideração:

  • suas próprias qualificações
  • sua participação no projeto
  • conflita com outros requisitos
  • lacunas nos requisitos
  • custos
  • quaisquer considerações técnicas
  • etc.

MAS ... assim que o requisito incompleto for inserido, ele será atribuído e quem quer que seja atribuído a ele precisa resolver qualquer informação incompleta, não é? Quero dizer, uma vez que esteja no sistema, supondo que as pessoas não estejam descartando itens, não deveria ser resolvido? Não estou sugerindo que um leigo de software completo deva inserir itens, mas mesmo que o tenham .. está no sistema e deve ser tratado. Exemplo: o negócio adiciona o requisito "imprimir recibo" ao rastreador de bugs e o atribui ao analista de barramento, o analista de barramento o processa preenchendo os buracos (através de mais comunicação, se necessário), e o dev recebe.
John MacIntyre

Qualquer falha na comunicação não seria um sintoma de um problema no processo? (sinceridade pretendido)
John MacIntyre

@JohnMacIntyre (1): o resultado é pingue-pongue em vez de colaboração. O cessionário nem sempre é a pessoa certa; problemas raros podem ser resolvidos por apenas uma pessoa; onde mais pessoas são necessárias, o cessionário raramente tem autoridade para orientá-los sobre o que fazer, raramente vê todas as dependências (os requisitos raramente são independentes); perdidos são os benefícios de auto-organização, priorização de ROI ou custo de atraso, etc.
azheglov

@JohnMacIntyre (2): é claro que a falha na comunicação é um sinal de que o processo deles não está funcionando ou que eles não têm nenhum processo ou que simplesmente não têm uma cultura saudável de comunicação e colaboração em sua empresa. Minha posição é que eles devem abordar essas causas.
Azheglov 5/10/10

@asheglov - Suponho que isso possa ser um problema se o responsável for o implementador e não tiver permissão para reatribuir ou conversar com ninguém. Mas minha posição é que não é a ferramenta e que isso aconteceria com as melhores ferramentas, não?
John MacIntyre

2

Acredito que os documentos "Word" são o caminho errado para os requisitos, pelos seguintes motivos:

  1. Não há como "diferenciar" dois documentos para ver o que mudou.
  2. A interface do usuário desencoraja o uso de um estilo consistente. Sim, o uso de estilos pode ser feito, mas a maioria das pessoas não pode ser incomodada por causa da dificuldade.
  3. O formato do documento está essencialmente oculto. Claro, há uma especificação para arquivos OLE, que eu acho que os documentos do "Word" são, mas a Microsoft escondeu tudo o que é útil sob toneladas de tolices, para que ninguém realmente saiba. Mais cedo ou mais tarde, seu novo e brilhante "Word" não abrirá o documento.
  4. Não joga bem com outros formatos. Ou seja, a menos que você use o Windows e o IE, você não terá sorte se alguém organizar os documentos de um projeto em arquivos HTML com links para os arquivos no formato "Word". Clique no link errado e você terá que passar por um longo período de download e início do Word, interrompendo o fluxo de pensamentos. Hiperlinks de documentos do "Word" para outras pessoas podem ou não funcionar.
  5. "Word" é basicamente para escrever documentos destinados a aparecer no papel. Um objetivo admirável, mas que o torna menos que útil para a visualização on-line.

Não tenho uma sugestão alternativa com a qual tenho experiência, mas pensei no texto reestruturado ou no Markdown do Python como alternativas.


1
Eu acho que a maioria desses argumentos soa como FUD. O Word pode não ser a melhor opção, mas não é tão ruim assim: 1. Possui ótimos recursos de revisão / colaboração para rastrear e aceitar / rejeitar alterações, com uma aparência muito mais amigável do que qualquer ferramenta vcs + diff. 2. Os estilos são mais proeminentes desde a interface do usuário da faixa de opções de 2007. Explicar por que os estilos devem ser usados ​​é provavelmente mais fácil do que explicar um software totalmente novo 3. O Word mais recente pode ler / salvar arquivos do Word 97 criados há 16 anos. O Word 2003 pode ler / salvar arquivos de 2010 usando pacotes de compatibilidade. Concordo com 4. e 5., embora o pdf possa ser uma opção para visualização on-line.
Kapex

@ kapep - meus argumentos não são FUD no sentido clássico "Medo, Incerteza e Dúvida", talvez você use "FUD" de alguma maneira diferente. Cada um dos meus argumentos pode ser respondido. Por exemplo, você pode dizer "Control-shift- @ no menu" Inserir "para obter uma comparação linha a linha do documento atual com outro documento". Não pode ser feito, porque tudo que você ofereceu foi uma contra-opinião. A Microsoft tem um histórico de abandonar os formatos de documentos, ou pelo menos tornar caro ou difícil o uso de formatos antigos, o que aumenta as vendas de atualização, imagino.
precisa

Ok, eu tenho que me corrigir, apenas 3. parece ser um argumento FUD que é frequentemente usado quando se trata de basking word / doc por ser proprietário. É claro que a Microsoft abandonou os formatos - mas os arquivos doc existem há muito tempo, então 'mais cedo ou mais tarde' se aplica apenas às versões arcaicas do século passado, se eles decidirem abandonar o suporte em> 2016 ou sempre que a próxima palavra for lançada. Eu também gostaria de salientar que existe uma maneira fácil de "diferenciar" documentos. É claro que não está comparando linha por linha, isso não faria muito sentido em um formato não baseado em linha. É mais como o diff em linha aqui no SE.
Kapex

2

Geralmente usamos o Word, mas, na realidade, como você os cria em software é menos importante do que como você coleta os dados para criá-los e se a pessoa que coleta as informações sabe o suficiente para saber quando um requisito é excessivamente complicado e será muito mais caro do que um requisito mais simples ainda não agrega valor real a ninguém (como quando eles desejam que os números de ID sempre sejam atribuídos em ordem, sem que nenhum seja ignorado) ou quando entram em conflito com um requisito existente ou outro recurso planejado. Freqüentemente, os usuários reais nunca são conversados ​​e há muitas surpresas quando seus gerentes não sabiam algo que absolutamente precisava ser feito e não está na nova versão do software.

Também podemos usar vários arquivos pdf, Excel ou Visio. Todos eles para o projeto são coletados e editados no SharePoint, para que possamos ver versões anteriores, se necessário.


1

Eu mantenho uma lista de pendências de produtos (uma por projeto ou produto) que contém Histórias de Usuários . Eles podem ser armazenados em um software de rastreamento de erros, como o que você usa. Pessoalmente, uso o Excel para o backlog e o Trac para o sprint (você provavelmente usa uma ferramenta como essa).

Quando necessário, eu crio um documento do Word que descreve a história do usuário com mais detalhes e a anexo à história do usuário. Mas tento evitar isso dividindo a história do usuário em outras menores.

Histórias de usuário pequenas são mais fáceis de gerenciar (incluindo estimativa)

Gosto do documento do Word porque ele permite que eu coloque links, formate textos, coloque tabelas, capturas de tela e muito mais, e todos possam lê-lo.

Obviamente, cada história de usuário é explicada em detalhes na sessão de estimativa e no planejamento de sprint, e eu estou sempre disponível para mais perguntas quando o desenvolvedor decide trabalhar nela. Os feedbacks frequentes usando a revisão do sprint impedem que os desenvolvedores façam algo diferente do solicitado pelo proprietário do produto.


1

Pessoalmente, no passado eu usei o Word Documents, mas resolvi encontrar uma ferramenta no futuro para gerenciar isso para mim ... especialmente com a capacidade de definir bugs para os requisitos, porque, na maioria das vezes, o bug é nos requisitos, não no desvio entre especificações e implementação.

Nunca me ocorreu usar uma ferramenta de rastreamento de bugs, mas faz total sentido.

Por curiosidade, do que você não gosta?

EDIT: uma ressalva; diga ao seu gerente para renomear o software de rastreamento de bugs. Caso contrário, tudo é considerado um bug. Eu tive esse problema político no meu último cliente, onde coloquei tarefas no rastreador de erros. Não é bom.


1

Eu escrevi um banco de dados de requisitos há 6 ou 7 anos para lidar com isso. Cada registro de requisito possui uma descrição curta, um memorando de "definição" e um memorando de "notas" (ambos em rich text, com capacidade de incorporar capturas de tela etc.). Também existem outros campos, para projeto, entrega, número de sequência (para que possam ser solicitados logicamente), caso de uso / recurso a que está relacionado, estimativa de tempo, um campo para a pessoa que o manipula, se alguém o selecionou para implementação, etc.

Há também um "Status" - "Entered", pois enquanto projetamos os recursos; "Aprovado", definido quando um grupo de requisitos é revisado e determinado como pronto para implementar; "Implementado", definido pelo programador assim que achar que o requisito foi cumprido e "Validado" quando a técnica de controle de qualidade concordar com o programador. (Se o técnico de controle de qualidade discordar, ele pode defini-lo como "Aprovado" para que o programador o recupere.) Os requisitos também podem ser "Adiados", "Rejeitados" ou "Questionados" (o que significa que o Change Control Board precisa analisá-lo .)

O truque para fazer isso bem é uma granularidade razoável. Às vezes, pode fazer sentido ter requisitos de uma frase (por exemplo, "o problema descrito no problema 12345 foi corrigido"), mas, em geral, os requisitos devem descrever todos os aspectos importantes de um recurso inteiro (ou um grande pedaço). Por exemplo, um recurso típico de "novo relatório" terá um requisito para um formato de relatório (como é a saída) e um requisito para a caixa de diálogo de opções (explicando os campos, validação etc.). existe um gerador complexo que processa os dados, em vez de apenas uma consulta fácil ou algo assim. Além disso, criaremos um requisito de "Ajuda" para o tópico de ajuda correspondente.

Existem enormes vantagens em manter esse material nos registros do banco de dados, em vez de um grande documento. Vários programadores podem trabalhar nos requisitos ao mesmo tempo. Os registros individuais são bloqueados para que apenas uma pessoa possa editar de cada vez, mas eles podem ser abertos e lidos enquanto outra pessoa estiver editando. A maior vantagem, porém, é que ele facilita a pesquisa na documentação de quais eram os requisitos e anotações sobre como eles foram implementados. Temos mais de 25.000 requisitos lá agora, e podemos encontrar facilmente todos os requisitos com palavras específicas em todos os campos, ou na definição, ou notas, ou o que for, em menos de 10 segundos. (Tente isso com mais de 6 anos de documentos do Word.)

Percebo por que as pessoas podem dizer que é uma má idéia fazer requisitos em um "rastreador de erros", mas acho que é porque as ferramentas são ruins, não porque manter os requisitos em um banco de dados pesquisável é uma má idéia.


1
Existem softwares de rastreamento de requisitos comerciais disponíveis, como o DOORS.
M. Dudley

1

Eu usei uma vez http://www.pivotaltracker.com/, mas na minha empresa atual estamos usando .doc como fonte de especificação principal e Lighthouse como recursos combinados, lista de desejos e rastreamento de problemas. Para mim, é difícil fazer com que outras pessoas da equipe comecem a usar outras ferramentas quando estão muito acostumadas ao Word.


0

Se você pode seguir a metodologia Agile, os seguintes links podem orientá-lo na escolha de uma boa ferramenta Agile Project Management:

E, sério, tente a metodologia Agile - ela prega uma abordagem sensorial comum, simples, elegante, sem bobagens, sem jazz e em qualquer coisa que você faça, de modo que cada membro da equipe entenda e aprecie o papel e o esforço de todos os outros membros.

Boa sorte!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.