Recentemente participei de um projeto na empresa onde trabalho e decidimos utiliza uma abordagem orientada a testes para que eu pudesse desenvolver o projeto e usar meu código para geração dos artefatos necessários pelo nosso processo e a área de qualidade.
Gostei da abordagem pois gosto muito de codificar, testar novos recursos da linguagem e das demais bibliotecas que a Microsoft disponibiliza, neste caso a Enterprise Library 5.
Foi minha primeira experiência com desenvolvimento pensado deste jeito, e apesar dos roblemas identificados gostie da abordagem, e o assunto é uma boa discussão para a inclusão de mais deficientes visuais no ramo de desenvolvimeno de software.
Mas com que base posso afirmar isto?
TDD só necessita da Especificação de Requisitos para ser iniciado. Este é um documento textual acessível para todos e por este motivo nãpo impede o trabalho de um DV;
Todas as boas IDEs possuem ferramentas integradas de geração de testes unitários e sua execução, demonstrando sua completude, permitindo sua depuração de maneira com que o DV escreva e realize todos os testes de forma independnete;
A escrita de testes unitários, e o desenvolvimento em camadas, permite que os testes sejam escritos antes do código em si, e assim, antes mesmo até da interface gráfica. Membros diferentes da equipe podem trabalhar em paralelo, partes do código podem ser “mockadas” e a boa definição de um contrato garante a total compatibilidade do código na hora de fazer o merge de tudo;
Unity, o framework de injeção de dependência da EntLib, é robusto o suficiente para permitir este desenvolvimento paralelo sem traumas;
Temos algumas coisas para melhorar em nosso processo, mas acredito que em pouco tempo teremos um processo maduro e acessível, e quem sabe com isso um primeiro passo para abertura de mais oportunidades no mercado de trabalho.
Publicarei aqui todos os nosso avanços.