Quero convencer meus parceiros de que devemos ter uma especificação e que os bugs devem ser corrigidos antes de escrever um novo código. Devo me referir ao teste de Joel ? Você acha que o teste de Joel está atualizado? Eu acho que não ter uma especificação é um gerenciamento de projeto ruim. Você concorda com o teste de Joel? Você poderia adicionar algo? Não menciona, por exemplo, código-fonte aberto.
17
Respostas:
Acho que o teste de Joel está atualizado - é tão atualizado quanto os outros softwares escritos que são "atemporais".
Fazer desenvolvimento de produtos (que inclui desenvolvimento de software) sem uma especificação é apenas loucura.
Como você sabe para onde quer ir?
Há apenas um ponto que vou fazer sobre escrever uma especificação (na verdade, não acho que as especificações de Joel sejam muito boas ... melhores que nada, mas não tão boas quanto poderiam ser). Esse ponto é:
Ao escrever uma especificação, diga apenas o que o produto deve fazer, não como deve ser feito.
Isso significa que você não determina os detalhes da implementação em uma especificação. Essa é uma atividade de design e você deixa isso para a experiência e criatividade dos designers.
[Existe apenas uma exceção a esta regra: Às vezes, um determinado detalhe ou método de implementação é obrigatório ou obrigatório, nesse caso, coloque-o. Por exemplo, se o software precisar ser escrito em PHP e isso não for negociável, ele será incluído. a especificação. Deve haver muito poucas instâncias disso.]
Devo acrescentar: não ter rastreamento de bugs é um ato de loucura igual. É simplesmente a maneira mais não profissional e tola de operar e levará a uma grande dor e sofrimento.
fonte
Vou interpretar o advogado do diabo aqui e sugerir que o Teste de Joel não esteja atualizado. É muito geral. À medida que a tecnologia amadureceu, as perguntas deveriam ser mais específicas do que quando ele escreveu o teste.
Documentos de especificações, pelo menos grandes documentos de especificações iniciais não são necessários agora que temos histórias de usuários e processos de desenvolvimento Agile. Esta pergunta deve ser alterada para "O nível de documentação é apropriado para as soluções que estão sendo projetadas?" Histórias de usuários menores e mais restritas, que são entregues a cada duas semanas, são muito mais úteis na maioria dos casos do que um grande documento inicial que descreve o produto em detalhes. No entanto, se você estiver construindo o próximo Mars Rover, convém um documento de projeto detalhado detalhado. Se você perguntasse se uma empresa possui especificações de design, não ficaria surpreso ao ouvir uma resposta "na verdade, não usamos processos ágeis e histórias de usuários".
Em segundo lugar, a pergunta "compilações diárias" deve mudar para uma pergunta sobre integração contínua. A menos que você esteja criando um software que leva horas para ser construído (o que 99,99% dos locais não o fará), a pergunta deve ser feita se a empresa usa integração contínua.
A maior parte do teste de Joel realmente não foi datada. Ainda é uma boa maneira de obter uma indicação do ambiente de trabalho.
fonte