Chega de Software Holy Wars!
Vamos continuar e melhorar a entrega de software funcional que irá satisfazer, talvez até encantar, nossos clientes.
Acontece que cristãos, judeus e muçulmanos adoram o mesmo deus. Onde eles discordam é nos detalhes do que esse deus come no café da manhã e qual é sua política sobre barbas e feriados.
Veja, também acontece que “artesãos de software”, “engenheiros de software” e “desenvolvedores de software ágeis” também adoram o mesmo deus. Nós apenas discordamos sobre os detalhes mais sutis de como nosso deus espera que alcancemos exatamente os mesmos resultados pelos quais todos parecemos concordar que deveríamos nos esforçar.
Não há discordância de que o mandamento primário de nosso deus mútuo é que não escreverás software que teu cliente não quis.
Também não discordamos que precisaremos iterar para convergir para o software mais útil e utilizável.
Também concordamos que os testes devem acontecer o mais cedo possível e com a maior frequência possível, se quisermos evitar perder a maior parte do nosso tempo consertando bugs que escaparam da rede.
De fato, em todos os aspectos importantes, concordamos em tudo. (Bem, qualquer pessoa cuja opinião importa concorda, de qualquer maneira.)
Discordamos se devemos chamá-los de “casos de uso” ou “histórias de usuário”, e se devemos escrever nossos testes primeiro ou depois do código, ou se devemos reservar um tempo para praticar deliberadamente essas habilidades ou se devemos ingressar em um corpo profissional credenciado e obter a certificação neles. E assim por diante.
As crenças subjacentes, os fundamentos do que fazemos e por que fazemos, permaneceram inalterados por décadas. O Antigo Testamento do desenvolvimento de software é um texto religioso compartilhado entre todos que o fazem bem.
Caso precise ser lembrado, aqui estão os Dez Mandamentos do Desenvolvimento de Software:
- Não escreverás software que teu cliente não queria
- Tu Iterarás Tuas Soluções, Indefinidamente Se Necessário
- Tu Testarás Cedo e Frequentemente
- Você deve gerenciar versões e configurações de seu software, mesmo quando estiver trabalhando sozinho
- Você não pulará direto para a escrita do código se não tiver pensado um pouco no design
- Não escreverás código difícil de mudar
- Não integrarás ou liberarás código não testado
- Não criarás interfaces de usuário difíceis de usar
- Tratarás requisitos funcionais e não funcionais igualmente
- Tu deves automatizar tarefas frequentemente repetidas e compartilhar códigos frequentemente repetidos
Cada um de nossos mandamentos implica uma disciplina, com seu próprio conjunto de habilidades, suas próprias práticas, seus próprios padrões e seu próprio corpo de conhecimento. Podemos discordar sobre os detalhes de como exatamente seguir cada mandamento, mas fundamentalmente, por baixo de tudo, estamos todos adorando o mesmo deus.
Então, chega de Guerras Santas! Vamos continuar e melhorar a entrega de software funcional que irá satisfazer, talvez até encantar, nossos clientes.