As Vantagens do BDD em Times Ágeis

Meus caros,

Hoje escrevei um post sobre este assunto que meu professor sugeriu que eu abordasse no Lightning Talk da minha Especialização.

Mas e o que é BDD?

Behavior Driven Development é uma metodologia de desenvolvimento de software onde a implementação das funcionalidades foca no seu comportamento e no resultado como um todo. Pode-se fazer uma analogia com o TDD, porém este preocupa-se mais com classes e métodos de forma mais isolada. Já o BDD é direcionado de acordo com os valores de neǵocio e o Desenvolvimento é de fora pra dentro (Outside-In Development).

No seu ciclo de vida podemos destacar as seguintes etapas:
1) Escrever teste que descreva o comportamento esperado.
2) Implementar código para o comportamento esperado na definição do teste.
3) Refatorar para melhorar o design do seu código e sua eficiência sem alterar o seu comportamento.

É notório destacar que em todas as etapas a preocupação maior é com a implementação do comportamento.

Após esta breve introdução, já posso escrever sobre o motivo principal deste post.

Por que usar em Times Ágeis?

1) BDD utiliza linguagem natural para definir comportamentos da aplicação

O uso da linguagem cotidiana facilita a comunicação dos membros do time. Desenvolvedores geralmente utilizam uma linguagem mais técnica e ao utilizar esta abordagem a aproximação com pessoas de negócio e clientes se torna mais fácil.

2) Estimula participação do Cliente

No BDD o próprio cliente pode definir comportamentos e escrever o que vai ser testado. Mesmo que não escreva é ele quem valida estes comportamentos da aplicação.
Também é mais fácil explicar, caso precise, como determinada funcionalidade está sendo testada. Logo o cliente pode ter mais interesse em ficar ciente de mais esta etapa.

3) Artefatos semelhantes às práticas ágeis

Uso de user stories e testes de aceitação é comum no BDD.

4) Favorece o desenvolvimento de forma evolutiva.

Podemos definir os sprints de acordo com os comportamentos definidos inicialmente.

5) Facilita a escrita de testes

Apesar de ter uma filosofia parecida com o TDD, ao descrever comportamentos é mais confortável para o desenvolvedor escrever cenários e montar seus testes em cima disto, além de ser mais legível e de fácil entendimento, já que o nome dos métodos de teste dizem como a implementação deve se comportar.

6) Maior isolamento da aplicação

Através da descrição de cenários e comportamentos é mais simples identificar os componentes que envolvem determinada funcionalidade. Sem contar o fato de ao melhorar o design possivelmente estamos diminuindo o acoplamento entre as classes.

7) Aumenta o entendimento do negócio por parte do time

A implementação de comportamentos e cenários por parte dos desenvolvedores faz com que eles tenham um melhor entendimento das regras de negócio e do domínio da aplicação.

8) Aumenta a qualidade do software

Por fim, ao realizar mais e melhores testes, teremos menos erros e bugs gerando um software com maior qualidade, deixando o cliente mais satisfeito e alcançando seus objetivos de forma mais eficiente.

_

Estas são algumas das vantagens que eu pude identificar ao estudar e pesquisar sobre esta metodologia. Acredito que tenham mais coisas que possam ser acrescentadas ou até mesmo alguma delas podem não acontecer na prática.

E ainda podemos encontrar alguns valores e princípios do Manifesto Ágil no BDD, como por exemplo Indíviduos e Interações mais do que processos e ferramentas, Colaboração com o Cliente e Responder mudanças mais que seguir um plano.

Fiquem à vontade para sugerir ou criticar este post. A discussão é livre e acrescenta muito ao melhor entendimento, já que eu nunca trabalhei e pratiquei, apenas tenho conhecimento teórico.

Até a próxima! 😉

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s