Dirigindo o desenvolvimento com testes: ATDD e TDD (artigo traduzido)

Elisabeth Hendrickson (mais conhecida como “Test Obsessed”) fez uma apresentação bastante objetiva sobre como utilizar testes de aceitação automatizados para guiar o desenvolvimento de software (TDD com testes de aceitação, ou ATDD) nas conferências STANZ’08 e STARWest’08.

A partir de sua apresentação, ela disponibilizou um artigo bastante simples mas muito ilustrativo sobre o funcionamento de uma estratégia dirigida por testes em ATDD e TDD para equipes ágeis.  Um bom material para se mostrar a quem não tenha muita noção de como funcionam testes ágeis numa equipe de software (p.ex., aquele seu chefe que não leva muita fé em agile).  Artigo este que disponibilizamos traduzido para português aqui.

PS: Nossos agradecimentos à Test Obsessed que permitiu gentilmente a disponibilização deste material.  Thank you Elisabeth!

Anúncios

“Você é responsável pelo software que desenvolve”

A primeira vista você pode pensar que esta frase seja muito óbvia. É claro, afinal de quem mais será a culpa quem mais pode ser responsável pelo software que está sendo desenvolvido senão a própria equipe que o desenvolve?

Apesar de parecer óbvia, se visualizarmos as coisas no desenvolvimento de software (dito “tradicional”) por um dado ponto de vista, podemos ver que muitas vezes nem tudo acaba funcionando assim.  Ao contrário disso.

Se prestarmos atenção, no processo de desenvolvimento “tradicional” (esquema de fábrica de software de empresas 1.0) podemos ver que a cada momento os papeis responsáveis pelo software em cada momento buscam se cercar de todos os meios e se livrar da responsabilidade do software.

SFases do ciclo de desenvolvimento em cscatae não, ou vejamos. Tudo começa com um cliente que tem uma necessidade ou enxerga uma oportunidade.  Isto pode ser uma ideia, um projeto, um desejo.  O cliente tem dinheiro e quer fazer aquilo acontecer, o que ele faz?  Transfere a responsabilidade pela sua ideia, seu projeto, seu desejo –na  verdade, seu futuro software– para uma equipe de desenvolvimento.  Um contrato inicial, um prazo estipulado e… “Ufa, a bola agora já não está comigo. Estou pagando e ao final do prazo já tenho de quem cobrar resultados”.  Com isto, o cliente livra-se da responsabilidade sobre o software para a equipe.

Continuar lendo