Behaviour Driven Development, e eu com isso?
Glaucimar Aguiar é mestre em Engenharia de Software pela Universidade Federal da Paraíba (título recebido em 2002). Desde então, tem atuado em diversas áreas como desenvolvimento, qualidade, gerência de projetos, e há aproximadamente 8 anos atua como arquiteta de software e PO na Hewlett Packard Enterprise. Glaucimar é nossa keynote na #Webbr2016 com a apresentação “Behaviour Driven Development, e eu com isso?”, na qual falará sobre o impacto dessa técnica nos diferentes papeis envolvidos no desenvolvimento de software. Confira nessa entrevista que fizemos com ela uma prévia do que você poderá ver em sua palestra.
1) O que é BDD e o que as práticas de BDD incluem?
Behaviour Driven Development é uma metodologia de desenvolvimento de software que tem como principal aspecto o foco no comportamento do sistema em todos os níveis. A grande sacada do BDD é a facilidade de comunicação entre os diversos papéis envolvidos no desenvolvimento de software e, com isso, endereçando um dos grandes desafios de qualquer time, relacionamento: a comunicação. Ainda mais relevante em times multidisciplinares, como é um time de desenvolvimento de software e especialmente se esse time é um time multicultural, formado por pessoas de diferentes países, regiões, etc.
2) Quais são as principais vantagens em usar BDD?
Como mencionei acima, a grande vantagem do BDD, em minha opinião e experiência, é a questão da linguagem ubíqua ou uniforme, que permite uma comunicação mais efetiva entre os diversos papeis envolvidos no desenvolvimento do software. Mas claro que o BDD envolve mais do que a forma de descrição de requisitos do software, a metodologia adota ideias do TDD, domain-driven design para sua composição. E, com a popularidade e aplicação dessa metodologia, há várias ferramentas de apoio e suporte a sua implantação. Nessa palestra, vamos abordar principalmente as vantagens da linguagem ubíqua e porquê BDD se tornou minha grande aliada como arquiteta de software.
3) Quais são os principais frameworks de trabalho existentes para o BDD?
Ah… existem várias ferramentas disponíveis para as principais linguagens de desenvolvimento que podem ser usadas de apoio e suporte a implementação da metodologia. JBehave foi a primeira ferramenta desenvolvida por Dan North que dá apoio a aplicação dessa metodologia, mas há ferramentas para Ruby, Python, etc. Porém, para construir uma estratégia de automação de testes (que é base da metodologia), outras ferramentas precisam ser adotadas e isso vai depender muito do software em desenvolvimento. Nessa palestra vamos conhecer as ferramentas que dão apoio a implantação do BDD em um projeto de interface web, as principais lições aprendidas e dificuldades enfrentadas.
4) Como que você visualiza os ambientes de testes no futuro? O que você ainda acha que precisa melhorar?
Bem.. não existe bala de prata assim, não acredito em uma técnica ou ferramenta que seja a melhor opção para toda e qualquer situação. Assim, como a evolução das tecnologias, linguagens de programação e problemas, os testes também continuarão evoluindo e mudando, pois vamos enfrentar problemas diferentes e teremos necessidades também diferentes. Dito isso, acredito que a principal mudança que hoje ainda precisa acontecer é de mentalidade, tanto de desenvolvedores como de gestores. Ainda há resistência dos desenvolvedores de entender que testes e qualidade é parte do seu trabalho e não de um terceiro grupo. Ainda há resistência de gestores em entender que o investimento em teste retorna em forma de software com mais qualidade. E quando falo de qualidade, refiro-me tanto à questão do funcionamento do sistema em si como também ao atendimento aos prazos e cronogramas.