Escolar Documentos
Profissional Documentos
Cultura Documentos
A Engenharia de Requisitos
e o Desenvolvimento gil
colaborativo, just enough, just in time, sustentvel -
Patrocnio
www.tmtestes.com.br
Todos os direitos reservados. Nenhuma parte desta publicao pode ser reproduzida, armazenada em um sistema de
arquivamento ou transmitida de qualquer forma, ou por qualquer meio, seja eletrnico, mecnico, fotocpia, ou
gravao ou qualquer outro, sem a autorizao prvia e por escrito dos autores ou do IREB e.V.
Sumrio
1 Introduo....................................................................................................................................................................... 3
2.1 A incerteza uma caracterstica dos modernos mercados orientados ao cliente ....................... 4
6 Resumo ......................................................................................................................................................................... 17
1 Introduo
Alm disso, acreditamos que a disciplina da Engenharia de Requisitos constitui uma competncia
central em qualquer processo de desenvolvimento de software, uma vez que ela responsvel
pela comunicao contnua e a confirmao do que precisa ser feito (e por que) para atender as
necessidades de stakeholders e usurios. A Engenharia de Requisitos uma tcnica
especializada essencial e necessria no mundo complexo do desenvolvimento de produtos e
servios.
Nossa resposta para a objeo "Isso a coisa de antigamente, intil, agora precisamos fazer de
outro jeito" a seguinte: "Coisa de antigamente? Sim. Intil? No! Fazer de outro jeito? Tudo
bem, sem problema! Muitos membros do IREB esto envolvidos ativamente no movimento gil e
compartilham a mentalidade das organizaes geis, buscando aumentar a flexibilidade, a
produtividade e a rapidez de entrega de produtos e servios para o mercado.
2 A Incerteza um Fato
2.1 A incerteza uma caracterstica dos modernos mercados orientados ao cliente
A demanda por maior flexibilidade e produtividade tem suas razes em ciclos de produto
dramaticamente mais curtos e na elevada presso do mercado para entregar produtos e servios
que encantam os clientes. As pesquisas demonstram que os ciclos de produto reduziram-se
drasticamente, passando de uma mdia de seis anos na dcada de 1980, para seis meses em
2010 [6].
Isso teve um forte impacto sobre as organizaes. Como os crculos de inovao so muito
rpidos, a presso para encurtar o tempo de entrega para o mercado alta, e os horizontes de
planejamento de longo prazo perdem relevncia frente a um mercado e uma economia em
transformao constante. A confiabilidade do planejamento de mdio e longo prazo baixa devido
ao aumento da incerteza sobre o desenvolvimento do mercado. Uma organizao ser bem
sucedida sempre que conseguir adaptar rapidamente seu modelo de negcio e seu portflio de
produtos e servios em resposta s foras dinmicas do mercado.
O desenvolvimento gil e lean uma abordagem que favorece a performance em condies de
maior incerteza. As empresas que apresentam um bom desempenho nessas condies muitas
vezes adotam mtodos geis e outras tcnicas iterativas em toda a organizao. Em mercados
caracterizados por mudanas rpidas e orientados para o consumidor, os modelos de ciclos de
vida geis e iterativos comprovadamente aumentaram a taxa de sucesso dos projetos [1].
As organizaes com outro histrico ou que operam em um ambiente diferente assumem o risco
de agir de outra forma. As histrias de sucesso da Amazon, Facebook ou Google demonstram
que a adaptao rpida para mercados em constante mudana, com base no feedback do
usurio, uma abordagem vlida para lidar com a incerteza. Muitos servios bem sucedidos do
Google comearam com uma verso beta e surgiram a partir do feedback dos usurios. Os
usurios apreciam esse comportamento. A gesto nessas organizaes do tipo: "No sabemos
exatamente qual a meta. Na verdade, so os nossos usurios que sabem. Mas sabemos como
chegar l o mais rapidamente possvel". Essa uma abordagem muito diferente das organizaes
clssicas, uma abordagem que incorpora princpios geis e lean.
1
Essa experincia j foi apresentada por Winston W. Royce em seu artigo Gerenciando o Desenvolvimento de Grandes Sistemas de
Software" (muitas vezes considerado como a origem do conceito cascata).
Nos modelos de ciclo de vida em cascata, esse feedback toma a forma de um processo de
gerenciamento de mudanas, com medidas explcitas para gerenciar o fluxo de informaes que
retornam para os projetos a partir das lies aprendidas, dos problemas encontrados e de
mudanas externas no contexto de trabalho. Em muitas organizaes, o processo de gesto de
mudana uma estrutura pesada, com alto impacto em termos de custo e trabalho.
A ordem das atividades e a forma de colaborao diferente no modelo de ciclo de vida gil. Ao
longo de todo o projeto, a equipe trabalha os requisitos em estreita colaborao com os
stakeholders e usurios, desenvolvendo o sistema produtivo de forma incremental. O objetivo
central do modelo de ciclo de vida gil obter feedback de maneira rpida e direta dos
stakeholders e usurios, de preferncia atravs do uso do prprio sistema. O feedback direto
obtido a partir do uso do sistema mostrou ser a melhor evidncia de que o desenvolvimento do
sistema est seguindo a direo pretendida pelos objetivos do sistema. Na disciplina da
Engenharia de Requisitos, as equipes geis trabalham continuamente com os stakeholders e
usurios:
Na elicitao de requisitos, ou seja, na identificao e especificao de novos picos e histrias de
usurios alinhadas aos objetivos dos stakeholders e dos usurios, ou em atividades de refinamento
do backlog.
No detalhamento maior de picos e histrias de usurios at que sua definio esteja confirmada
como completa, bem como na especificao de critrios de aceitao para que a equipe tenha todas
as informaes necessrias para desenvolver, a partir desses requisitos, uma parte produtiva do
sistema que fornea o valor esperado para o negcio.
Nos testes de verificao e validao da Engenharia de Requisitos executados nas partes do sistema
desenvolvidas at agora com qualidade e status potencial de entrega.
A equipe executa todas essas atividades em paralelo. Cada membro da equipe atua em mais de
uma funo. Ao discutir a histria do usurio e definir critrios de aceitao com um stakeholder,
um membro da equipe desempenha o papel de engenheiro de requisitos. Ao implementar a
histria do usurio, preferencialmente aps um processo de design orientado por testes de
aceitao, o membro da equipe atua como desenvolvedor e testador.
A diferena entre os dois modelos de ciclo de vida est na maneira em que os papis so
atribudos s pessoas. As organizaes que preferem o modelo em cascata muitas vezes
atribuem a uma pessoa exatamente um papel. O efeito desse engessamento de papis que ao
longo do processo de desenvolvimento, muitos indivduos trabalham em uma funo do produto.
Assim, a responsabilidade pelas funcionalidades do produto distribuda entre vrios indivduos.
A documentao inicial substitui a comunicao direta e o feedback com os stakeholders,
resultando em suposies que podem mais tarde revelar-se equivocadas e acabam gerando
solicitaes de mudana. A organizao de um projeto como esse funciona como uma espcie de
telefone sem fio entre os vrios papis que participam no desenvolvimento de um requisito. Nas
organizaes que preferem o modelo de ciclo de vida gil, cada membro da equipe desempenha
mais de um papel e troca de papis conforme o trabalho exige. A comunicao direta com os
stakeholders e o feedback rpido mantm atualizado e ativo o conhecimento da equipe, o que
reduz a necessidade de documentao.
O perodo entre a formulao inicial da suposio e sua validao pelo sistema desenvolvido
muito maior em projetos em cascata do que em projetos geis. Em projetos em cascata, as
suposies so validadas dentro de uma fase explcita de integrao e testes de aceitao pelo
usurio. Projetos geis, com um ciclo curto de iterao, validam as suposies em cada iterao
a partir de testes de aceitao do usurio e sesses de reviso com os stakeholders.
Quanto maior o perodo para validar uma suposio no confronto com a realidade, maior a
probabilidade de mudanas, especialmente em ambientes onde o contexto em torno do prprio
projeto sofre mudanas. Mesmo estando correta no momento em que foi formulada, mais
provvel que uma suposio venha a se tornar invlida durante o tempo de ciclo mais longo de
um projeto em cascata, do que no curto tempo de ciclo de um sprint em um projeto gil.
Um modelo de ciclo de vida gil iterativo: ter uma viso, dar incio ao marketing, desenvolver
o produto vivel mnimo, lanar no mercado o mais rapidamente possvel, obter feedback,
detectar o prximo conjunto mnimo de funcionalidades exigidas, mais uma vez lanar muito
rapidamente, obter feedback, e assim por diante.
A diferena entre as duas abordagens o fato que um grupo limitado de pessoas no capaz de
representar ou antecipar a demanda de um pblico heterogneo de usurios. Falando em termos
de habilidades cognitivas, um grupo fixo de pessoas apenas tem uma capacidade limitada para
prever desenvolvimentos futuros (veja, por exemplo, [3]). A nica maneira de identificar a
demanda obter feedback de verdade, seja ele fornecido diretamente pelos usurios, ou atravs
de mtodos de anlise embutidos no servio, que medem o comportamento do usurio. O
feedback um tipo de comunicao com a multido. Fazendo um paralelo com a Engenharia de
Requisitos, essa uma atividade de elicitao de requisitos. O mecanismo de avaliao do
aplicativo em uma loja de aplicativos como o iTunes , na verdade, um mecanismo de feedback e
uma forma transparente de anlise.
O feedback qualificado da multido apoia o processo de aprendizagem organizacional. Os
resultados da aprendizagem so os seguintes:
Recebemos feedback real de clientes reais e no as nossas prprias (e potencialmente falsas)
crenas sobre o que o cliente possivelmente pensa
Identificamos os segmentos de clientes com mais preciso
Entendemos as necessidades do segmento de clientes com mais preciso
Podemos aprender a prever o futuro at certo ponto: podemos antecipar a prxima inovao
incremental (funcionalidades) que ir melhorar o nosso produto
Essa abordagem pressupe um processo de desenvolvimento iterativo e incremental. O tempo de
ciclo entre as etapas de fornecimento de um produto depende do mercado. Nos mercados em
transformao constante, esse intervalo pode ser de um dia. Em outros mercados, quatro
implementaes por ano podem ser suficientes. O fato que o tempo de ciclo est se tornando
cada vez mais curto em todos os mercados. Se hoje o ciclo de seis meses, amanh ele poder
ser de seis semanas.
Podemos portanto afirmar que ampliar a escala da agilidade do nvel de equipe para o nvel da
organizao envolve a reutilizao de conceitos da Engenharia de Requisitos sob novos nomes,
j bem estabelecidos no mundo gil.
Com o foco no fluxo contnuo de informaes e a abordagem lean de detalhar requisitos apenas
quando necessrio, a especificao de requisitos est mais para uma documentao que vai
surgindo aos poucos do que o resultado de uma atividade inicial. Assim, uma especificao gil
contm informaes teis apenas para a equipe e os stakeholders. A especificao muitas vezes
est no nvel mais abstrato de metas e objetivos. Essas informaes fornecem subsdios para que
os stakeholders e a equipe possam alinhar o desenvolvimento de mdio prazo com a direo
estratgica, tomar decises fundamentais sobre o roteiro de desenvolvimento e o planejamento do
release do sistema e documentar importantes conhecimentos bsicos (como algoritmos) que de
outra forma poderiam se perder ao longo do tempo. Essa documentao existe sob forma de
artefatos independentes de um backlog.
No conceito mais abstrato de documentao, os testes de aceitao implementados e
automatizados tambm fazem parte da especificao de requisitos. Nas especificaes de
requisitos de estilo clssico, sempre havia um captulo ou documento "testes de aceitao". Hoje,
uma especificao executvel ou uma srie de testes de aceitao podem substituir esse
(captulo do) documento. No entanto, importante observar que a capacidade de entender os
requisitos do sistema e de "escrever" testes de aceitao de alta qualidade continua sendo
necessria. A pessoa que escreve esses testes de aceitao est desempenhando os papis de
engenheiro de requisitos e testador.
Um ponto interessante que a equipe cria essa documentao de forma contnua e no como um
tarefa inicial. A especificao de requisitos em um ambiente gil um objeto vivo, representado
parcialmente em diferentes containers, at mesmo como uma srie de testes de aceitao
executveis. Essa maneira diferente de realizar atividades de Engenharia de Requisitos em um
ambiente gil resulta em uma especificao de requisitos viva, atualizada, correta e til. Uma
equipe gil disciplinada e madura dotada de todos os recursos necessrios desenvolve a
documentao de requisitos do sistema enquanto o prprio sistema desenvolvido. Esse tipo de
especificao de requisitos contm apenas:
as informaes exigidas pela equipe para construir o sistema alinhado a um roteiro de produto
as informaes exigidas pela equipe para fazer a manuteno e dar suporte para a capacidade
operacional do sistema
as informaes exigidas pela organizao para melhorar continuamente o produto alinhado com a
estratgia organizacional, ou seja, para desenvolver um roteiro de produto e um planejamento de
release transparente.
http://manifestoagil.com.br/
6 Resumo
Referncias
[1] Chaos Manifest 2011, Standish Group International
[2] Requirements Engineering Fundamentals; 1st Edition; Klaus Pohl, Chris Rupp; Rocky Nook
Inc. (April 2011); English, 184 pages Paperback; ISBN-13: 978-1933952819
[3] Kahnemann, D.: Thinking, Fast and Slow. PENGUIN Psychology, 2011
[4] IREB Certified Professional for Requirements Engineering, Foundation Level, Syllabus
Version 2.1, 1st March 2011
[5] Supporting Agile Teams of Teams via Test Driven Design; Kris Read; Thesis submitted to
the faculty of graduate studies in partial fulfillment of the requirements for the degree of
Master of Science; Department of Computer Science; Calgary University, Alberta; Feb 2005
[6] Creative Process and Product Life Cycle of High-Tech Firms Creativity and Innovation,
key drivers for success; Verna Lu and Cdric Marjot; Master Thesis; Baltic Business
School, University of Kalmar; Sweden; June 2008
[7] Blog of Bill Wake, 2003: INVEST in Good Stories, and SMART Tasks, see:
http://xp123.com/articles/invest-in-good-stories-and-smart-tasks/