Escolar Documentos
Profissional Documentos
Cultura Documentos
Nesta seo voc encontra artigos voltados para as prticas e mtodos geis.
E
ric Evans, em seu livro Domain-Driven Design, destaca do Acceptance Test Driven Planning (ATDP) e do Domain-
que muitas coisas podem fazer um projeto perder seu Driven Design (DDD) em um todo integrado, tornando a
rumo: a burocracia, objetivos pouco claros e a falta relao entre estas duas abordagens mais evidentes.
de recursos, para citar alguns. Mas a abordagem dada ao O TDD ajuda desenvolvedores a criar cdigo de alta
projeto que, em grande parte, determina at que ponto os qualidade, por meio de testes de unidade escritos antes
softwares podem se tornar complexos. Quando a complexida- da implementao do cdigo-fonte para modelar o design
de foge do controle, os desenvolvedores j no podem enten- que se deseja usar. Isto ajuda a evitar defeitos durante essa
der o software bem o suficiente para alter-lo ou expandi-lo implementao, evitando tambm que atividades futuras
com facilidade e segurana. possam afetar as j desenvolvidas.
Cada software est relacionado a alguma atividade ou in- No entanto, os clientes ou especialistas de domnio raramente
teresse do seu usurio. Essa rea de interesse do usurio o tm interesse em cdigo. Eles tm interesse em softwares que
domnio do software. Os domnios dos softwares geralmente os ajudam a ser mais produtivos, ganhar mais dinheiro, manter
tm pouco a ver com computadores. Por isso, para criar ou melhorar a capacidade operacional. Ou seja, necessrio
softwares que tenham valor para as atividades desempenha- entregar software que suporte as funes de negcio ou neces-
das pelos usurios, a equipe de desenvolvimento deve trazer sidades de mercado. ATDD o que ajuda os desenvolvedores a
consigo um conjunto de conhecimentos relacionados a essas criar software de alta qualidade que atenda as necessidades de
atividades. Mas a quantidade de conhecimento necessria pode negcio de uma forma confivel como TDD ajuda a garantir a
ser estarrecedora. O volume e a complexidade de informao qualidade tcnica do software. Mas agora cobrindo o compor-
podem ser imensos. Modelos so ferramentas para atacar tamento, descrevendo os requisitos em histrias de usurios e
essa sobrecarga. Um modelo uma forma de conhecimento no somente no design do cdigo.
seletivamente simplificada e conscientemente estruturada. Um O ATDP traz a abordagem de escrever testes durante a reu-
modelo adequado faz com que as informaes tenham sentido nio de planejamento da iterao, utilizando o ATDD como
e se concentra em um problema. principal prtica para escrever testes. Desta forma, especia-
Outro aspecto relevante a linguagem utilizada. Especia- listas de domnio e equipe de desenvolvimento definem os
listas de um domnio possuem um entendimento limitado do comportamentos esperados para cada funcionalidade do
vocabulrio tcnico usado no desenvolvimento. J os desenvol- sistema e os testes de aceitao, para definir quando a funcio-
vedores, por outro lado, podem entender e discutir o sistema nalidade est pronta.
em termos descritivos e funcionais, desprovidos do significado O BDD uma tcnica de desenvolvimento de software
transmitido pela linguagem dos especialistas. cuja amplitude se estende s atividades de levantamento de
Em meio a essa diviso lingustica, os especialistas de um requisitos, design, documentao, verificao e validao,
domnio descrevem vagamente o que querem. Os desenvol- tratando-as de modo unificado, disciplinado e com foco em
vedores, lutando para entender um domnio novo para eles, qualidade e em entrega rpida de software de valor. BDD
entendem tudo vagamente. encoraja e fornece um ambiente propcio colaborao entre
Por este motivo, um processo sem uma linguagem comum, desenvolvedores e especialistas de domnio em um projeto
faz com que desenvolvedores tenham que traduzir para os de software.
especialistas do domnio. Esses especialistas traduzem entre Apesar de Dan North demonstrar interesse em transformar
cada desenvolvedor e tambm com outros especialistas do o BDD em uma metodologia inteira, no artigo Behaviour-
domnio. At mesmo os desenvolvedores traduzem uns para Driven Stories ele fornece apenas uma forma de utilizar a
os outros. A traduo confunde os conceitos do modelo, o que linguagem ubqua e no fornece demais processos necessrios
leva a uma refatorao destrutiva do cdigo. ao desenvolvimento de software. Sendo assim, este artigo
O custo de toda a traduo, alm do risco de entendimento apresentar como trabalhar com requisitos utilizando o BDD
errado, simplesmente muito alto. Por este motivo, um projeto e o framework Scrum.
precisa de uma linguagem em comum. Essa linguagem deve Scrum uma maneira simples e repetvel de gesto do tra-
ser baseada no modelo e deve ser usada entre os desenvolve- balho que pode ser usado para projetos ou produtos. Ele foi
dores para descrever no s artefatos do sistema, mas tarefas originalmente projetado para o trabalho de desenvolvimento
e funcionalidades. de software, mas no especfico para este fim e, por isso, pode
Existem maneiras sistemticas de pensar que podem ser ser utilizado para gerenciar qualquer trabalho. Alm disso, o
empregadas pelos desenvolvedores na busca por novas vises Scrum muito difundido na comunidade gil.
e pela gerao de modelos eficazes. Uma destas maneiras o Assim, o Scrum foi escolhido para ajudar no entendimento
Behaviour-Driven Development (BDD) Desenvolvimento da aplicao dos processos de engenharia de requisitos em um
Guiado por Comportamento , que tem por objetivo ajudar o contexto gil, demonstrando a forma de definir e documentar
desenvolvimento na entrega priorizada, com valor de negcio os requisitos durante seus diversos eventos.
verificvel, fornecendo um vocabulrio comum, ou linguagem A partir de agora sero apresentadas um conjunto de prticas
ubqua, que abrange a rea de negcio e a rea de tecnolo- que podem ser utilizadas no apoio s atividades de requisitos
gia. Reunindo ideias do Test-Driven Development (TDD), em cenrios geis de desenvolvimento.
Carto
Histrias de usurio so tradicionalmente escritas em um
carto. Um carto no contm toda a informao que constitui Figura 3. Exemplo de carto
o requisito. Ao invs disso, possui apenas o texto suficiente
para identificar a necessidade e para lembrar o que deve ser Conversa
implementado. Notas, estimativas, observaes, coment- Detalhes que podem surgir durante a comunicao do re-
rios, prioridade e custo, entre outras informaes, podem ser quisito do cliente para a equipe de desenvolvimento. Estes
escritas. detalhes iro esclarecer o objetivo da histria.
Dan North (2006), na tentativa de definir uma linguagem
nica para a anlise, desenvolveu um modelo para histria Confirmao
de onde deve se concentrar em quem, o que e por que de um O cliente define com a equipe de desenvolvimento quando
recurso, e no como, conforme representado na Figura 2. a histria de usurio pode ser considerada pronta. Aqui se
Onde o que a funcionalidade do sistema, o por que o tem os critrios de aceitao que confirmam se a histria de
benefcio ou valor da funcionalidade para o negcio e quem usurio est se comportando de acordo com os requisitos.
a pessoa (ou papel) que vai se beneficiar com a funcionalidade. Detalhes que j foram determinados atravs de conversas se
Tendo como vantagem deste modelo a de obrigar a identificar tornam testes.
o valor de entrega de uma histria. Isto ajuda a identificar Testes de aceitao definem as respostas que a funcionalida-
histrias que no agregaro valor ao negcio, tornando fcil de deve fornecer de acordo com cada utilizao por parte do
retir-las do escopo. usurio. Segundo Teles (2006), os testes de aceitao devem ser
Sprint
Sprints definem o ciclo bsico de desenvolvimento utilizando
o Scrum. Cada sprint composta por uma reunio de plane-
jamento da Sprint, reunies dirias, o trabalho de desenvolvi-
mento, uma reviso da Sprint e a retrospectiva da Sprint.
Retrospectiva da Sprint
A retrospectiva da Sprint tem o propsito de inspecionar
como a ltima Sprint ocorreu em relao s pessoas, relaes, Nota do DevMan 2
processos e ferramentas; identificar e ordenar os principais
itens que foram bem e as potenciais melhorias; e criar um Teste de unidade: Utilizando histrias de usurio no formato do BDD, conforme
plano para implementar melhorias no modo como o trabalho descrito brevemente neste artigo e, em conjunto com ferramentas de automao
realizado. de testes, como o Cucumber, possvel gerar testes automatizados a partir das his-
Essa uma tima oportunidade para discutir o formato dos trias de usurio podendo, de acordo com a definio das necessidades da equipe,
requisitos e como a soluo est sendo documentada. Depois do projeto ou do cliente, substituir os testes de unidade.
de participar de diversos projetos geis, percebe-se que a
forma e o que documentado podem variar em cada projeto.
O foco obter uma documentao til equipe de desenvol-
vimento e que seja de fcil entendimento para os especialistas Processos de negcio Este documento descreve os pro-
de domnio. cessos de negcio que so implementados pelo sistema. Em
muitos projetos, os processos de negcio que so apoiados
Documentos gerados dentro da Sprint pelo sistema so recentes, muito instveis e evoluem com o
Apesar de este artigo estar focado no Scrum e no BDD, sistema. Por esta razo, este documento deve ser atualizado
importante citar as contribuies que a metodologia XP pro- no final de cada Sprint, devendo descrever os processos de
porcionou para a questo da documentao de requisitos. negcio que efetivamente so apoiados pelo sistema. Outros
A XP indica que deve ser documentado apenas o mnimo processos que sero apoiados pelo sistema no futuro no
A Engenharia de Software Magazine tem que ser feita ao seu gosto. http://www.allaboutagile.com/what-is-scrum/
sobre e
ta
edio
D seu voto sobre este artigo, atravs do link:
http://www.vietnamesetestingboard.org/zbxe/?document_srl=276643
www.devmedia.com.br/esmag/feedback