O que é dogfooding e como isso ajuda os desenvolvedores?
É difícil imaginar um lugar onde desenvolvedores de software e comida de cachorro se combinem, mas "dogfooding" é uma parte essencial para tornar um programa bom. Embora não envolva abrir uma lata de carne de bovino, envolve os desenvolvedores dando uma olhada em sua própria criação antes de dá-la a outras pessoas.
Como tal, vamos explorar o que "dogfooding" significa em tecnologia e como isso ajuda.
O que dogfooding significa em tecnologia?
"Dogfooding" é quando um desenvolvedor testa o software que desenvolveu como se fosse um usuário regular. Ela deriva do termo "comer sua própria comida de cachorro", que descreve alguém experimentando algo que inventou ou desenvolveu do ponto de vista de seu público-alvo.
Dogfooding é um pouco diferente dos testes alfa e beta. Enquanto dogfooding e testes envolvem o uso do software para ver como ele se comporta, os testes alfa e beta se concentram em encontrar bugs e erros. E embora o dogfooding possa tecnicamente desenterrar erros que precisam ser corrigidos, o objetivo principal do processo é "sentir" o software para ver como o desenvolvedor pode melhorá-lo.
Por exemplo, digamos que você desenvolveu um cliente de e-mail que está quase pronto para lançamento. Durante as fases de teste alfa e beta, você provavelmente executará verificações específicas, como a forma como o cliente lida com os e-mails recebidos, como lida com uma conexão instável com a Internet e se você pode enviar e-mails a partir dela. Estas são verificações específicas feitas para eliminar bugs que impedirão o programa de funcionar corretamente.
Por outro lado, dogfooding é se você usa seu cliente de e-mail por dias, semanas ou meses a fio. Na verdade, você usaria seu programa de e-mail como se fosse um de seus usuários, que dependerá de sua ferramenta diariamente.
Embora você esteja fadado a encontrar erros durante um longo período de tempo, o foco principal é ver como é fácil e agradável usar seu programa na vida cotidiana. Se você acha seu programa simples e fácil de usar, incrível. No entanto, se você estiver ansioso para usar um programa diferente enquanto usa o seu, há uma boa chance de que os clientes em potencial também sintam o mesmo. Afinal, se em vez disso você usasse os produtos do seu concorrente em vez dos seus, por que outra pessoa deveria usar os seus?
Como o dogfooding ajuda?
Dogfooding ajuda os desenvolvedores a descobrir todas as falhas em seu design original. Quando os programadores criam um recurso ou ferramenta específica, geralmente o fazem com um plano que funciona bem no papel. No entanto, os recursos propostos em documentos de design às vezes não se traduzem no mundo real tão bem quanto o programador gosta.
É aí que entra o dogfooding. Ao usar o software diariamente e como parte de sua rotina, o programador encontra todas as partes irritantes e ausentes de seu software. Por exemplo, em nosso exemplo de e-mail, talvez as caixas de diálogo de aviso que você configurou como precaução fiquem realmente irritantes quando você usa o programa diariamente. Ou talvez você pressione CTRL + B para digitar em negrito em um e-mail, apenas para descobrir que esqueceu de codificar naquela tecla de atalho.
É por isso que é importante dar um test drive ao seu programa, mesmo se você tiver certeza de que ele está livre de erros. Use-o como se você fosse alguém que confia exclusivamente no seu cliente, veja quais problemas surgem e conserte-os para que os usuários reais não tenham que passar pela mesma coisa!
Não faça um jantar de cachorro fora do seu programa
Dogfooding pode parecer estranho, mas é uma forma valiosa para os desenvolvedores eliminarem todas as chances perdidas e recursos de design irritantes em seus softwares. Como tal, se você está apenas começando com a programação, certifique-se de testar seu programa e anote tudo o que você acha que precisa ser adicionado ou alterado.