Académique Documents
Professionnel Documents
Culture Documents
Resumo:
Quando se estuda Engenharia de Software, aprende-se que todo sistema tem um
tempo de vida útil, e que uma série de fatores podem contribuir para aumentar ou
diminuir este tempo: arquitetura, modelagem, tecnologia utilizada, aceitação do
mercado, etc. No entanto, nenhuma empresa desenvolve um sistema pensando no dia
em que ele deixará de atender as necessidades do seu cliente, apesar desta ser uma
verdade certa.
Neste ciclo, o sistema passa a maior parte do tempo sofrendo alterações. E estas
manutenções, sejam elas corretivas ou não, podem melhorar ou piorar o sistema,
dependendo da forma que forem implementadas. Pensando neste e em outros
problemas, Kent Beck apresentou ao mundo em 2003, através do seu livro “Test-
Driven Development”, uma técnica para criar sistemas baseados em testes que visa
garantir a qualidade e a funcionalidade do software durante este ciclo.
Embora TDD seja uma técnica testada e aprovada por grandes desenvolvedores ágeis,
muitas equipes de desenvolvimento ainda caem em algumas armadilhas e mal-
entendidos do tipo: por onde começar, o que testar e o que não testar. Isto sem falar
que quem escreve os testes são os desenvolvedores, mas quando a equipe de
qualidade vai testar, ela se preocupa com o comportamento do sistema e não com os
testes unitários. Desta forma, não há comunicação eficiente entre as duas equipes no
nível de código.
Kent Beck declarou em 2003 que TDD encoraja designs de código simples e inspira
confiança. Do ponto de vista de Robert C. Martin, escritor do livro “Agile Software
Development”, o objetivo de TDD é a especificação e não a validação, ou seja, é a
maneira de pensar através das necessidades do projeto antes de escrever o código
funcional.
BDD, a evolução
BDD é técnica de desenvolvimento ágil que visa integrar regras de negócios com
linguagem de programação, focando o comportamento do software. Além disso, pode-
se dizer também, que BDD é a evolução do TDD. Isto porque, os testes ainda orientam
o desenvolvimento, ou seja, primeiro se escreve o teste e depois o código.
Linguagem Ubíqua: é uma linguagem estruturada em torno do modelo de domínio e usada por todos
os membros da equipe para conectar todas as suas atividades com o software. Numa equipe de
desenvolvedores são: os jargões técnicas, terminologias das discussões do dia-a-dia ou uma linguagem
incomum para pessoas de outros departamentos.
• Visão do todo: Fergus O’Connell, em sua obra “How to Run Successful High-Tech
Project-Based Organizations” (Artech House, 1999), apresenta uma relação dos
principais motivos que levam projetos de software ao fracasso. O primeiro deles é: “os
objetivos do projeto não são bem definidos e compartilhados entre todos os
envolvidos”. Por este motivo, BDD sugere que os analistas/testadores escrevam os
cenários antes mesmo dos testes serem implementados, e desta forma os
desenvolvedores terão uma visão geral do objetivo do projeto antes de codificá-lo.
Não restam dúvidas de que desenvolver uma aplicação guiada por testes é uma prática
extremamente benéfica. O resultado é um código de boa qualidade, alta coesão e com
número reduzido de bugs, com isso proporcionando um prazo de validade longo e
manutenções mais baratas no futuro. No entanto, iniciar no mundo dos testes não é
nada fácil.
Fonte: https://www.devmedia.com.br/desenvolvimento-orientado-por-
comportamento-bdd/21127
Quando um item vai claramente ser feito por somente uma equipe e não terá
muita relação com outros itens, então o Refinamento do Product Backlog
será feito da mesma forma que uma única equipe Scrum. A equipe faz o
refinamento, de preferência em conjunto com os usuários/clientes/partes
interessadas e informe o Product Owner sobre as mudanças (divisões, novas
estimativas) no Product Backlog.
O Product Owner é a pessoa que define os itens que compõem o Product Backlog e os prioriza
nas Sprint Planning Meetings. O Scrum Team olha para o ProductBacklog priorizado, seleciona
os itens mais prioritários e se compromete a entregá-los ao final de um Sprint (iteração). Estes
itens transformam-se no Sprint Backlog.
O Scrum Master atua como facilitador do Daily Scrum e torna-se responsável por remover
quaisquer obstáculos que sejam levantados pela equipe durante essas reuniões. O papel
de Scrum Master é tipicamente exercido por um gerente de projeto ou um líder técnico, mas
em princípio pode ser qualquer pessoa da equipe.