Escolar Documentos
Profissional Documentos
Cultura Documentos
GerenciamentoRequisitos PDF
GerenciamentoRequisitos PDF
Volume
Gerenciamento de Requisitos
de Software
Gerenciamento de Requisitos de
Software
Leffingwell, Dean & Widrig, Don. Managing Software Requirements: A Unified Approach
Addison-Wesley object technology series, Addison Wesley, 2000. ISBN: 0-201-61593-2
ndice
NDICE ........................................................................................................................................................................3
CAPTULO 1...............................................................................................................................................................8
O PROBLEMA DA PEDRA (POR ED YOURDON) ................................................................................................8
CAPTULO 2.............................................................................................................................................................11
INTRODUO AO GERENCIAMENTO DE REQUISITOS ...................................................................................11
Definies.......................................................................................................................................................................11
O que um Requisito?................................................................................................................................................................................. 11
O que o Gerenciamento de Requisitos? .................................................................................................................................................... 11
Resumo ............................................................................................................................................................................16
CAPTULO 3.............................................................................................................................................................17
A EQUIPE DE SOFTWARE ...................................................................................................................................17
Desenvolvimento de Software como uma Atividade de Equipe .........................................................18
Habilidades da Equipe de Requisitos para o Gerenciamento Efetivo de Requisitos .................................................................................... 18
Membros da Equipe possuem Habilidades Distintas ................................................................................................................................... 19
A Organizao da Equipe de Software ........................................................................................................................................................ 19
O Caso de Estudo........................................................................................................................................................20
Escopo do Caso de Estudo ......................................................................................................................................................................... 20
A Equipe de Desenvolvimento do Software HOLIS ................................................................................................................................... 21
Sumrio............................................................................................................................................................................22
CAPTULO 5.............................................................................................................................................................38
MODELAGEM DE NEGCIO ................................................................................................................................38
Propsito da Modelagem de Negcio...............................................................................................................39
Usando Tcnicas de Engenharia de Software para Modelar Negcios..........................................39
Escolhendo a Tcnica Correta ..................................................................................................................................................................... 39
A Linguagem de Modelagem Unificada ....................................................................................................................................................... 40
Modelagem de Negcio Usando UML ........................................................................................................................................................ 40
CAPTULO 6.............................................................................................................................................................44
O Caso de Estudo........................................................................................................................................................54
Necessidades Preliminares do Usurio......................................................................................................................................................... 54
Anlise do Problema.................................................................................................................................................................................... 54
CAPTULO 8.............................................................................................................................................................68
AS CARACTERSTICAS (FEATURES) DE UM PRODUTO OU SISTEMA ........................................................68
Stakeholders e Necessidades do Usurio .....................................................................................................68
Caractersticas (Features).....................................................................................................................................69
Gerenciando a Complexidade Escolhendo o Nvel de Abstrao ................................................................................................................ 71
Atributos das Caractersticas do Produto..................................................................................................................................................... 71
CAPTULO 9.............................................................................................................................................................73
ENTREVISTA .........................................................................................................................................................73
O Contexto da Entrevista .......................................................................................................................................73
As Questes livres de contexto.................................................................................................................................................................... 73
CAPTULO 10...........................................................................................................................................................80
WORKSHOPS DE REQUISITOS...........................................................................................................................80
Acelerando o Processo de Deciso...................................................................................................................80
Preparando o Workshop ..........................................................................................................................................81
Vendendo o Conceito.................................................................................................................................................................................. 81
CAPTULO 11...........................................................................................................................................................89
BRAINSTORMING E A
CAPTULO 12.........................................................................................................................................................100
STORYBOARDING ..............................................................................................................................................100
Tipos de Storyboards..............................................................................................................................................101
O que os Storyboards Fazem ..............................................................................................................................102
Ferramentas e Tcnicas para o Storyboarding.........................................................................................103
Dicas do Storyboarding .........................................................................................................................................103
Sumrio..........................................................................................................................................................................104
CAPTULO 13.........................................................................................................................................................107
APLICANDO USE CASES ..................................................................................................................................107
Construindo o Modelo Use-Case .......................................................................................................................108
Aplicando Use Cases para Elucidao de Requisitos ...........................................................................109
Caso de Estudos: Os Use Cases do HOLIS..................................................................................................110
Sumrio..........................................................................................................................................................................111
CAPTULO 14.........................................................................................................................................................112
ROLE PLAYING ..................................................................................................................................................112
Como Interpretar o Papel .....................................................................................................................................113
Tcnicas Similares ao Role Playing................................................................................................................114
Roteiro de Acompanhamento.................................................................................................................................................................... 114
Cartes CRC (Classe-Responsabilidade-Colaborao) ............................................................................................................................... 114
Sumrio..........................................................................................................................................................................115
CAPTULO 15.........................................................................................................................................................116
PROTOTIPAO .................................................................................................................................................116
Tipos de Prottipos..................................................................................................................................................116
Prottipos de Requisitos.......................................................................................................................................117
O que Prototipar ........................................................................................................................................................118
Construindo o Prottipo ........................................................................................................................................119
Avaliando os Resultados.......................................................................................................................................119
Sumrio..........................................................................................................................................................................120
CAPTULO 17.........................................................................................................................................................133
O DOCUMENTO DA VISO ...............................................................................................................................133
Componentes do Documento da Viso..........................................................................................................133
O Documento da Viso Delta..........................................................................................................................137
Documento da Viso para o Release 1.0.................................................................................................................................................... 137
Documento da Viso para a Verso 2.0 ..................................................................................................................................................... 138
O Documento da Viso Delta num Ambiente de Sistema Legado ............................................................................................................ 140
CAPTULO 18.........................................................................................................................................................141
O CAMPEO .......................................................................................................................................................141
O Papel do Campeo do Produto ......................................................................................................................141
O Campeo do Produto num Ambiente de Produto de Software .....................................................142
O Campeo do Produto numa Empresa de IS/IT .......................................................................................145
CAPTULO 20.........................................................................................................................................................154
ESTABELECENDO O ESCOPO DE PROJETO ..................................................................................................154
O Baseline de Requisitos......................................................................................................................................154
Definindo as Prioridades .......................................................................................................................................155
Avaliando o Esforo.................................................................................................................................................156
Adicionando o Elemento Risco..........................................................................................................................158
Reduzindo o Escopo ................................................................................................................................................159
Uma Estimativa Inicial Razovel ............................................................................................................................................................... 159
CAPTULO 21.........................................................................................................................................................164
GERENCIANDO O SEU CLIENTE .....................................................................................................................164
Engajando Clientes para Gerenciar Seu Escopo de Projeto ..............................................................164
Comunicando os Resultados ..............................................................................................................................164
Negociando com o Cliente...................................................................................................................................165
Gerenciando o Baseline ........................................................................................................................................166
Mudana Oficial ........................................................................................................................................................................................ 167
Mudana No-oficial ................................................................................................................................................................................. 167
CAPTULO 22.........................................................................................................................................................168
GERENCIAMENTO DE ESCOPO E MODELOS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE 168
O Modelo Cascata ....................................................................................................................................................168
O Modelo Espiral .......................................................................................................................................................170
A Abordagem Iterativa ...........................................................................................................................................172
Fases do Ciclo-de-Vida .............................................................................................................................................................................. 173
Iteraes .................................................................................................................................................................................................... 173
Workflows ................................................................................................................................................................................................. 174
Captulo 1
Sala de
Jantar
Sala de
Estar
Sala de
Estudos
10
Captulo 2
Introduo ao Gerenciamento de
Requisitos
Pontos chaves
Um requisito uma capacidade que o sistema deve apresentar.
Gerenciamento de requisitos um processo sistemtico de elucidar, organizar e
documentar requisitos de sistemas complexos.
Nosso problema est em entender os problemas dos usurios, sua cultura, sua
linguagem, e construir sistemas que atendam as suas necessidades (need).
Uma caracterstica (feature) um servio que o sistema fornece para atender um
ou mais necessidades dos stakeholders.
Um use case descreve uma seqncia de aes que, quando executada pelo
sistema, produz resultados importantes para o usurio.
Definies
O que um Requisito?
Embora vrias definies para requisitos de software tenham sido usadas durante anos, a
definio dada por Dorfman e Thayer (1990) perfeitamente cabvel:
Esta definio pode parecer um tanto vago, mas por ora esta definio ser o suficiente.
12
Aplicaes de Sistemas
O Gerenciamento de Requisitos pode tambm ser aplicado no desenvolvimento de
quaisquer outros tipos de sistemas. Vrias tcnicas apresentadas neste volume podem ser
teis no gerenciamento de requisitos de sistemas arbitrariamente complexos, contendo
subsistemas mecnicos, subsistemas computacionais, subsistemas qumicos e peas interrelacionadas. Claramente, esta uma disciplina muito ampla e ponderaes devem ser
feitas para que traga resultados teis aos membros das equipes de software. Assim, o foco
estar num processo e nas tcnicas especificas de gerenciamento de requisitos que possam
ser aplicadas diretamente nos trs tipos de aplicaes de software descritos anteriormente:
IS/IT, ISV e sistemas embutidos.
13
O Mapa da Mina
J que foi dada a largada para a jornada de se desenvolver software com qualidade dentro do
prazo e cronograma previstos e que atenda as reais necessidades dos clientes, seria muito til
apresentar um mapa descrevendo este territrio. No ser fcil, uma vez que, durante essa
jornada em particular, diversas pessoas que falam diferentes linguagens podem ser
encontradas pelo caminho. Muitas dvidas iro aparecer:
A fim de caminhar com segurana atravs desse territrio, ser necessrio conhecer onde
estaremos em alguns pontos do tempo, quem sero as pessoas que encontraremos pelo
caminho, a lngua que eles falam, e que informaes devemos obter dessas pessoas para
completar com sucesso a nossa jornada. A jornada comea na ilha do problema.
O Domnio do Problema
Muitas jornadas de requisitos que obtiveram sucesso comearam com uma visita ilha do
problema. O domnio do problema a casa dos verdadeiros usurios e stakeholders, pessoas
cujas necessidades devem ser atendidas a fim de poder construir o sistema perfeito. a
casa das pessoas que necessitam da pedra, ou de um sistema para dar entrada aos pedidos
de venda, ou um sistema de gerenciamento de configuraes bom o suficiente para
vencer a concorrncia. Provavelmente, essas pessoas no so como ns. As experincias
tcnicas e econmicas so diferentes dos nossos, eles falam siglas engraadas, eles vo a
festas diferentes e tomam bebidas diferentes, eles no vestem camisetas para trabalhar, e
possuem motivaes que so estranhos e impenetrveis. (O qu? Voc no gosta do filme
Star Trek?).
Em raras ocasies, eles so como ns. So programadores procurando por uma nova
ferramenta ou desenvolvedores de sistemas que pediram que voc desenvolvesse uma
parte do sistema. Nesses raros casos, esta parte da jornada talvez seja fcil, mas pode
tambm ser muito mais difcil.
Mas normalmente, esse no o caso, e ns nos encontramos na ilha do usurio
aliengena. Esses usurios tm negcios ou problemas tcnicos que necessitam que ns
ajudemos a resolver. Assim, o nosso problema est em entender o seu problema, dentro de
sua cultura e sua linguagem, para que seja possvel construir o sistema que atenda a suas
necessidades. Como esse territrio pode parecer nublado, o domnio do problema
representado como uma nuvem cinza. Isso foi feito propositadamente para nos lembrar e
nos assegurar de que ns visualizamos claramente todos os casos dentro do espao do
problema.
Domnio do Problema
NVe
eeds
Caractersticas do Sistema
Inicialmente, ser til declarar o que aprendemos no domnio do problema e como
pretendemos resolv-lo atravs da soluo. Isso no muito difcil e deve consistir de
itens como:
Features
Uma feature um servio que o sistema fornece para atender um ou mais necessidades dos
stakeholders.
Graficamente, representamos as caractersticas como a base para pirmide das
necessidades.
Requisitos de Software
Requisitos
de Software
15
que cada uma dessas caractersticas atenda a um ou mais necessidades dos stakeholders,
teremos atendido todas as necessidades diretamente na soluo.
Esses requisitos mais especficos so os requisitos de software. Representamos esses
requisitos de software da mesma forma que fizemos para representar as caractersticas.
Controlar lmpada
Um construtor chave ir nos ajudar no final de nossa jornada. Este construtor chave o
use case, o qual usamos de vrias maneiras atravs desde volume. De forma simples, um
use case descreve uma seqncia de aes, executadas pelo sistema, e que produz um resultado til
para um usurio. Em outras palavras, um use case descreve uma srie de interaes usuriosistema as quais ajudam o usurio a executar alguma tarefa. Representamos o use case
como cone oval com o nome do use case. Por exemplo, se quisermos descrever um use
case de acordo com a inteno do usurio de simplesmente acender ou apagar uma
lmpada, ns podemos cham-lo, por exemplo, de Controlar lmpada, e o colocamos
esse nome abaixo do cone oval.
Resumo
Agora, vamos olhar o mapa que acabamos de construir. Na figura 2-1, voc pode ver que
fizemos uma transio sutil, porm importante, em nossa forma de pensar. Ns
caminhamos do domnio do problema, representado pela nuvem, passamos pelas
necessidades que descobrimos do usurio, at chegarmos na definio de um sistema a
qual constitui no domnio da soluo, representado pelas caractersticas do sistema e pelos
requisitos do software, os quais iro dirigir o projeto e a implementao do novo sistema.
Mais ainda, fizemos de tal forma que conseguimos assegurar que entendemos o problema
e as necessidades do usurio antes de antever ou definir a soluo. Este mapa da mina,
junto com suas importantes diferenas, iro continuar a serem importantes durante o
restante deste volume.
Needs
Domnio do Problema
Features
Domnio da Soluo
Requisitos de Software
16
Captulo 3
A Equipe de Software
A programao de computadores uma atividade de negcio (Weinberg 1971)
Pontos chaves
O gerenciamento de requisitos afeta todos os membros da equipe, embora de
maneiras diferentes.
O gerenciamento efetivo de requisitos somente poder ser realizado por uma
equipe de software efetiva.
So necessrias seis habilidades de equipes para o gerenciamento de requisitos.
17
O processo de
gerenciamento de
requisitos afeta
todos os membros
da equipe, embora
de maneiras
diferentes.
O gerenciamento
efetivo de requisitos
somente pode ser
realizado por uma
equipe de software
efetiva.
dos usurios para uma definio inicial do sistema que dever atender tais
necessidades.
Na Habilidade de Equipe 4, Gerenciamento do Escopo, ns municiamos a
equipe com a habilidade de gerenciar melhor o escopo de um projeto. A final de
contas, no importa quo bem entendamos as necessidades, a equipe no pode
fazer o impossvel, e normalmente ser necessrio negociar o que ser entregue
antes que o sucesso possa ser obtido.
Na Habilidade de Equipe 5, Refinando a Definio do Sistema, ns ajudamos
a equipe a organizar as informaes dos requisitos. Alm disso, ns introduzimos
um conjunto de tcnicas que a equipe pode usar para elaborar a definio do
sistema, ou refin-la at o nvel apropriado para dirigir o projeto e implementao,
tal que toda a equipe conhea exatamente qual tipo de sistema ser construdo.
Finalmente, na Habilidade de Equipe 6, Construindo o Sistema Correto,
cobrimos alguns aspectos mais tcnicos sobre garantia, verificao, validao,
teste e gerenciamento de mudanas de projeto, mostramos como a rastreabilidade
pode ser usada para ajudar a assegurar a qualidade resultante.
19
O Caso de Estudo
Ns poderemos atingir um outro objetivo neste volume se pudermos desenvolver um
caso de estudo que ns trilhamos a partir dos requisitos iniciais at os requisitos finais.
Assim, estaremos aptos no s a aplicar as tcnicas que estaremos discutindo em nosso
exemplo, mas tambm, em fornecer exemplos dos produtos do trabalho, ou artefatos,
que possam ilustrar os pontos chaves e servir de exemplos para os nossos prprios
projetos. O apndice A deste livro fornece um conjunto de exemplos de artefatos do
nosso caso de estudo.
20
Brooke
Diretor de Engenharia
Jack
Lder de QA
Equipe
de
Teste
Louise
Lder de
Doc
Michel
Arquiteto
John
Lder de
Software
Eric
Diretor de Marketing
Pete
Gerente de
Desenvolvimento de
Software
Russ
Lder de
Software
Mike
Lder de
Software
Cathy
Gerente de
Produto
Desenvolvedores
21
Sumrio
difcil para algum racional ir contra a idia de gerenciar e documentar requisitos de um
sistema a fim de assegurar que os resultados iro realmente atender o que o cliente deseja.
No entanto as pesquisas demonstram que, como uma indstria, ns freqentemente
realizamos um trabalho pobre. A falta de retorno dos usurios, requisitos e especificaes incompletas,
e mudanas de requisitos e especificaes so comumente as causas dos problemas citados nos
projetos que falham em atender esses objetivos. E ns sabemos que h um nmero
significativo de projetos de software falham em atender esses objetivos.
Um pensamento comum entre desenvolvedores e clientes : mesmo que ns no
estejamos seguros dos detalhes que queremos, melhor iniciar logo a implementao,
porque estamos atrasados no cronograma e temos pressa. Ns podemos determinar os
requisitos mais tarde. Mas quase sempre esta abordagem, embora bem intencionada,
degenera-se para um esforo de desenvolvimento catico, sem nenhuma segurana sobre
o que o usurio realmente deseja ou o que o sistema, assim construdo, realmente faz.
Com o potencial das ferramentas de prototipao de fcil utilizao, existe a percepo de
que se os desenvolvedores podem construir um rascunho aproximado do que os usurios
desejam num prottipo, o usurio pode indicar as caractersticas que necessitam ser
adicionadas, removidas ou modificadas. Isso pode funcionar, e um importante aspecto
do desenvolvimento interativo. Mas devido em parte ao extremo custo em corrigir erros
de requisitos, este processo precisa fazer parte do contexto global da estratgia de
gerenciamento de requisitos, caso contrrio resultar no caos.
Como saberemos o que o sistema dever fazer? Como manteremos a trilha do estado
atual dos requisitos? Como determinar o impacto de uma mudana? Devido a questes
como essas, o gerenciamento de requisitos comeou a emergir como uma disciplina de
engenharia de software prtica. Ns introduzimos uma filosofia confinada ao
gerenciamento de requisitos e fornecemos um conjunto de definies que sustentam tais
atividades.
Visto que a histria do desenvolvimento de software bem como o futuro, pelo menos
at onde podemos prever revela o aumento em escala, ou seja, a elevao da quantidade
de trabalho com o passar do tempo, podemos entender que o problema do
desenvolvimento de software deve ser atacado por equipes de software bem estruturadas
e treinadas. Na disciplina de gerenciamento de requisitos em particular, todos os
membros da equipe estaro eventualmente envolvidas em atividades que auxiliem o
gerenciamento de requisitos de projeto. Essas equipes devem desenvolver as habilidades
de requisitos para entender as necessidades dos usurios, para gerenciar o escopo da
aplicao, e para construir sistemas que atendam as necessidades desses usurios. A
equipe de requisitos deve trabalhar como uma equipe de futebol vencedora, para enfrentar os
desafios que o gerenciamento de requisitos impem.
A fim de fazer isso, o primeiro passo no processo de gerenciamento de requisitos
assegurar que o desenvolvedor entenda o problema que o usurio est tentando
resolver. Ns iremos cobrir este tpico nos trs prximos captulos: Habilidade de
Equipe 1, Analisando o Problema.
22
Habilidade de Equipe 1
Analisando o Problema
23
Problema
Equipes de
desenvolvimento
tendem a avanar
continuamente,
fornecendo solues
baseadas em
entendimentos
inadequados do
problema a ser
resolvido.
24
Captulo 4
Pontos chaves
A anlise de problemas o processo de entender problemas do mundo real,
entender as necessidades dos usurios e propor solues que satisfaam tais
necessidades.
O objetivo da anlise do problema adquirir maior entendimento do problema
a ser resolvido, antes que se inicie o desenvolvimento.
Para identificar a causa raiz do problema, ou o problema por detrs do
problema, pergunte s pessoas diretamente envolvidas.
Identificar os atores envolvidos no sistema o principal passo da anlise do
problema.
25
Dito isso, o domnio do problema deve ser analisado e entendido, e uma variedade de
domnios da soluo devem ser explorados. Normalmente, vrias solues so possveis,
e nosso trabalho encontrar a soluo que seja o timo para o problema a ser resolvido.
Para estarmos aptos a realizar a anlise de problemas, ser til definir o que um
problema. De acordo com Gause e Weinberg (1989):
um problema pode ser definido como a diferena entre coisas so desejadas
e coisas que so percebidas.
Essa definio pelo menos elimina o problema de desenvolvedores acharem que o real
problema que o usurio no sabe qual o real problema! De acordo com a definio, se
o usurio percebe algo como problema, esse um real problema digno de ser atacado.
s vezes, a soluo
mais simples uma
soluo de contorno,
ou uma reviso do
processo de negcio,
ao invs de um novo
sistema.
Ainda, com base nesta definio, nosso colega Elemer Magaziner notou que existem
vrias maneiras de se atacar um problema. Por exemplo, mudar o desejo ou percepo do
usurio pode ser a abordagem de melhor custo efetivo. Assim, pode ser uma questo de
ajuste e gerenciamento de expectativas, fornecendo solues de contorno ou
aperfeioamento incremental para sistemas existentes, fornecendo solues alternativas
que no requeiram o desenvolvimento de novos sistemas, ou fornecendo treinamento
adicional. A experincia prtica mostra muitos exemplos onde mudar a percepo da
diferena tem conduzido a solues vantajosas, rpidas, baratas e de altssima qualidade!
Como solucionadores de problemas, estamos incumbidos em explorar essas solues
alternativas antes de saltar para a soluo de um novo sistema.
Todavia, quando a atividade de encontrar uma soluo alternativa para reduzir a diferena
entre o percebido e o desejado falhar, estaremos diante de um grande desafio: o de
efetivamente reduzir a distncia entre o percebido e a realidade. Isso ns devemos realizar
definindo e implementando novos sistemas que reduzam a diferena entre o percebido e o
desejado.
O objetivo da
anlise de problemas
adquirir melhor
entendimento do
problema a ser
resolvido antes de
iniciar o
desenvolvimento.
26
Como parte deste processo, normalmente benfico entender alguns dos benefcios
propostos pela soluo, seja cuidadoso assegurando-se de que os benefcios sejam
descritos utilizando termos fornecidos pelos clientes/usurios. Descries realizadas por
usurios fornecem fundamento contextual adicional ao real problema. Ao ver os
benefcios sob o ponto de vista do cliente, tambm obtemos a um melhor entendimento
do problema do ponto de vista dos stakeholders.
A Declarao do Problema
Voc poder achar til descrever o seu problema num formato padro (Tabela 41). O
preenchimento da tabela, ainda que simples, uma tcnica poderosa para assegurar que
todos os stakeholders do seu projeto estejam trabalhando em direo aos mesmos
objetivos.
Tabela 41
Elementos
O problema
afeta
devido
Os benefcios desse
Descrio
Descrever o problema.
Identificar os stakeholders afetados pelo problema
Descrever o impacto deste problema nos stakeholders e
atividades de negcio.
Indicar a soluo proposta e listar os principais
benefcios.
Gastar tempo para chegar ao acordo sobre o problema a ser resolvido pode parecer um
passo pequeno e insignificante, e em muitas circunstncias, isso verdade. Mas algumas
vezes, no . Por exemplo, um de nossos clientes, um fabricante de equipamentos, foi
realizar uma grande atualizao no seu sistema de informao, o qual realiza o
faturamento e fornece relatrios financeiros entre a empresa e seus fornecedores. O tema
para o novo programa foi aperfeioar comunicaes com fornecedores. Dito isso, a
equipe tinha iniciado um esforo significativo para o desenvolvimento de um novo
sistema.
Um exerccio de como chegar ao acordo sobre o problema a ser resolvido foi realizado. A
equipe de desenvolvimento definiu uma soluo prevendo um novo sistema
poderosssimo que fornecia: relatrios financeiros muito melhores; aperfeioamento do
faturamento e do formato da fatura, tratamento de pedidos online; e e-mail. Ah, a
propsito, a equipe esperava, em algum momento, fornecer a capacidade de transferncia
de fundos eletronicamente entre a empresa e seus fornecedores.
Durante o exerccio de fazer a declarao do problema, a gerncia da empresa tinha a
oportunidade de fornecer informaes. A viso dos gerentes foi substancialmente
diferente. O principal objetivo do novo sistema era transferir fundos eletronicamente para
melhorar o fluxo de caixa da empresa. Depois de uma discusso acalorada, ficou claro que o
principal problema a ser atendido pelo novo sistema era a transferncia eletrnica de
fundos; e-mail e outras caractersticas de comunicao com fornecedores foram
considerados como algo que poderia ter. Desnecessrio dizer que foi uma substancial
reorientao dos objetivos do novo sistema, incluindo uma nova definio do problema
que identifica a transferncia de fundos como principal problema a ser resolvido. Esta
reorientao tambm disparou o desenvolvimento de uma arquitetura diferente daquele
que havia sido previsto, o qual foi completado com a capacidade de segurana consistente
com o risco inerente ao banco eletrnico.
27
Figura 41
28
Dados de qualidade
demonstram que
muitas causas razes
no valem a pena
serem corrigidas.
40
danos no transporte
devolues
30
mercadoria obsoleta
defeitos de manufatura
20
outros
10
0
Contribuies
Figura 42
29
Posteriormente, a anlise do diagrama espinha de peixe pode ser usada para determinar
quais tipos especficos de erros contribuem para o problema de pedidos errados de
vendas. Esses dados, mais detalhados, podem ento ser usados para definir as
caractersticas do sistema de software para atacar tais erros. Para o nosso propsito, no
entanto, podemos finalizar a nossa anlise e concordar com a troca do sistema de pedidos
que, ao menos uma soluo parcial para o problema de muitos desperdcios.
Uma vez que identificamos pedidos errados como uma das causas razes do problema
que vale a pena ser resolvido, ns podemos criar uma declarao do problema para o
problema dos pedidos de venda, como ilustrado na Tabela 42.
Tabela 42
Elementos
O problema
afeta
devido
Os benefcios desse
Descrio
de pedidos errados
o pessoal de vendas, clientes, fabricantes, transportadores
e servio de atendimento ao cliente
ao aumento de desperdcios, excessiva manipulao de
custos, insatisfao de clientes e baixa lucratividade.
novo sistema que ir atacar o problema so:
Aumento de preciso dos pedidos de venda nos
pontos de venda
Aperfeioamento de relatrios gerenciais com os
dados de venda
E, finalmente, alta lucratividade.
Uma vez descrita, a declarao do problema pode ser divulgada entre os stakeholders para
criticarem e tecerem comentrios. Quando esse perodo de receber crticas e comentrios
estiver finalizado, e a declarao do problema consolidada, a declarao do problema
passar a ser uma misso declarada, a qual todos os membros da equipe de projeto tero
que ter em suas mentes, para que todos trabalhem para atingir aos mesmos objetivos.
A soluo efetiva de qualquer problema complexo quase sempre envolve a satisfao das
necessidades de diversos grupos de stakeholders. Os stakeholders, normalmente,
possuem vrias perspectivas sobre o problema e vrias necessidades que esperam que
sejam atacadas pela soluo. Ns iremos definir um stakeholder como:
qualquer um que possa ser substancialmente afetado pela implementao de um novo sistema ou
aplicao.
Muitos stakeholders so usurios do sistema e suas necessidades so fceis de identificar
porque eles esto diretamente envolvidos com a definio e uso do sistema. Porm,
alguns stakeholders so apenas usurios indiretos do sistema ou so afetados apenas pelos
resultados de negcio que o sistema influencia. Esses stakeholders tendem a serem
encontrados alm do escopo de negcio, ou nos arredores do ambiente de uma
particular aplicao. Ainda em outros casos, esses stakeholders sero removidos do
ambiente da aplicao. Incluem-se, por exemplo, as pessoas e organizaes envolvidas no
desenvolvimento do sistema, subcontratados, os clientes dos clientes, agncias externas,
tais como a FAA (U.S. Federal Aviation Administration) ou a FDA (Food and Drug
30
Usurios
Vendedores
Supervisor de Vendas
Controle da Produo
Pessoal de Faturamento
Outros Stakeholders
Diretor de SI e equipe de desenvolvimento
Diretor Financeiro
Gerente de Produo
31
Sistema
entradas
Ns dividimos o
mundo em duas
classes:
1. Nosso sistema
2. Coisas que
interagem com
o nosso sistema
Figura 43
sadas
A associao entrada/sistema/sada
Em outras palavras, se ns tivermos que construir ou modificar algo, esse algo ser parte
de nossa soluo e estar dentro da fronteira; caso contrrio, ser externo ao nosso
sistema. Assim, dividimos o mundo em duas classes interessantes:
1. Nosso sistema
2. Coisas que interagem com o sistema
Identificar as coisas que interagem com o nosso sistema o mesmo que identificar os
atores de nosso sistema. Afinal de contas, eles possuem um papel para interpretar, que
o de fazer com que o nosso sistema trabalhe. Ns representamos um ator com um
simples desenho de um ser humano. Ns definimos um ator como:
Ator
Fronteira do
sistema
E/S
Nossa soluo
E/S
Usurios
Outros sistemas
Figura 44
Fronteira do sistema
32
Em muitos casos, a fronteira do sistema bvia. Por exemplo, uma copiadora pessoal,
conectada a um PC-Windows 2000 tem a fronteira relativamente bem definida. Existe
apenas um usurio e uma plataforma. A interface entre o usurio e a aplicao
construda por caixas de dilogo, o qual o usurio utiliza para acessar informaes do
sistema e configurar qualquer relatrio e caminhos de comunicao que o sistema utilize
para documentar ou transmitir essas informaes.
Em nosso exemplo, sistema de pedidos, que ser integrada a um sistema legado, a
fronteira no to clara. O analista deve determinar se os dados sero compartilhados
com outras aplicaes, se a nova aplicao estar distribuda entre os vrios servidores e
clientes, e quem sero os usurios. Por exemplo, o pessoal de produo ter acesso online
os pedidos? Existe um controle de qualidade ou funes de auditoria que ter que ser
fornecido? O sistema executar num mainframe ou sobre um novo front end
cliente/servidor? Relatrios gerenciais especficos tero que ser fornecidos?
Embora possa parecer bastante bvio, a identificao de atores o principal passo
analtico da anlise do problema. Como encontramos esses atores? Aqui esto algumas
questes que podero ajudar a encontrar esses atores:
A partir das respostas para essas questes, o analista poder criar uma perspectiva do
sistema, um diagrama de blocos que descreve a fronteira do sistema, os usurios, e
outras interfaces. A Figura 45 fornece uma perspectiva simplificada do sistema para o
novo sistema de pedidos.
Fronteira do
sistema
Vendedor
Transportadora
Figura 45
Gerente de Produo
Perspectiva do Sistema
33
A linha tracejada ilustra a fronteira do sistema para a soluo proposta. O diagrama ilustra
que a maior parte da soluo ir ser desenvolvida para um novo sistema de pedidos, mas
uma parte do cdigo da soluo dever ser desenvolvida e implantada sob o sistema
legado existente.
Antes de gastar trilhes de dlares num esforo bem intencionado que ir revolucionar o
estado da arte de sistemas de pedidos, ns devemos parar e considerar as restries que
sero impostas soluo. Definimos uma restrio como:
um limite sobre o grau de liberdade que temos em fornecer uma soluo.
Cada restrio tem o potencial para restringir severamente a nossa habilidade de produzir
uma soluo da forma como estava prevista. Assim, cada restrio deve ser
cuidadosamente considerada como parte de um processo de planejamento, pois muitos
podem at fazer com que reconsideremos a abordagem tecnolgica que previmos
inicialmente.
Uma variedade de fontes de recursos deve ser considerada. Isso inclui planejamento
retorno de investimento, oramento de pessoal e equipamentos, assuntos ambientais,
sistemas operacionais, banco de dados, sistemas clientes e servidores, assuntos tcnicos,
assuntos polticos internos organizao, compra de software, polticas e procedimentos
da empresa, escolha de ferramentas e linguagens, pessoal e outras fontes de recursos, alm
de vrias outras consideraes. Essas restries podem ser impostas antes mesmo que
iniciemos qualquer atividade (Nenhum novo hardware), ou teremos que ir atrs e
descobri-los.
Para auxiliar nessa descoberta, til conhecer o tipo de coisa que devemos procurar. A
Tabela 44 apresenta fontes potenciais de restries de sistemas. Responder questes
apresentadas nesta tabela ajudar a descobrir as principais restries que iro afetar nossa
soluo. Alm disso, essa atividade poder, provavelmente, ajudar na identificao da
lgica para a restrio, tanto para assegurar que voc entendeu a perspectiva da restrio
quanto para voc reconhecer quando a restrio no mais se aplica para a nossa soluo.
Quanto menos restrito, melhor.
Uma vez que as restries tenham sido identificadas, algumas delas iro se tornar
requisitos para o novo sistema (usar o sistema MRP desenvolvido pelo nosso fornecedor
de sistema de conta corrente). Outras restries iro afetar recursos, planos de
implementao e planos de projeto. responsabilidade do solucionador entender as
potencias fontes de restries para cada ambiente especfico da aplicao e determinar o
impacto de cada restrio sobre o potencial espao da soluo.
34
Tabela 44
Fonte
Econmica
Exemplo de Consideraes
Que restries financeiras ou oramentrias so
aplicveis?
Existem custos associados nas vendas de mercadorias ou
consideraes sobre preo de produtos?
Existe algum problema de licenciamento?
Poltica
Tcnica
Sistmica
Ambiental
De planejamento
e recursos
Retornando ao nosso exemplo, quais restries podem ser impostas sobre o novo sistema
de pedidos? A Tabela 45 sumariza os recursos e restries que foram impostas sobre o
novo sistema.
35
Tabela 45
Fonte
Operacional
Restrio
Uma cpia exata dos dados
dos pedidos de venda deve
permanecer na base de dados
legado por um ano.
Lgica
O risco de perda de dados
muito grande; ns precisamos
executar em paralelo durante
um ano.
Sistema e SO
Oramento de equipamentos
O
sistema
deve
ser
desenvolvido no servidor
existente; novos hardwares
clientes para usurios sero
fornecidos.
Controle
de
custos
e
conservao
do
sistema
existente.
Oramento de pessoal
Tecnologia obrigatria
Ser
utilizada
a
nova
metodologia
orientada
a
objetos.
Sumrio
Completado este passo, podemos ficar razoavelmente confiantes de que conseguimos:
Vislumbrando o Futuro
Com esta base conceitual, podemos agora voltar nossa ateno para duas tcnicas mais
especficas de solucionar problemas, as quais podem ser aplicadas em certos domnios de
aplicaes. No Captulo 5, ns veremos a modelagem de negcio, uma tcnica que podemos
aplicar em aplicaes de Sistemas de Informao - IS/IT (Information system / information
technology). No Captulo 6, veremos a Engenharia de Sistemas para sistemas de software
intensivo, que pode ser aplicado para aplicao do domnio de sistemas embutidos.
Quanto ao terceiro domnio - ISV (Independent software vendors), pertencente a fornecedores
independentes de software, as tcnicas de anlise de problemas esto normalmente
focadas nas seguintes atividades:
36
Claramente, estes tpicos so interessantes, mas para nos ajudar a gerenciar o escopo
deste volume, ns no iremos explorar tais assuntos especficos. No entanto, voc pode
ficar confiante e seguro de que as habilidades de equipe que iremos explorar nos
prximos captulos iro se aplicar igualmente bem para esta classe de aplicao, como
iremos demonstrar.
Nota: Uma das coisas mais difceis que encontramos ao escrever este livro foi tentar
apresentar vrias tcnicas para construir o conjunto de habilidades de equipe. Nenhuma
tcnica funciona em todas as situaes; nunca duas situaes sero as mesmas.
Nos captulos anteriores, focamos numa abordagem geral e filosfica da anlise
de problemas que parece funcionar em vrios contextos de sistemas. No entanto, esse
problema de seleo de tcnicas para aplicar se transformar em algo muito mais srio
nos prximos captulos, onde definiremos a tcnica de modelagem de negcio, a tcnica de
engenharia de sistemas, e continuamos a definir uma variedade de tcnicas na Habilidade
de Equipe 2, Entendendo as Necessidades do Usurio, onde apresentaremos uma grande
variedade de tcnicas que podem ser usadas para entender as necessidades dos
stakeholders e de usurios com respeito ao sistema que voc ir construir.
No entanto, ns pensamos que seja importante destacar que as tcnicas descritas
neste livro da anlise do problema at brainstorming podem ser usadas em diferentes
partes do processo de software e no apenas na parte do processo onde ns escolhemos
descrev-las. Por exemplo, a equipe pode usar a anlise de problemas para definir um
problema de sistema de pedidos ou resolver um problema tcnico dentro de sua
implementao. Da mesma forma, a equipe pode usar o brainstorming para determinar as
provveis causas razes num exerccio de anlise de problemas ou determinar as provveis
caractersticas novas de um sistema como fizemos no captulo 5. No faremos nenhuma
tentativa para descrever todas as circunstncias sob as quais uma particular tcnica
poder ser aplicada, mas, ao invs disso, nos concentraremos em fazer com que a equipe
desenvolva habilidades para que possa aplicar essas tcnicas e inclu-las em sua maleta de
dicas e truques para pegar e usar em momentos apropriados do projeto.
37
Captulo 5
Modelagem de Negcio
Pontos chaves
A modelagem de negcio uma tcnica de anlise de problema apropriado
especialmente para ambientes de IS/IT.
A modelagem de negcio usada para ajudar a definir sistemas e suas
aplicaes.
Um modelo use case de negcio, que consiste de atores e use cases, um
modelo das funes pretendidas do negcio.
Um modelo de objetos de negcio descreve as entidades que fornecem a
funcionalidade para realizar os use cases de negcio, e como essas entidades se
interagem.
Felizmente, existe uma tcnica que se encaixa perfeitamente para resolver este problema,
e esta tcnica a modelagem de negcio.
38
Essa abordagem d equipe uma maneira lgica de definir onde a utilizao do software
pode melhorar a produtividade do negcio e ajudar na determinao de requisitos para
essa utilizao.
Com a escolha da
tcnica correta para
modelar negcios,
modelos use cases e
modelos de objetos,
se tornaro artefatos
comuns durante a
atividade de solucionar problemas.
Naturalmente, vrias tcnicas podem ser aplicadas para se modelar negcios. No entanto,
seria conveniente que, como desenvolvedores de software, tivssemos nossa disposio
um conjunto rico em ferramentas e tcnicas j usadas na modelagem de nossos softwares.
De fato, ns j sabemos modelar entidades (objetos e classes), relacionamentos
(dependncias, associaes, entre outros), processos complexos (seqncia de atividades,
transies de estados, eventos, condicionais, entre outros) e outros construtores que
ocorrem naturalmente no contexto de nossos projetos de aplicaes de software.
Se ns pudemos aplicar essas mesmas tcnicas para modelar negcios, poderamos falar a
mesma linguagem em ambos os contextos. Por exemplo, uma coisa, tal como o
contracheque da folha de pagamento, descrita no domnio de negcio, pode relacionar-se
com uma coisa que aparece novamente no domnio de software por exemplo, o
registro do contracheque da folha de pagamento. Se ns tivermos sorte o suficiente para
usar as mesmas tcnicas, ou tcnicas muito similares, tanto para a anlise de problemas
quanto para o projeto de software, ambas poderiam se beneficiar compartilhando os
resultados produzidos pelas duas atividades.
Figura 51
40
Cliente
Fornecedor
Secretaria dos Negcios da Fazenda do Estado
Figura 52
41
Figura 53
Modelos de negcio/sistema
Sumrio
Neste captulo, ns descrevemos uma tcnica especfica de anlise de problema, a
modelagem de negcio. Ao fazer isso, definimos:
Vislumbrando o Futuro
No prximo captulo, veremos a engenharia de sistemas para sistemas de
software, uma outra tcnica de anlise de problemas, a qual ir ajudar a formatar a
aplicao de sistemas do tipo embutido.
43
Captulo 6
Pontos chaves
A engenharia de sistemas uma tcnica de anlise de problemas especialmente
apropriada para desenvolvimento de sistemas embutidos.
A engenharia de sistemas nos ajuda a entender requisitos impostos aplicaes
de software que executam dentro da soluo sistmica.
O flowdown1 de requisitos antes de tudo, uma questo de assegurar que todos
os requisitos de sistema estaro cobertos por um subsistema ou pela
colaborao de um conjunto de subsistemas.
Atualmente, o sistema deve ser otimizado para reduzir custos de software ao
invs de reduzir custos de hardware.
44
Operao
Desempenho
Teste
Manufatura
Custo e Cronograma
Treinamento e suporte
Disponibilizao.
Figura 61
Subsistema
A
Figura 62
Subsistema
B
46
Sistema
Subsistema A
Subsistema
A-1
Figura 63
Subsistema
A-2
Subsistema
B
Subsistema
A
Subsistema
B
Interface de
A-para-B
Figura 64
48
Na indstria, a
inteligncia, antes
existente nos
componentes de
hardware, foram
alocadas aos
componentes de
software.
Agora, muitos
sistemas devem
sofrer otimizaes
de software, no de
hardware.
Este ltimo fato deu o golpe de misericrdia, pois indica que voc deve
considerar para otimizao dos custos do sistema, no o hardware ou manufatura,
mas o desenvolvimento, manuteno, evoluo e aprimoramento de software
contidos no sistema. Isso mudou significativamente o jogo. Por agora, a
engenharia de sistemas deve ser realizada considerando o computador a ser
utilizado. Isso significa que a engenharia de sistemas deve, normalmente:
Cada uma dessas dimenses ir criar novos requisitos que o sistema hardware
dever preencher a fim de satisfazer a soluo a ser construda.
A maior parte do problema de requisitos se deslocou para a aplicao de
software.
Felizmente, para menos para a segunda maneira, este o objetivo deste volume, e
ns esperamos prepar-lo muito bem para este particular problema.
50
Finalmente, veja se voc pode encontrar alguns daqueles ancies para lhe ajudar
com a engenharia de sistemas. Eles estiveram aqui antes, e sua experincia pode
ser muito valiosa para voc. Alm disso, voc poderia assim, a ajudar a por um
fim nesse conflito de geraes!
52
53
O Caso de Estudo
Enfim, aps uma breve introduo engenharia de sistemas, deixe nos aplicar o
que aprendemos no sistema HOLIS, nosso Sistema de Automao de Iluminao
Residencial. Neste momento, no gastaremos muito tempo tentando entender os
requisitos do HOLIS. Ns faremos isso nos prximos captulos. Nesse sentido, a
engenharia de sistemas prematura. Por outro lado, ns provavelmente entendemos o
suficiente para tomar as primeiras decises sobre o projeto do sistema, com base em
nossa experincia, e em nosso entendimento do que sejam esses requisitos. Em muitos
casos, ns no nos comprometemos ainda com qualquer coisa de hardware ou
software; podemos retomar essas questes posteriormente. No processo iterativo que
ser descrito posteriormente, ns veremos a arquitetura de sistemas e requisitos de
sistemas interativamente, de tal forma que este no uma hora ruim para comear.
Anlise do Problema
Ao analisar o problema, a equipe decidiu, inicialmente, desenvolver trs
declaraes do problema, um dos quais estabelece, aparentemente, o problema
bvio sob a perspectiva da empresa.
54
Elementos
O problema
afeta
devido
Os benefcios desse
Descrio
do baixo crescimento apresentado na principal rea de
atuao da empresa: iluminao profissional de teatros
a empresa, seus empregados e seus acionistas,
ao desempenho inaceitvel e substancial falta de
oportunidades de crescimento em rendimento e
lucratividade.
novo produto e desse novo mercado em potencial para os
produtos e servios da empresa so:
Revitalizao da empresa e de seus empregados
Elevao da lealdade e conservao dos
distribuidores da empresa
Alto rendimento e lucratividade
Tendncia de valorizao das aes da empresa
Elementos
O problema
afeta
devido
Os benefcios desse
Descrio
da falta de opes de escolha de produtos, da
funcionalidade limitada, e alto custo dos sistemas de
iluminao de residncias
os proprietrios de sistemas residenciais de ltima
gerao
ao desempenho inaceitvel dos sistemas adquiridos ou,
com maior freqncia, a deciso por no automatizar sua
residncia.
sistema de automao para correta de iluminao so:
Alta satisfao dos proprietrios e orgulho de possulo.
Elevada flexibilidade e usabilidade da residncia.
Melhoria na segurana, conforto e convenincia.
Descrio
a falta de opes para escolha de produtos, da
funcionalidade limitada, e alto custo dos sistemas de
iluminao de residncias
os distribuidores e construtores de sistemas residenciais
de ltima gerao
a poucas oportunidades de diferenciao no mercado e
nenhuma nova oportunidade para aumentar a margem de
lucro.
sistema de automao para correta de iluminao so:
Diferenciao.
Alto rendimento e alto lucro.
Aumento na participao de mercado.
55
HOLIS
Figura 65
HOLIS
Lm padas
Proprietrio
Servios da
Lum enations
Figura 66
Recebedor de
Em ergncias TBD
Nome
O Distribuidor
Externo
Construtores
Eletricistas
Contratados
Comentrios
Clientes diretos da Lumenations.
Clientes dos Clientes da Lumenations: o contratado
geral responsvel pela construo da residncia.
Responsvel pela instalao e suporte.
Equipe de
Desenvolvimento
Interno
Equipe da Lumenations.
Gerente de
Marketing/Produto
Gerente Geral da
Lumenations
57
Lm padas
HOLIS 2000
Proprietrio
Chave de
Controle
Unidade de
Controle Central
Recebedor de
Em ergncias TBD
HOLIS 2000
Proprietrio /
Programador
Figura 67
Servios da
Lum enations
Programador PC
(opcional)
Os Subsistemas do HOLIS
A partir da perspectiva da engenharia de sistema e de requisitos, o problema
torna-se um pouco mais complexo. Alm da necessidade de entender os requisitos
do HOLIS, o sistema, ns iremos agora precisar, tambm, entender os requisitos
nicos para cada um dos trs subsistemas. Ns podemos usar nosso paradigma de
ator novamente, no prximo nvel de decomposio do sistema. Ao se fazer isso,
surgem trs novos diagramas de blocos: Figuras 68, 69, e 610.
HOLIS 2000
Proprietrio
Figura 68
Chave de
Controle
Unidade de
Controle Central
58
HOLIS 2000
Proprietrio /
Programador
Figura 69
Programador PC
(opcional)
Unidade de
Controle Central
Proprietrio /
Programador
Programador PC
(opcional)
Lm padas
HOLIS 2000
Recebedor de
Em ergncias TBD
Unidade de
Controle Central
Chave de
Controle
Figura 610
Servios da
Lum enations
59
Tabela 62
Nome
Lgica
A nica oportunidade de
lanamento do produto neste ano.
O subsistema de
microprocessamento da Unidade
de Controle Central deve ser
copiado da diviso profissional de
projetos de sistemas de iluminao
avana (ALSP).
O microprocessador KCH5444
deve ser usado na Chave de
Controle.
Aquisies de componentes de
software possvel, contanto que
no exista nenhuma obrigao de
pagamentos contnuos de royalty
pela empresa.
#ID
60
61
Habilidade de Equipe 2
Entendendo as Necessidades dos
Usurios
62
Needs
Problema
63
Captulo 7
Os Desafios da Elucidao de
Requisitos
Pontos chaves
A elucidao de requisitos influenciada por trs sndromes endmicas.
A sndrome Sim, mas origina-se da natureza humana e da incapacidade dos
usurios de perceberem o software da mesma forma que eles percebem os
dispositivos de hardware.
Procurar requisitos como procurar por Runas Desconhecidas; quanto mais
voc encontra, mais voc conhece.
A sndrome do Usurio e o Desenvolvedor reflete a profunda diferena entre
os dois, tornando difcil comunicao.
Obstculos da Elucidao
A Sndrome do Sim, Mas
Um dos mais frustrantes, impregnantes e sinistros problemas do desenvolvimento
de aplicaes o que ns conhecemos como a sndrome do Sim, Mas, sendo
observado nas reaes de usurios para todas as peas de software que
desenvolvemos. Qualquer que seja a razo, sempre observamos duas reaes
imediatas, distintas e separadas quando o usurio v a implementao do sistema
pela primeira vez:
Ns usamos o termo usurio genericamente neste contexto. As tcnicas para elucidar requisitos do sistema se
aplicam a todos os stakeholders, sejam usurios ou no-usurios.
64
pergunta mais estpida, realizada por um turista estpido, da qual ele mais
gostava: Bem, hummmmm, quantos runas desconhecidas existem?.
De certa forma, a busca por requisitos como uma busca por runas
desconhecidas: Quanto mais os encontramos, mais os conhecemos. Voc nunca
sentir que encontrou todos, e talvez voc nunca encontre. De fato, as equipes de
desenvolvimento de software, de todas as partes do mundo, esforam-se
continuamente em determinar quando finalizar a elucidao de requisitos, isto ,
determinar o momento em que eles tero encontrado todos os requisitos essenciais
ou, ao menos, encontrado o suficiente.
A fim de auxiliar a equipe a atacar esse problema, ns fornecemos vrias tcnicas,
tanto no captulo Habilidade de Equipe 2 quanto nos posteriores. Naturalmente,
como descrevemos no Captulo 1, muito importante gastar tempo em o analisar
problema para identificar todos os stakeholders do sistema, porque muitos desses
stakeholders no-usurios so normalmente detentores de requisitos
desconhecidos. No entanto, da mesma forma que o problema de encontrar todas
as runas desconhecidas, devemos adverti-lo de que estamos numa misso que
pode nunca terminar. Mas entendemos tambm que em algum ponto, estaremos
aptos a dizer com segurana, Ns descobrimos o suficiente.
66
Tabela 71
Problema
Soluo
Entrevistas e questionrios
Workshops de requisitos
Brainstorming e reduo de idias
Storyboards
Use cases
Role playing
Prototipao.
67
Captulo 8
As Caractersticas (Features) de um
Produto ou Sistema
Pontos chaves
A equipe de desenvolvimento deve interpretar um papel mais ativo na
elucidao dos requisitos do sistema.
As caractersticas (features) do produto ou sistema so expresses de alto nvel
do comportamento desejado do sistema.
Caractersticas do sistema devem estar limitadas a 25-99, com menos que 50
preferivelmente.
Atributos fornecem informaes adicionais sobre as caractersticas.
68
uma reflexo de negcio, pessoal ou de problema operacional (ou de oportunidade) que deve ser
atendida a fim de justificar a considerao, compra ou uso de um novo sistema.
Caractersticas (Features)
Uma coisa interessante que ocorre, quando entrevistamos stakeholders para
conhecer suas necessidades ou os requisitos para um novo sistema, que
normalmente, esses stakeholders no falam nada disso, ao menos em termos das
definies que fornecemos anteriormente. Esses stakeholders no dizem a voc
nenhuma de suas reais necessidades Se eu no aumentar a produtividade deste
departamento, eu no ganharei meu bnus este ano ou Eu quero reduzir a
velocidade deste veculo o mais rpido que puder sem derrapar nem os reais
requisitos do sistema Eu preciso reduzir o tempo de processar as transaes de
entrada dos pedidos de venda em 50% ou O veculo deve ter um sistema de
controle computadorizado para cada roda. Ao invs disso, eles descrevem o que
acham ser uma abstrao de algo como Eu necessito de uma nova tela de entrada
de pedidos baseado em GUI e Eu quero um veculo com ABS.
Denominamos essas expresses de alto nvel sobre o comportamento desejado do
sistema de caractersticas (features). Essas caractersticas no so, normalmente,
bem definidos e podem at, serem conflitantes entre si. Eu quero aumentar a
mdia de processamento de pedidos e Eu quero fornecer uma interface
amigvel para ajudar os novos empregados aprenderem a usar o sistema mas
eles so, no entanto, uma representao das reais necessidades.
O que est acontecendo nesta discusso? O stakeholder j traduziu a necessidade
real (produtividade e segurana) no comportamento do sistema o qual ele acha
que ir atender s suas necessidades (veja Figura 81). Ao fazer isso, o o que (Eu
necessito) foi substitudo pelo como (O que eu penso que o sistema deva fazer
para satisfazer esta necessidade). Isso no uma coisa ruim, nas vezes quando o
usurio tem real especialidade do domnio e real percepo do valor da
caracterstica. Tambm, por causa da facilidade de se discutir tais caractersticas
em linguagem natural, document-las e comunic-las aos outros, adicionam
tremenda riqueza ao esquema de requisitos.
Need
Necessidade?
Features
Caracterstica?
Requisitos de
Software
Figura 81
69
Caractersticas so
formas convenientes
de descrever as
funcionalidades sem
ter que se atolar em
detalhes.
Exemplos de caractersticas
Domnio da Aplicao
Sistema de rastreamento de
defeitos
Sistema de pagamento
HOLIS (Sistema de automao
de iluminao de residncias)
Sistema de controle de armas
Aplicao de uma copiadora
70
71
Tabela 82
Atributo
Atributos de caractersticas
Descrio
Estado
72
Captulo 9
Entrevista
Pontos chaves
A entrevista uma tcnica simples e direta.
Questes livres de contexto podem nos ajudar a conduzir com tranqilidade as
entrevistas.
Ento, a entrevista pode ser apropriada para encontrar requisitos no
descobertos, por explorar solues.
Convergncias sobre algumas necessidades comuns iro iniciar um repositrio
de requisitos para ser utilizado durante o projeto.
Um questionrio no substitui uma entrevista.
O Contexto da Entrevista
As Questes livres de contexto
Ento, como evitar que nossas questes prejudiquem a resposta do usurio? Ns o
fazemos formulando questes sobre a natureza do problema do usurio, livre de
73
Quem o usurio?
Quem o cliente?
As necessidades so diferentes?
Onde mais podemos encontrar solues para este problema?
Estas questes nos foram a ouvir antes de tentar inventar ou descrever uma
possvel soluo. Enquanto ouvimos, entendemos melhor o problema do cliente,
bem como quaisquer problemas por detrs dos problemas. Tais problemas afetam
a motivao e o comportamento do nosso cliente e devem ser atacados antes que
possamos apresentar uma soluo.
Questes livres de contexto possuem um paralelo com as questes ensinadas aos
vendedores como parte de uma tcnica chamada solues de venda. Nas
solues de venda, os vendedores usam uma srie de questes focalizadas sobre a
obteno inicial do entendimento do problema do cliente e quais solues, se
existe algum, o cliente j anteviu. A inteno dessas questes permitir que o
vendedor entenda totalmente o real problema do cliente, tal que solues efetivas
possam ser sugeridas e determinadas de acordo com os seus mritos especficos.
Este processo ilustra o valor das tcnicas de venda como um dos ingredientes da
soluo completa para o real problema do cliente.
Em nossa busca por descobrir requisitos, pode tambm ser apropriado fazer
questes sobre o domnio onde as solues so exploradas depois que as questes
livres de contexto tiverem sido realizadas e respondidas. Afinal de contas, a
maioria de ns, normalmente, no nos satisfazemos somente em entender o
problema, mas em fornecer solues apropriadas para o problema a ser resolvido.
Esta adio do contexto da soluo pode dar ao usurio, novas percepes e
talvez at uma viso diferente do problema. E, naturalmente, nossos usurios
dependem de ns para ter o contexto; caso contrrio, eles teriam que nos ensinar
todas as coisas que eles conhecem sobre o assunto.
Como um auxlio construo desta habilidade dentro da equipe de
desenvolvimento, ns combinaremos essas tcnicas dentro da nossa entrevista
livre de contexto genrica, uma entrevista estruturada que pode ser usada para
elucidar solicitaes de usurios e stakeholders em muitos contextos da aplicao
de software. O modelo para esta entrevista fornecido na Figura 91. A entrevista
consiste tanto de sees livres de contexto quanto de sees no-livres de
contexto. Tambm fornece questes designadas para nos assegurar que todos os
aspectos dos requisitos, incluindo alguns daqueles requisitos te enganei de
segurana, suportabilidade, entre outros, tenham sido perfeitamente explorados.
74
76
77
O Resumo do Analista: 10 + 10 + 10 30
1
2
3
etc.
O Estudo de Caso
1
2
3
etc.
Needs do usurio
do HOLIS
No entanto, a tcnica do questionrio pode ser aplicada com bons resultados aps
a entrevista inicial e atividades de anlise. Por exemplo, se a aplicao tiver vrios
usurios em potencial ou existente, e se a meta obter informaes estatsticas
das preferncias de usurios ou clientes entre um conjunto limitado de escolhas, o
questionrio pode ser efetivo. Para finalizar, a tcnica do questionrio, como toda
tcnica de elucidao, satisfaz a um conjunto de desafios de requisitos que uma
organizao pode enfrentar.
79
Captulo 10
Workshops de Requisitos
Pontos chaves
Talvez o workshop de requisitos seja a tcnica mais poderosa para se elucidar
requisitos.
Rene todos os principais stakeholders por um breve porm intenso perodo.
O uso de um facilitador externo e experiente em gerenciamento de requisitos
pode ajudar a assegurar o sucesso do workshop.
O brainstorming a parte mais importante do workshop.
80
Preparando o Workshop
A preparao apropriada do workshop crtica para o seu sucesso.
Vendendo o Conceito
A preparao
apropriada do
workshop crtica
para o seu sucesso.
Logsticas
Terceiro, necessria uma abordagem consciente para a logstica e pagar
dividendos na medida em que um workshop seja miseravelmente organizado;
certamente, os resultados desejados no sero atingidos. A logstica envolve todas
as coisas, desde estruturar apropriadamente os convites, viagens, acomodaes,
at a iluminao da sala de reunies do workshop. Uma crena literal nas leis de
Murphy Se pode dar errado, dar errado deve ser nosso guia aqui. Se voc
abordar a logstica com um alto grau de profissionalismo, bvio que atender
aos propsitos num importante evento, e eles iro atuar de acordo. Voc ter,
tambm, mais sucesso no workshop.
81
Material de Aquecimento
Quarto, envie materiais do workshop antecipadamente para preparar os
participantes e tambm elevar a produtividade nas sesses de workshop. Esses
materiais preparam o estado de esprito dos participantes. Chamamos isso de
atingir um ideal estado de esprito. Uma das mensagens que ns precisamos
passar que esta no mais uma reunio. Esta pode ser a nica chance de dizer
isso de forma correta.
Material de
aquecimento
estimula tanto o
pensamento de
quem faz parte do
contexto, quanto de
fora do contexto
(out-of-box).
82
Memorando:
Para: Stakeholder do projeto _______________________
Assunto: Realizao do Workshop de Requisitos
De: [Nome do Lder de Projeto]
Eu sou o gerente de projeto [produto]. O projeto foi [ou ir ser] iniciado em _______ e ser
finalizado na data de _______.
(Ns sabemos; ns entendemos, e pretendemos finalizar nesse perodo).
Como em muitos projetos, temos dificuldades de chegar a um consenso sobre as novas
caractersticas desta aplicao e em definir uma verso inicial que atenda as necessidades de
nossos diversos grupos de stakeholders.
( muito difcil chegar a um acordo sobre qualquer coisa com este grupo, ento ns estamos
tentando algo um pouco diferente, e aqui est o que isso ...)
A fim de facilitar este processo, ns estamos organizando um workshop de requisitos em
_______.
O objetivo deste workshop de fechar as novas caractersticas para a prxima verso do produto.
A fim de fazer isso, importante ouvir a contribuio de todos os stakeholders. O workshop ser
conduzido pelo ________________, que tem grande experincia como facilitador no
gerenciamento de requisitos.
(Como stakeholder, podemos tambm ter preconceitos, ento chamamos algum de fora da
equipe para nos assegurarmos que o workshop ser gerenciado livre de qualquer preconceito).
Os resultados deste workshop sero disponibilizados imediatamente e sero distribudos para as
equipes de desenvolvimento e marketing no dia seguinte. Convidamos vossa senhoria a
participar deste workshop como representante das necessidades de vossa [equipe, departamento,
cliente]. Se no for possvel a vossa participao, ns solicitamos que envie um membro de sua
equipe que esteja autorizado a tomar decises como representante de suas necessidades.
(Ns iniciaremos o desenvolvimento nos prximos dias; se voc quiser ouvir contribuies para
este projeto, esteja aqui, ou envie algum que possa falar por voc. Em outras palavras, fale
agora ou descanse em paz).
Em anexo, a este memorando, est uma breve descrio antecipada das caractersticas do
produto, bem como algum material de leitura sobre o processo de workshop e brainstorming. O
workshop comear exatamente s 8:30 horas e terminar at as 17:30 horas.
(Este projeto e este workshop sero executados de forma profissional; para demonstrar isso, ns
fornecemos alguns materiais antecipadamente para melhor prepar-lo. Ns precisamos que voc
esteja aqui, para contribuir, e nos ajudar a conduzir este projeto de maneira apropriada)
.
Certo de poder contar com a vossa participao, agradeo antecipadamente.
Cordialmente,
[Nome do Lder de Projeto]
Figura 101
83
Papel do Facilitador
Para garantir o sucesso, ns recomendamos que o workshop seja executado por
algum de fora e que tenha experincia em enfrentar os desafios do processo de
gerenciamento de requisitos. No entanto, se isso no for uma alternativa prtica
em seu ambiente, o workshop pode ser facilitado por um membro da equipe,
desde que esta pessoa:
Se possvel, tenha
um facilitador que
no seja da equipe
para executar o
workshop.
Preparando a Agenda
A agenda do workshop ter como base as necessidades do particular projeto e no
contedo que deve ser desenvolvido no workshop. Ningum preenche toda a
agenda. No entanto, workshops de requisitos estruturados podem seguir um
formato padro claro. A Tabela 101 fornece uma agenda tpica.
84
Item de Agenda
Descrio
8:00 8:30
8:30 10:00
Introduo
Contexto
10:00 12:00
Brainstorning
12:00 13:00
Almoo
14:00 15:00
Definio da caracterstica
15:00 16:00
Reduo e priorizao de
idias
Fechamento
16:00 17:00
Executando o Workshop
Problemas e Truques do Ofcio
Voc pode ver que o facilitador interpreta um papel crucial. Para tornar o assunto
mais interessante, esses workshops so caracterizados, normalmente, por uma
atmosfera altamente carregada. Em outras palavras, existem razes para que seja
difcil chegar ao consenso nos projetos; quase todas aparecero no workshop.
De fato, o cenrio pode at estar carregado e conflituoso politicamente. Esta a
outra razo para ter um facilitador; deixar o facilitador aquecer e gerenciar a
reunio de forma que no exacerbe qualquer problema seja do passado,
presente, ou do futuro entre os stakeholders.
Muitos facilitadores carregam uma mala de truques que o auxiliam a gerenciar
esta atmosfera altamente carregada. Na RELA, desenvolvemos um conjunto
muito til de truques de workshop. Embora eles paream estranhamente
bonitos, e at infantil a primeira vista, voc pode acreditar, eles provaram o seu
valor em vrias situaes. Quanto mais difcil o workshop, mais valioso ser! Eles
tambm tendem a estimular o pensamento out-of-box. O mais interessante
que eles so divertidos e contribuem para o tom positivo da sesso. A Figura 102
fornece um exemplo desse conjunto de truque de workshop. Sinta-se livre para
adapt-los e us-los, junto com as instrues de uso.
A Tabela 102 descreve algum dos problemas que podem ocorrer numa
preparao do workshop e tambm fornece sugestes sobre como voc pode usar
os truques de workshop para atacar os problemas. O facilitador deve tambm
introduzir essas regras no incio da reunio e, idealmente, obter aprovao
consensual para aplicar essas tolas regras por um dia.
85
Atraso aps
o intervalo
1 Ofensa
gratuita e
deliberada
Que grande
idia!
Que grande
idia!
5 minutos
para falar
Truques de workshop
86
Tabela 102
Problema
Gerenciamento do tempo
difcil reiniciar as atividades aps
os intervalos.
Os principais stakeholders podem
se atrasar.
Discurso exagerado e dominador,
visando impressionar e receber ovao
do pblico.
Carncia
de
stakeholders.
contribuies
dos
Soluo
O facilitador mantm controle do
tempo de servios de cozinha em todos
os intervalos. Participantes que
chegarem atrasados devem contribuir
com um cupom Atraso aps o
intervalo ou pagar $1 para a caixinha
de contribuies para caridade.
O facilitador refora a regra 5 minutos
para falar para regular o discurso. Ele
tambm cria uma lista de assuntos
pendentes para, posteriormente, poder
voltar s idias que meream ser
discutida, mas que no so relevantes
ao item do momento de acordo com a
agenda.
O facilitador encoraja os participantes a
usarem seus cupons de 5 minutos para
falar e Que grande idia!. Ele deixa
claro que ningum deve deixar o
workshop sem ter usado os cupons ou
terem recebido um cupom Que grande
idia! de outros. (Sugesto: D uma
pequena premiao para quem usar o
cupom 5 minutos para falar, dandolhe um cupom Que grande idia!).
Use o cupom 1 Ofensa gratuita e
deliberada at que os participantes no
tenham mais nenhum; depois disso, tm
que dar contribuies para a caixinha
de contribuies para caridade. (o
grupo decide quanto).
Almoo leve, cafezinhos rpidos,
rearranjo da sala, rearranjo dos locais
dos
participantes,
alterar
a
luminosidade e temperatura. Faa o que
voc puder fazer para manter as coisas
funcionando.
87
Produo e Continuidade
Depois do workshop, o facilitador distribui os minutos da reunio para registrar
algumas outras informaes. Assim, o trabalho do facilitador est terminado, e a
responsabilidade do sucesso volta novamente para a equipe de desenvolvimento.
Depois disso, o lder de projeto tem a responsabilidade de dar continuidade a
quaisquer itens de ao em aberto que foram registradas na reunio e organiz-los
para distribuir aos participantes. Normalmente, as informaes da reunio
apresentam-se como uma lista de idias ou caractersticas sugeridas para produto
que podem modificar imediatamente as futuras aes da equipe de
desenvolvimento. Em alguns casos, workshops adicionais com outros
stakeholders sero programados, ou esforos adicionais de elucidao sero
necessrios para ganhar melhor entendimento das idias estimuladas no
workshop. A criao dessas idias o centro de todo o processo do workshop. No
prximo captulo veremos mais de perto esta parte do processo.
88
Captulo 11
Brainstorming e a
Reduo de Idias
Pontos chaves
O brainstorming trata tanto da gerao de idias quanto da reduo de idias.
As idias mais criativas e inovadoras normalmente resultam da combinao
mltipla, aparentemente de idias desassociadas.
Vrias tcnicas de votao podem ser usadas para priorizar as idias criadas.
Embora seja prefervel o brainstorming presencial, o brainstorming baseado em
web pode ser uma alternativa vivel em algumas situaes.
89
Brainstorming Presencial
Embora o brainstorming possa ser abordado de diferentes maneiras, o processo
simples que descrevemos provou ser efetivo em vrios cenrios. Inicialmente,
todos os stakeholders importantes so reunidos numa sala e recursos so
distribudos. Os recursos distribudos a cada participante podem ser to simples
quanto um bloco de folhas de anotaes e um marcador preto grosso para escrever
as anotaes. As folhas devem ter, ao menos, 3 5 (7 cm 12 cm) e no maior
que 5 7 (12 cm 17 cm). Cada participante deve ter ao menos 25 folhas para
cada sesso de brainstorming. Post-Its ou cartes de ndices funcionam bem. Se
cartes de ndice so usados, so necessrios alfinetes e quadro de isopor ou
cortia.
Ento, as regras do brainstorming so apresentadas (veja a Figura 11-1), e o
objetivo da sesso claramente e concisamente estabelecidos.
Regras do Brainstorming
Figura 111
Regras do brainstorming
(Note que os objetivos tambm ajudam voc a decidir quando a sesso est
terminada. Quando os objetivos forem alcanados e no houver mais nada a
acrescentar, fim!)
Depois que os objetivos do processo tiverem sido estabelecidos, o facilitador
convida os participantes para que expressem suas idias em voz alta e escreva-as,
uma em cada folha. Idias so ditas em voz alta para permitir que outros possam
engatar suas idias, isto , pensar em relacionar idias e seguir a regra 4, mudar
e combinar idias. Neste processo, no entanto, a primeira regra sem crticas ou
debates deve estar frente na mente das pessoas. Se esta regra no for
impingida, o processo ser silenciado, muitas pessoas brilhantes, porm, sensveis
s crticas, no se sentiro confortveis em colocar suas idias, uma trgica perda.
90
Assim que as idias so geradas, o facilitador coleta e as afixa sobre uma parede
da sala de reunies. Novamente, nenhuma crtica s idias pode ser tolerada. No
apropriado dizer, Que idia estpida!, ou mesmo J temos essa idia afixada
na parede!. O nico propsito gerar idias. Mesmo um pacfico comentrio
negativo pode ter o deletrio (danoso) efeito de suprimir futuras participaes da
vtima. Por outro lado, comentrios tais como Que grande idia!, so
apropriados e so normalmente premiados com o cupom Que grande idia!, o
qual pode encorajar futuras participaes de todos os stakeholders. A gerao de
idias deve prosseguir at que todos os participantes sintam que tenham chegado
naturalmente ao seu final.
comum ocorrer calmaria durante a gerao de idias. Isso no motivo para
parar o processo. A calmaria tende a cessar assim que uma nova idia gerada.
Longas calmarias podem fazer com que o facilitador repasse os objetivos ou faa
perguntas associadas. Muitas sesses de gerao de idias duram por volta de uma
hora, mas algumas duram de 2 a 3 horas. Sob nenhuma condio deve o
facilitador finalizar uma sesso que esteja caminhando bem com comentrios
como: Eu sei que estamos todos fazendo grandes progressos, mas precisamos
prosseguir para a prxima fase. Para os participantes, isso soa como Nossas
idias no so to importantes quanto o cronograma. A quantidade de idias
geradas depende de quo frtil foi a discusso, mas comum gerar de 100 a 200
idias.
O processo tende a terminar naturalmente; em algum ponto, os stakeholders
ficaro sem idias novas. Isso caracterizado por um longo e grande intervalo
entre submisses de idias. Nesse ponto, o facilitador finaliza a sesso e pode ser
um bom momento para fazer uma pausa.
Reduo de Idias
Quando a fase de gerao de idias termina, a vez de iniciar a reduo de idias.
Vrios passos esto envolvidos.
91
Expurgando
O primeiro passo o expurgo daquelas idias que no so to valiosas para
merecer maior investimento pelo grupo. O facilitador inicia visitando brevemente
cada idia e solicitando a cooperao do grupo para indicar as idias que acham
serem vlidas. No existe razo para que qualquer participante fique na defensiva
ou reivindique autoria de qualquer idia; qualquer participante pode apoiar ou
refutar qualquer idia.
Dica: A presena de idias que podem ser facilmente expurgadas uma indicao
do processo de qualidade. A ausncia de uma quantidade razovel de idias sem
nexo e malucas indica que os participantes no pensaram no out of the box
suficientemente.
O facilitador apenas pergunta aos participantes se cada uma das idias merece
futura considerao e ento simplesmente remove uma idia invlida, mas se
houver qualquer desacordo entre os participantes, a idia fica na lista. Se
participantes acharem duas anotaes com a mesma idia, agrup-las na parede.
( prefervel fazer isso do que remover uma; seu autor pode se sentir insultado).
Agrupando Idias
Pode ser til durante este processo, iniciar agrupando idias similares. Isso feita
de forma mais efetiva quando participantes voluntrios se dirigem parede e
realizam o agrupamento. Idias relacionadas so agrupadas em regies da parede.
D nomes aos grupos de idias relacionadas. Por exemplo, o grupo pode ser
rotulado como:
Novas caractersticas
Assuntos de desempenho
Evoluo das caractersticas existentes
Interface de usurio e assuntos de usabilidade
A gerao de idias pode ser reiniciada agora para qualquer um desses grupos se
os participantes acharem que o processo de agrupamento tenha estimulado o
desenvolvimento de novas idias ou que algumas reas de funcionalidades-chave
tenham sido deixadas de lado.
92
Definio de Caractersticas
Neste ponto, importante gastar algum tempo para escrever uma breve descrio
sobre o que as idias significam para a pessoa que a submeteu. Isso d ao
contribuidor a oportunidade de apresentar caractersticas adicionais e ajudar a
assegurar que os participantes tenham o mesmo entendimento dessas
caractersticas. Desta maneira, todos entendero o significado da idia, evitando
se assim, uma grande falha no processo de priorizao.
Neste processo, o facilitador visita cada idia que no foi expurgada e solicita ao
contribuidor que fornea uma descrio em uma nica sentena.
Contexto da Aplicao
Caracterstica Obtida
no Brainstorming
Definio da
Caracterstica
Automao de
iluminao residencial
Configurao da
iluminao automtica
Sistema de entrada de
pedidos de venda
Rpido
Sistema de rastreamento
de defeitos
Notificao automtica
Todas as partes
registradas sero
notificadas via e-mail
quando algo for mudado.
Uma caracterstica de rob de solda como soldagem automtica, pode ter sido
suficientemente descrita, no necessitando de nenhum trabalho adicional. No
entanto, importante no cair nessa armadilha; a descrio no deve levar mais
do que alguns minutos por idia. Voc precisa capturar apenas a essncia da idia.
Priorizao
Resultados da
votao
acumulativa:
Idia 1 $380
Idia 2 $200
Idia 3 $180
Idia 4 $140
Idia 5 ...
.
.
.
Idia 27 ...
histograma dos resultados para que os participantes possam ver o impacto visual
de suas decises.
Este processo extremamente simples e normalmente funciona bem. No entanto,
voc deve ficar prevenido dos seguintes avisos. Primeiro: isso funcionar bem
apenas uma vez. Voc no pode usar a mesma tcnica duas vezes no projeto,
porque uma vez que os resultados sejam conhecidos, os participantes iro
influenciar os resultados na prxima rodada. Por exemplo, se voc for um
participante e a sua caracterstica favorita for o primeiro da lista, mas se a sua
segunda caracterstica favorita no estiver numa posio honrosa, voc pode
colocar todo o seu dinheiro sobre a sua segunda caracterstica. Voc est
confiante de que os outros eleitores iro ver que a sua caracterstica favorita ainda
faz a diferena.
Da mesma forma, voc pode achar necessrio limitar a quantidade de gastos de
uma caracterstica. Caso contrrio, um participante trapaceiro conhecendo
perfeitamente que outros itens tais como Execuo rpida e Facilidade de
uso fazem o corte para o topo da lista, pode gastar todo o seu dinheiro sobre
Executar na plataforma Mac e elev-la para uma prioridade maior. Por outro
lado, voc pode desejar a permisso de um limite elevado, contanto que voc
queira saber onde estaro os grandes votos. Eles podem representar necessidades
de alta prioridade de uma comunidade restrita de stakeholders.
A Categorizao Crtica, Importante e til. Um colega nos ensinou uma
outra tcnica que tambm bastante efetiva, especialmente com um pequeno
grupo de stakeholders ou mesmo com apenas um stakeholder, tal como quando
voc precisar da opinio do seu chefe de suas prioridades. Nesta tcnica, dado a
cada participante um nmero de votos igual ao nmero de idias, mas cada voto
deve ser categorizado como crtico, importante ou til. O truque nesta
tcnica a regra de que cada stakeholder d apenas um dos trs votos de cada
categoria; assim, apenas um tero das idias podem ser consideradas crticas.
Nota: Com este esquema, todas as idias que sobreviveram ao processo de expurgo
tero ao menos um voto til, evitando insultar a quem tenha submetido.
Num grupo grande de participantes, cada item ter um misto de categorias, mas
no realmente um problema. O facilitador tem um truque: Apenas multiplique
os votos crticos por 9, importantes por 3 e teis por 1 e some os
resultados! Isto tende a espalhar os resultados pesadamente a favor dos votos
94
Participantes
Depois de pensar sobre o assunto, a equipe decidiu no trazer um facilitador
externo, ao invs disso, definiram que Eric, o diretor de marketing, facilitaria o
workshop. A equipe tambm decidiu que haveria a participao de dois membros
da equipe de desenvolvimento: Cathy, a gerente de produto e Pete, o gerente de
desenvolvimento. A equipe sentiu que tanto Cathy quanto Pete poderiam falar
pela equipe e que estavam aptas em contribuir com o contedo, ambas como
novas proprietrias. Os outros membros da equipe no iriam participar, mas iriam
simplesmente assistir o workshop a fim de observar o processo, ouvir os clientes e
ver, diretamente, os resultados.
95
Papel
Ttulo
Comentrios
Eric
Facilitador
Diretor de Marketing
Cathy
Participante
Gerente de Projetos do
HOLIS 2000
Defensor do projeto
Pete
Participante
Gerente de
Desenvolvimento de
Software
Responsvel pelo
desenvolvimento do HOLIS
2000
Jennifer
Participante
Perspectiva do proprietrio
Elmer
Participante
Perspectiva do proprietrio
Gene
Participante
Perspectiva do proprietrio
John
Participante
Diretor Executivo da
empresa Equipe de
Automao
Maior distribuidor da
Lumenations
Raquel
Participante
Gerente da
EuroControls
Distribuidor Europeu da
Lumenations
Betty
Participante
Presidente da Krystel
Eletric
David
Participante
Presidente da
Construtor de casas
Rosewind Construction personalizadas
Vrios
membros
Observador
Equipe de
desenvolvimento
Todos os membros da
equipe que estiverem
disponveis
96
O Workshop
Antes do workshop, a equipe disponibilizou um pacote de aquecimento contendo:
A sesso
A sesso foi realizada num hotel prximo ao aeroporto e comeou prontamente s
8:00 horas. Eric apresentou a agenda do dia e as regras do workshop, incluindo os
cupons de workshop. A Figura 112 fornece uma viso do workshop.
Pete, Gerente de
Desenvolvimento
de Software
Cathy,
Gerente de
Produto
Perspectiva
dos
proprietrios
Regras do
Workshop
Observadores
Facilitador
Participantes
Eric, Diretor de
Marketing
David,
Presidente da
Rosewind
Construction
Emily,
Gerente Geral
Membros disponveis
da equipe de
desenvolvimento HOLIS
Figura 112
Raquel, Gerente da
EuroControls
(Distribuidor Europeu
da Lumenations)
John, Gerente
Betty da Krystel
Exucutivo da
Eletric
Automation Equip
(maior distribuidor da
Lumenations)
Votos
121
107
105
6 100% de confiabilidade
90
88
77
5 Configurao de ausncias
77
74
73
14 Caractersticas de entretenimento
66
66
55
52
50
50
44
44
44
43
34
31
25
24
23
23
17 Controle HVAC
22
Anlise de Resultados
Os resultados do processo apresentaram-se como esperado, exceto por dois itens
significativos:
1. Segurana pr-definida surgiu na lista com alta prioridade. Esta
caracterstica havia sido mencionada em entrevistas anteriores, mas
no foi colocada na lista de prioridades de qualquer entrevistado.
Depois de uma rpida reviso, Cathy notou que a segurana prdefinida, tais como a habilidade de flash de luz, a sirene opcional e
98
Este assunto demonstra que um dos problemas com a votao acumulativa. Nem todos os stakeholders so criados
igualmente. Falhas em atingir a internacionalizao, que no havia aparecido no visor do radar da equipe antes do
workshop, poderia se tornar um equvoco de requisitos estratgicos de propores significativas.
99
Captulo 12
Storyboarding
Pontos chaves
O propsito do storyboarding elucidar as reaes iniciais Sim, mas.
Os storyboards podem ser passivos, ativos ou interativos.
Os storyboards identificam os jogadores, explicam o que acontece com eles e
descreve como acontece.
Fazer com que o esboo do storyboard seja fcil de modificar e no disponvel.
Os storyboards iniciais so comuns em todos os projetos que tenham contedos
novos e inovadores.
extremamente barato.
amigvel, informal e interativo.
Fornece uma reviso inicial das interfaces de usurio do sistema.
fcil de criar e modificar.
Tipos de Storyboards
Basicamente, um storyboard pode ser qualquer coisa que a equipe quer que seja, e
a equipe deve se sentir livre para usar sua imaginao para pensar num storyboard
de aplicaes especficas. Storyboards podem ser categorizados em trs tipos,
dependendo do modo de interao com o usurio: passivo, ativo ou interativo.
Ativo
Screen shots
Apresentao
de slides
Interativo
Prototipao
Regras de
negcio
Animao
Demonstraes
reais
Relatrios de
Sadas
Simulao
Apresentaes
interativas
Complexidade e custo
Figura 121
Regras do brainstorming
101
Dicas do Storyboarding
O storyboarding uma tcnica projetada para obter um feedback inicial do
usurio usando ferramentas inexpressivas. Assim, storyboards so particularmente
efetivos em atacar a sndrome Sim, mas. Eles ajudam tambm a atacar a
sndrome das Runas Desconhecidas elucidando imediatamente o feedback de
usurios tal como o que o sistema parece que no deve fazer. Mas, como em
qualquer tcnica, certas advertncias de aplicam. Aqui esto algumas dicas que
devemos ter em mente quando se pratica a tcnica do storyboarding.
Sumrio
Neste captulo, ns aprendemos sobre uma tcnica muito simples e barata para
elucidar requisitos. De ser forma, um storyboard qualquer coisa que voc pode
construir rapidamente e economicamente que elucide uma reao Sim, mas do
usurio.
Ns podemos afirmar com certeza que nunca deixamos de aprender alguma coisa
com o storyboard, e nunca houve um caso em que ns tenhamos sado de um
storyboard com exatamente o mesmo conhecimento que tnhamos antes de
entrarmos. Assim, nosso aviso para a equipe de desenvolvimento :
Storyboard no incio.
Storyboard com freqncia.
Storyboard em todos os projetos que possuam contedos novos e
inovadores.
Ao fazer isso, voc ir ouvir o quanto antes o Sim, mas, o qual ir lhe ajudar a
construir sistemas que melhor atenda as necessidades dos usurios reais. E, talvez,
voc ir rapidamente e economicamente ver seu trabalho realizado!
presidente Snior, Sr. Big, uma pessoa poderosa quem ns nunca havamos
conhecido antes.
Sr. Big: Autor, como anda o nosso projeto favorito?
Autor: No muito bem.
Sr. Big: Estou ouvindo direito? Tudo bem, no existe problema grande o
suficiente que no possa ser resolvido. Rena sua equipe evenha at
aqui para uma reunio. Que tal na quarta-feira?
Autor: (afobadamente folheando a agenda da equipe para quarta-feira) Quartafeira est perfeito.
Sr. Big: Excelente. Venha e traga toda a sua equipe. Outra coisa, no se
preocupe com os custos de viagem. Ns cobriremos. Pro inferno!
Compre aquelas passagens s de ida.
Autor: (Engolindo seco) Est bem, obrigado. Ns nos veremos na quarta.
No dia indicado, ns entramos num grande salo de conferncia com a equipe de
projeto do cliente todos sentados na extremidade remota. A equipe claramente
estava reunida j algum tempo. (Questo: Por que a equipe sentiu necessidade de
se reunir antes que a verdadeira reunio comeasse?). O Autor, que no um
marinheiro de primeira viagem, caminhou para a outra extremidade da sala e
sentou-se prximo ao Sr. Big (a teoria diz que ser difcil para o Sr. Big gritar
com o Autor se eles estiver prximo ao Sr. Big; alm disso, se ele golpear o
Autor, existe a chance de venc-lo na justia e recuperar os lucros de projeto!).
Depois de uma breve discusso, o Autor notou que dentre os vrios problemas
importantes que preocupam o projeto, o problema da no convergncia dos
requisitos estava causando atrasos e excedendo os custos. O Sr. Big disse, Dme um exemplo. O Autor lhe deu um exemplo. Os membros da equipe do cliente
imediatamente comearam a argumentar entre si, talvez demonstrando que este
era o real problema. O subcontratado sussurrou um pequeno sinal de alvio. O Sr.
Big observou a equipe por um momento e ento disse, Muito engraado. D-me
mais um exemplo. A equipe do Autor arrancou cinco impresses coloridas, cada
uma realizada com perfeio profissional, do painel frontal proposto e disse: ns
apresentamos todas estas opes de projetos semanas atrs, e no conseguimos
convergir para nenhum desses projetos, e estamos exatamente no momento em
que precisamos disso. O Sr. Big disse, Isso no pode ser to difcil. Equipe,
escolha um. Os membros da equipe do cliente ento brigaram entre si
novamente. O dia passou desse jeito. No houve convergncia. Havia pouca
esperana.
Na manh seguinte, o Autor foi convidado para um caf da manh com um
membro da equipe de projeto (Membro da Equipe). O Membro da Equipe,
tambm um costureiro, arrancou o fundo de feltro de um pano, cortou com a
tesoura, e depois de colori-lo disse Eu gostaria de facilitar a parte da interface
do usurio na reunio usando essas ferramentas.
Autor:
Membro da Equipe:
105
O Autor, politicamente correto, no disse a primeira palavra que lhe veio mente.
A segunda palavra foi OK.
O prximo dia, o tom na sala de reunies foi muito diferente. A equipe do cliente
tinha, novamente, chegado cedo, mas desta vez estavam silenciosos e carrancudos
ao invs de descomedido e excitado. (Anlise: Agora eles sabem o quanto ns
estvamos atados e sem respostas. Eles haviam planejado nos matar, mas agora
sabem que estvamos sendo injustiados).
Para iniciar a reunio, o Membro da Equipe colocou uma pea de feltro de 3 por
5 (1 2 m) sobre a parede, gerando risos, mas no desinteresse por parte do
cliente.
O Membro da Equipe colocou grandes interruptores para chaves de potncia e
vrios botes de modo-terapia feitos de feltro, sobre o painel frontal e disse
Agora este projeto funciona?.
O cliente olhou para a parede e disse No, mas por que voc no desloca o boto
de parede de emergncia para baixo?.
O Membro da Equipe disse: Aqui, por que voc no faz isso?, e passou uma
tesoura para o cliente.
O cliente pegou a tesoura, e o Membro da Equipe deixou a sala. O cliente
continuou a sesso de projeto interativo com feltros e tesouras. Uma hora mais
tarde, o cliente olhou a parede e disse: Est muito bom; construa-o.
Permita-nos descobrir a moral da estria com uma pequena leitura de pergunta e
resposta:
Pergunta: Por que a loucura do feltro funcionou e a impresso colorida no?
Resposta: Existem duas razes.
Interatividade: O que o cliente pode fazer com cinco desenhos,
dos quais apenas uma parte satisfatria?
Usabilidade: Quo assustador pode ser cortar um grande pedao
de feltro?
O cliente, que tinha o domnio da especialidade, mas no necessariamente o
projeto, projetou uma soluo adequada para o seu prprio problema.
Ns adotamos a casa de feltro como nossa e fixamos na parede como uma
constante lembrana sobre o que ns aprendemos. A interface do usurio, embora
no tenha sido uma soluo tima, nunca mudou e se adequou aos propsitos dos
interessados. Mas, infelizmente, o projeto no foi um grande sucesso de venda,
embora o produto tenha ido para o mercado e alcanado sucesso. Como dissemos
anteriormente, este foi apenas um dos problemas enfrentados neste particular
projeto.
Captulo 13
Pontos chaves
Os use cases, como storyboards, identificam quem, o que e como do
comportamento do sistema.
Use cases descrevem as interaes entre um usurio e um sistema,
concentrando-se no que o sistema faz para o usurio.
O modelo use-case descreve a totalidade do comportamento funcional do
sistema.
Controlar lmpada
Pessoal do Escritrio
Chefe do Estoque
Use Case
Use Case
Sistema de Gerenciamento de
Estoques Acme
Motorista de
Cam inho
Use Case
Estoquista
Operador de
Empilhadeira
Figura 131
108
Voc pode ver que o sistema usado por alguns usurios, cada um dos quais
interagem com o sistema para tingir um objetivo operacional especfico.
A anlise futura do sistema determina que certas linhas de comportamento do
sistema so necessrias para suportar as necessidades dos usurios. Essas linhas
so os use cases, ou a seqncia especfica pelas quais os usurios interagem com
o sistema para realizar um objetivo especfico. Exemplos desses use cases de
sistema podem incluir:
especificao use case pode incluir o passo O tcnico de manuteno entra com
o seu nome (16 caracteres no mximo), sobrenome, entre outros.
Como os use cases definem as interaes usurio/sistema, pode ser a hora
apropriada de definir, ao menos em conceito, as telas, displays, painis frontais,
entre outras coisas com as quais o usurio interage. Se um sistema de janelas
utilizado para apresentar as informaes, pode ser apropriado fazer uma descrio
grfica de alto-nvel dos dados a serem exibidos; os detalhes de projeto da
interface grfica formal (GUI), tais como definio de dados cores e fontes,
devem ser deixados para as fases posteriores. A Figura 132 ilustra uma poro
exemplo de uma especificao use-case.
Use Case: Redistribuio dos Itens de Estoque
1. O chefe do estoque d um comando para redistribuio do estoque.
2. A janela na Figura xxx apresentada ao chefe do estoque.
3. Os itens podem ser ordenados de vrias formas. A ordem indicada
com a seleo do menu Ordenar:
Ordem alfabtica
Ordem por ndice
Ordem de armazenamento
4. Na tabela Lugar; podemos optar em ver, ou todos os Lugares do
atual estoque ou, se selecionado um item, os lugares onde esse item
existe.
Figura 132
Descrio
Atores
Residente,
Lmpada
Iniciar Emergncia
Residncia
Controlar Iluminao
Residentes,
Lmpadas
Trocar Programao
Proprietrio /
programador
Programar Remotamente
Servios de
Iluminao
Tirar Frias
Proprietrio /
programador
Configurar a Seqncia
de Tempo
Proprietrio /
programador
110
Sumrio
Use cases fornecem uma notao estruturada e razoavelmente formal para
capturar um subconjunto mais importante das informaes de requisitos: como o
sistema interage com o usurio para liberar sua funcionalidade. Em muitas
aplicaes, este subconjunto representa a principal carga de trabalho, tal que use
cases podem ser aplicados para expressar os principais requisitos do sistema.
Cada use case identificado define os comportamentos necessrios do sistema sob
a perspectiva de uma classe particular de usurio. Como tal, a tcnica muito til
na elucidao das necessidades do usurio e ajuda a equipe de desenvolvimento
representar tais necessidades de maneira que seja prontamente compreensvel pelo
usurio.
Alm disso, como os use cases podem ser usados, posteriormente, nos processos
de projeto e testes; eles fornecem uma representao consistente e uma linha
consistente atravs das atividades de requisitos, anlise, projeto e testes. Desta
forma, a tcnica constri antecipadamente recursos de projeto reutilizveis que
ajudam a aperfeioar a eficincia global do processo de desenvolvimento de
software. Mais ainda, com a consistncia da representao e o suporte fornecido
pela UML e por diversas ferramentas de desenvolvimento de aplicaes, use
cases podem ajudar na automao de vrios elementos da atividade de
gerenciamento de requisitos. Por estas razes, use cases so notaes to
importantes que ns os aplicamos deste ponto em diante como parte integrante
das atividades de gerenciamento de requisitos de equipe.
111
Captulo 14
Role Playing
Pontos chaves
O role playing permite que a equipe de desenvolvimento experimente o mundo
do usurio a partir da perspectiva do usurio.
Um roteiro de acompanhamento pode substituir o role playing em algumas
situaes, com o script se tornando num storyboard vivo.
Os cartes CRC (Classe-Responsabilidade-Colaborao) freqentemente usados
na anlise orientada a objetos, so um derivado do role playing.
Experimente!
Ns podemos dizer que as experincias obtidas no role playing, podem ficar com
os desenvolvedores pelo o resto da vida. Nossa viso pessoal do mundo foi
mudando de acordo com tais experincias, incluindo os simples papis de soldar
uma pea complexa da maneira que se supem que os robs faam, misturar
compostos farmacuticos num depurador de fluxo laminar, identificar uma
televiso comercial com apenas quatro resumos de tela e uma trilha de udio,
usar ferramentas de software para gerenciamento de requisitos imaturos, entre
muitos outros. Ns aprendemos sempre alguma coisa, e desenvolvemos uma
grande empatia com os usurios com os quais estivemos!
113
Roteiro de Acompanhamento
Um roteiro de
acompanhamento
um jogo no papel.
114
Bob
(Unidade de
Controle
Central):
Sumrio
O role playing uma excelente tcnica, embora no a tenhamos visto em uso com
muita freqncia. Por que? As razes so muitas. Existe o fator desconforto. Esta
tcnica no nos motiva ao ter que fazer mal feito um simples pedido de venda
enquanto nossos clientes ou pessoas que entram com um pedido de venda nos
observam. Alm disso, existe o fator delicado e confuso: Ser forado a interagir
com pessoas reais ao invs de com um teclado, nos faz sair da nossa zona de
conforto afinal de contas, ns queremos compilar classes tericas, deixem que
nossos colegas participem de um drama!
No entanto, no h dvidas de que, se ns conseguirmos vencer essa pequena
dificuldade, o role playing ser uma das tcnicas mais acessveis e eficazes para
assistir no descobrimento de requisitos.
115
Captulo 15
Prototipao
Pontos chaves
A prototipao especialmente efetiva para atacar as sndromes Sim, mas e
Runas Desconhecidas.
Um prottipo de requisitos de software uma implementao parcial do
sistema de software, construdo para auxiliar os desenvolvedores, usurios e
clientes a melhor entenderem os requisitos do sistema.
Crie prottipos para requisitos confusos: aqueles que, embora conhecidos ou
implcitos, suas definies so pobres e mal compreendidas.
Tipos de Prottipos
Prottipos podem ser categorizados de vrias maneiras. Por exemplo, Davis
(1995a) categoriza os prottipos como descartvel versus evolucionrio versus
operacional, vertical versus horizontal, interface de usurio versus algortmico,
entre outras. O tipo de prottipo que voc escolhe depende do problema que voc
est tentando resolver atravs da construo do prottipo.
Por exemplo, se o risco do seu projeto baseado principalmente na viabilidade da
abordagem tecnolgica isso, simplesmente nunca foi feito antes e voc no est
certo se a tecnologia aplicada pode atingir as metas de desempenho ou de
rendimento voc pode querer desenvolver um prottipo arquitetural que
principalmente demonstre a viabilidade da tecnologia a ser usada. Um prottipo
arquitetural pode ainda ser descartvel versus evolucionrio. Descartvel
implica que o propsito do esforo apenas para provar a viabilidade; assim,
voc poder usar qualquer atalho, tcnicas alternativas, simulaes, ou qualquer
outra coisa para atingir esse propsito. Quando voc tiver terminado, voc
simplesmente o descarta, mantendo apenas o conhecimento apreendido nesse
exerccio. Evolucionrio implica que voc implementou o prottipo na mesma
arquitetura que voc pretende usar no sistema final, e que voc ser capaz de
construir o sistema final a partir da evoluo do prottipo.
116
Distncia
do risco
Larga
Evolucionrio
Distncia
do risco
Requisitos
Risco de
projeto?
Distncia
do risco
Descartvel
Estreita
Larga
Distncia
do risco
Evolucionrio
(b)
Estreita
Larga
(a)
Estratgia de
investimento?
Vertical
Descartvel
Estratgia de
investimento?
Tecnolgico
Estreita
Estreita
Larga
Horizontal
Vertical
Horizontal
Vertical
Horizontal
Vertical
Horizontal
Figura 151 rvore de deciso para seleo do tipo de prottipo: (a) prottipos de requisitos; (b)
prottipos arquiteturais
Prottipos de Requisitos
Para propsitos de elucidao de requisitos, ns nos concentramos sobre os tipos
de prottipos sob o ramo superior desta rvore. Definimos um prottipo de
requisitos de software como:
uma implementao de um sistema de software, construda para ajudar
desenvolvedores, usurios e clientes a melhor entender os requisitos do
sistema.
O que Prototipar
Como vamos saber qual poro do sistema devemos prototipar? Numa situao
tpica, nosso entendimento das necessidades dos usurios ir variar desde o bem
conhecido e fcil de verbalizar at o totalmente desconhecido (Figura 152).
Bem conhecido
Figura 152
Confuso
Desconhecido
118
Construindo o Prottipo
A escolha da tecnologia usada para construo do prottipo depende das decises
tomadas considerando a rvore de deciso da Figura 151. Por exemplo, a escolha
por um prottipo descartvel da GUI nos leva a escolher qualquer tecnologia que
seja barata e rpida para implementar exemplos de GUIs.
Se um prottipo evolucionrio for selecionado, voc deve escolher a linguagem e
o ambiente de desenvolvimento que ser utilizado para produzir a implementao
final. Voc tambm ter que fazer esforos significativos para projetar a
arquitetura de software do sistema, bem como aplicar quaisquer padres de
codificao ou processos de software que voc usar para criar o sistema. Caso
contrrio voc ter que evoluir um sistema que fundamentalmente falha em um ou
mais desses aspetos. Neste caso, voc pode ter criado um prottipo descartvel
por acidente! Ou, pior, a qualidade do sistema implantado estar, para sempre,
comprometida pelo seu prottipo de requisitos bem-intencionado.
Avaliando os Resultados
Depois que o prottipo estiver construdo, ele deve ser exercitado pelos usurios
num ambiente que simule, tanto quanto possvel, o ambiente de produo no qual
o sistema final ser usado. Dessa forma, ambientes e outros fatores externos que
afetam os requisitos do sistema tambm se tornaro bvios. Alm disso,
importante que existam vrios tipos de usurios exercitem o prottipo, caso
contrrio os resultados sero preconceituosos.
Os resultados do processo de prototipao dividem-se em duas partes:
1. Necessidades confusas tornam-se melhor entendidas.
2. Ao exercitar o prottipo, inevitavelmente elucida respostas Sim, mas
do usurio; assim, necessidades anteriormente desconhecidas tornamse conhecidas. Simplesmente por enxergarem um conjunto de
comportamentos, os usurios passam a entender outros requisitos que
devem ser impostos ao sistema.
De qualquer forma, a prototipao virtualmente sempre produz resultados. Assim,
voc deve normalmente prototipar qualquer aplicao nova ou inovadora. O
truque assegurar que o retorno obtido no conhecimento dos requisitos faa valer
o investimento realizado. Isso porque queremos, freqentemente, prototipar ou
ao menos implementar nossos primeiros prottipos rapidamente, utilizando
tcnicas baratas e disponveis. Ao limitar o investimento, ns maximizamos o
retorno sobre o investimento de obter o entendimento dos requisitos.
119
Sumrio
Devido aos prottipos de software demonstrarem uma parte da funcionalidade
desejada de um novo sistema, eles podem ser ferramentas efetivas para ajudar a
refinar os requisitos reais do sistema. Eles so efetivos porque usurios podem
interagir com um prottipo em seu ambiente, o qual to prximo ao mundo real
quanto se puder chegar sem desenvolver o software de produo.
Voc deve selecionar sua tcnica de prototipao com base na probabilidade de
um tipo de risco estar presente em seu sistema. Supe-se que os prottipos de
requisitos sejam baratos e fceis de desenvolver, e que eles ajudem a eliminar
grande parte dos riscos de requisitos de seu projeto.
Entre as vrias possibilidades de investimento, voc deve investir somente o
necessrio em seu prottipo. O uso de vrias tcnicas de prototipao, ou melhor,
o uso combinado de diversas de tcnicas de prototipao, tem se mostrado
extremamente efetivo em auxiliar a equipe de projeto a desenvolver um melhor
entendimento das reais necessidades de um sistema de software.
120
Entrevistas e questionrios
Workshop de requisitos
Brainstorming e reduo de idias
Storyboarding
Use cases
Role playing
Prototipao
Embora nenhuma das tcnicas seja perfeita para todas as circunstncias, cada um
representa um meio pr-ativo de impulsionar o entendimento das necessidades do
usurio e converter requisitos confusos para requisitos que sejam melhor
conhecidos. Embora todas estas tcnicas funcionem em certas circunstncias, o
nosso favorito a tcnica do workshop/brainstorming.
121
Habilidade de Equipe 3
Definindo o Sistema
122
A quantidade de
informaes que
devemos gerenciar
aumenta
rapidamente
conforme nos
movemos para baixo
da pirmide.
Needs
Domnio do Problema
Features
Domnio da Soluo
Requisitos de Software
Figura 1
Alm disso, a equipe deve, agora, tambm se preocupar com vrios outros assuntos que
so nicos no espao da soluo, mas que tm um pouco a ver com o domnio do
problema. Por exemplo, se ns estivermos desenvolvendo um produto de software para
ser vendido ao usurio, devemos nos preocupar com empacotamento, instalao e
licenciamento, cada um dos quais podem ser nicos para a soluo que estamos
fornecendo. Se estivermos desenvolvendo um sistema para atender as necessidades de
IS/IT na empresa do cliente, pode ser que precisemos nos preocupar com os requisitos
de implantao e manuteno, os quais so de pouco ou nenhum interesse ao usurio
que no est usando o sistema.
123
124
Captulo 16
Organizando Informaes de
Requisitos
Pontos chaves
Para aplicaes no triviais, requisitos devem ser capturados e registrados numa
base de dados de documentos, modelos e ferramentas.
Tipos diferentes de projetos requerem diferentes tcnicas de organizao de
requisitos.
Sistemas complexos exigem especificao de requisitos para cada subsistema.
O Sistema
Subsistema
Subsistema A-1
Figura 161
Subsistema
Subsistema A-2
Subsistema
Subsistema
Subsistema
Um sistema de sistemas
Especificao geral
dos Requisitos do
sistema
Especificao dos
requisitos do sistema
para o Subsistema A
Especificao dos
requisitos do sistema
para o Subsistema A-1
Figura 162
Especificao dos
requisitos do sistema
para o Subsistema B
Especificao dos
requisitos do sistema
para o Subsistema A-2
Especificao dos
requisitos do sistema
para o Subsistema C
Especificao dos
requisitos do sistema
para o Subsistema C-1
Especificao dos
requisitos do sistema
para o Subsistema C-2
Especificao geral
dos Requisitos do
sistema
Especificao dos
requisitos do sistema
para o Subsistema A
Especificao dos
requisitos do sistema
para o Subsistema A-1
Especificao dos
requisitos do sistema
para o Subsistema B
Especificao dos
requisitos do sistema
para o Subsistema A-2
Subsistema A-2
Especificao dos requisitos de hardware
Especificao dos
requisitos do sistema
para o Subsistema C
Especificao dos
requisitos do sistema
para o Subsistema C-1
Especificao dos
requisitos do sistema
para o Subsistema C-2
Subsistema A-2
Especificao dos requisitos de software
Viso
Documento da Viso da
famlia de produtos
SRS
Requisitos de
software comuns
Viso
SRS
Figura 164
Modelo use-case
comuns famlia
Viso
SRS
Viso
SRS
129
A diferena entre o valor da mercadoria produzida por um assalariado e o salrio que lhe pago; lucro em longo
prazo que no visto de imediato.
130
Quem o cliente?
Quem so os usurios?
Qual o mercado no qual pretendemos vender?
Como o mercado est segmentado?
Os requisitos do usurio esto nesses diferentes segmentos?
Quais classes de usurios existem?
Quais necessidades o produto satisfaz?
De que tipo o produto?
Quais so os principais benefcios do produto; por que algum deve
compr-lo?
Quem so os concorrentes?
O que diferencia o produto de nossos concorrentes?
Em que ambiente o sistema ser usado?
Qual ser o custo de desenvolvimento?
Com que preo voc pretende vender o produto?
Como o produto ser instalado, distribudo e mantido?
O Caso de Estudos
No Captulo 6, ns executamos algumas atividades da engenharia de sistemas no
sistema HOLIS, o nosso sistema de automao de iluminao residencial. Neste
ponto, no sabemos, ainda, muito sobre o HOLIS, mas provavelmente sabemos o
suficiente para fazer uma primeira tentativa em organizar as informaes de
nossos requisitos.
Viso
Especificao de hardware
dos subsistemas
Documento da Viso do
HOLIS 2000
Modelo use-case de
sistema do
HOLIS 2000
SRS
SRS
SRS
Modelo use-case
do subsistema
Modelo use-case
do subsistema
Modelo use-case
do subsistema
Figura 165
131
A Figura 165 ilustra que a equipe est usando os seguintes elementos para
descrever os requisitos para o HOLIS:
Sumrio
Neste captulo, ns examinamos uma variedade de documentos de requisitos para
sistemas de diferentes complexidades. No entanto, em muitos casos, o
gerenciamento de requisitos eventualmente concentra-se sobre um nico
subsistema de software, produto de software de prateleira, ou aplicaes
standalone. Exemplos desses produtos podem ser o Microsoft Excel, Rational
ClearCase, produtos de fornecedores ISV, ou o sistema de controle de iluminao
HOLIS.
Nos prximos captulos, ns iremos fazer um zoom sobre o processo de
definio de requisitos para uma nica aplicao de software tal que possamos
demonstrar mais claramente como o processo de gerenciamento de requisitos
funciona.
132
Captulo 17
O Documento da Viso
Pontos chaves
O documento da Viso descreve a aplicao em termos gerais, incluindo
descries do mercado alvo, dos usurios do sistema, e das caractersticas da
aplicao.
O documento da Viso define, num alto nvel de abstrao, tanto o problema
quanto a soluo.
Virtualmente, todos os projetos de software iro se beneficiar ao ter um
documento da Viso.
O documento da Viso Delta concentra-se no que foi mudado.
133
Needs
Features
Escopo do
documento da viso
1.3. Referncias
Fornecer uma lista completa de todos os documentos referenciados neste documento.
Figura 171
6
Corrente na psicologia
134
2. Descrio do Usurio
Descrever brevemente a perspectiva dos usurios do seu sistema.
(cliente alvo)
(declarao da necessidade ou oportunidade)
um (categoria do produto)
(declarao dos benefcios principais, isto , razes para convencer
a comprar)
(principais alternativas da concorrncia)
(declarao das principais diferenas)
Caractersticas Suportadas
Benefcio 1
Benefcio 2
Benefcio 3
Caracterstica
Caracterstica
Caracterstica
Figura 171
4. Atributos de Caractersticas
Descreva as caractersticas que sero usadas para avaliar, rastrear, priorizar e gerenciar as
caractersticas. A seguir esto algumas sugestes:
Estado
Prioridade
Esforo
Risco
Estabilidade
Release alvo
Associado a
Razo
ou
Crtico,
5. Caractersticas do Produto
Esta seo do documento lista as caractersticas do produto.
5.1. Caracterstica #1
5.2. Caracterstica #2
6. Principais Use Cases
Descreve alguns use cases principais, talvez aqueles que so arquiteturalmente significantes
ou aqueles que iro mais prontamente ajudar o leitor a entender como o sistema pretende ser
usado.
8. Requisitos de Documentao
Descreva as documentaes que devem ser desenvolvidas para sustentar a implantao da
aplicao com sucesso.
Figura 171
Figura 171
137
Viso
Documento da Viso
para a verso 1.0
Figura 172
Introduo
Usurios e mercado
Caractersticas do 1.0
Outros requisitos
Caractersticas futuras
Este documento serve de base para o release 1.0 e dirige os requisitos e use cases
mais detalhados do sistema, os quais sero muito mais elaborados.
Viso
Documento da Viso
v2.0
Viso
Viso 1.0
Viso
Viso Delta 2.0
Introduo
+ Caractersticas da verso 1.0
+ Caractersticas futuras
+ Novas caractersticas
+ Caractersticas removidas
+ Caractersticas futuras
=
Figura 173
Ponto de partida
para o
entendimento
A duas verses devem ser utilizadas em conjunto sempre que for necessria a
definio completa do produto, tanto para requisitos de regulao quanto de
clientes, por exemplo, e bvio que isso importante para os novos membros da
equipe. No entanto, quando caractersticas forem removidas, voc ir ler
caractersticas que esto na verso 1.0, mas que no aparecem na verso 2.0.
Assim, se necessrio, siga essa trilha de auditoria sempre que voc precisar
ressuscitar a definio completa.
Se e quando isso se tornar complicado, fcil reunir o contedo da verso 1.0 e o
Delta da verso 2.0 num novo documento da Viso 2.0 que represente um quadro
do projeto compreensivo e completo.
Naturalmente, no precisamos ficar restritos sobre esta definio ou ao que cada
documento contm. Em vrias circunstncias, verificamos que conveniente usar
a Viso Delta apenas para pequenas mudanas tais como para a verso 1.1 ou
1.2 e iniciar com uma declarao completa do produto, rigorosamente
139
revisada a cada grande release tais como nas verses 2.0 ou 3.0. Nesses casos, a
aplicao do documento da Viso Delta deve ajudar a melhor gerenciar o
processo de requisitos por permitir que sua equipe concentre-se o que realmente
interessa em cada momento especfico.
140
Captulo 18
O Campeo
Pontos chaves
O campeo produto mantm a viso do projeto.
Todo projeto necessita de um indivduo campeo ou de uma pequena equipe
campe para defender o produto.
Nos ambientes do produto de software, o campeo do produto ir
normalmente vir do marketing.
141
Esta pessoa a nica a quem o documento da Viso pode ser realmente confiada,
e encontrar o campeo correto para esse propsito a chave de sucesso ou falha
do projeto.
Brooke
Diretor de Engenharia
Jack
Lder de QA
Equipe
de
Teste
Louise
Lder de
Doc
Michel
Arquiteto
John
Lder de
Software
Eric
Diretor de Marketing
Pete
Gerente de
Desenvolvimento de
Software
Russ
Lder de
Software
Mike
Lder de
Software
Cathy
Gerente de
Produto
Desenvolvedores
Gerente de Produto
(o Campeo):
Gerente de
Desenvolvimento:
Esse dilogo no tem nada de mais; apenas explana o senso comum, mas
incrvel o quo freqente encontrar empresas que no tm claro esta
responsabilidade, como no caso da empresa provedora de servios on-line.
De alguma forma, o ambiente de fornecimento de software independente (ISV)
simples: O cliente externo, e ns normalmente temos uma organizao de
marketing razoavelmente sofisticada a qual usamos para elucidar os requisitos e
determinar quem o responsvel pelo equilbrio de todas as necessidades
conflitantes. Um cliente cujas necessidades no so atendidas, simplesmente no
ser um cliente. Embora isso no seja uma boa coisa, ao menos eles no vo
perder tempo blasfemando.
144
145
146
147
Habilidade de Equipe 4
Gerenciando o Escopo
Captulo 19:
Captulo 20:
Captulo 21:
Captulo 22:
148
149
Captulo 19
Pontos chaves
O escopo de projeto uma combinao de funcionalidade de produto, recursos
de projeto e tempo disponvel.
A lei de Brooks estabelece que adicionar trabalhadores ao projeto de software j
em atraso torna-o ainda mais atrasado.
Se o esforo necessrio para implementar as caractersticas do sistema for igual a
recursos sobre o tempo disponvel, o projeto ter um escopo atingvel.
Projetos alm do escopo so normais na indstria.
Em muitos projetos, a fim de fornecer uma razovel probabilidade de sucesso,
ser necessrio reduzir o escopo por um fator de dois.
A Figura 191 fornece uma perspectiva retangular que podemos usar para
representar o escopo de projeto.
Escopo
Recursos
Tempo disponvel
Prazo Final
Figura 191
Escopo de Projeto
150
No incio dos anos de 1970, Fred Brooks (1975) demonstrou que adicionar
recursos aos projetos de software a fim de aumentar o trabalho realizado ,
na melhor das hipteses, uma proposio de risco. De fato, a lei de Brooks
estabelece que adicionar trabalhadores a um projeto de software que est
em atrasado torna-o ainda mais atrasado.
Se a escala de tempo for suficiente longa, tudo bem, o trabalho pode
realmente ser realizado, mas no ser proporcional aos recursos
adicionados, e a eficincia geral do projeto tende a diminuir. Adicionar
recursos pode at reduzir a velocidade do projeto devido necessidade de
treinar e apoiar as novas pessoas, reduzindo a produtividade daqueles que
j estavam no projeto. Como o mercado competitivo nos fora a abreviar o
tempo disponvel, adicionar recursos durante um projeto impraticvel.
Alm disso, como os oramentos de desenvolvimento so geralmente
apertados nesses anos de Internet, adicionar recursos simplesmente no
uma opo possvel.
Com o propsito fazer a anlise do escopo, permita-nos assumir que
recursos, no eixo y da Figura 191, so constantes enquanto durar o
projeto.
aproximadamente 200%. Este dado tem forte correlao com o que estabeleceu o
Standish Group anteriormente, ou seja, que mais da metade de todos os projetos
iro custar prximo ao dobro de suas estimativas. Talvez possamos agora
entender o por que.
Uma Breve Histria sobre Escopo de Projeto
Uma vez tivemos uma estudante que tinha sido recentemente promovida para
exercer um novo papel, a de gerente de produto para um novo produto de
software. Seu currculo inclua muitos aspectos de desenvolvimento de
produto e marketing de produto, mas no tinha experincia direta no
desenvolvimento de software. Depois de ouvir as respostas para a nossa
questo sobre escopo, ela mostrou-se incrdula. Ela olhou ao redor da sala e
disse, No entendi direito, vocs aprovam projetos com aproximadamente
duas vezes a quantidade de trabalho que pode ser razoavelmente realizado
num perodo de tempo disponvel? Que tipo de profisso esta? Vocs esto
loucos? Os desenvolvedores trocaram olhares tmidos e unanimemente
responderam, sim.
Embora tenhamos ficado inicialmente desapontados com o seu atraso (ou com
as poucas coisas funcionando comparado s nossas expectativas), agora ns
estamos realmente insatisfeitos porque descobrimos que voc nos entregou um
lixo.
A Difcil Questo
Claramente, para que a equipe de projeto tenha alguma esperana de sucesso, o
escopo deve ser gerenciado antes e durante o esforo de desenvolvimento. No
entanto, o cenrio tpico amedronta: Se comearmos o esforo de desenvolvimento
com, de fato, a expectativa de escopo em 200%, ser necessrio reduzir o escopo
do projeto por um fator de 2 se quisermos obter alguma chance de sucesso.
O dilema da equipe ao enfrentar este problema talvez leve dura questo
enfrentada pela equipe: O que podemos fazer para reduzir o escopo e manter o
cliente satisfeito? Bem, nem tudo est perdido. Ns iremos cobrir algumas
maneiras de lidar com esta questo nos dois prximos captulos.
153
Captulo 20
Pontos chaves
O primeiro passo para estabelecer o escopo de projeto definir um baseline de
requisitos de alto-nvel, um conjunto de caractersticas que se pretende liberar
numa verso especfica do produto.
O segundo passo estabelecer o esboo do nvel de esforo requerido para cada
caracterstica do baseline.
Depois, estimar o risco para cada caractersticas, ou a probabilidade de que ao
implement-las causar um impacto negativo no cronograma e no oramento.
Usando esses dados, a equipe estabelece e assegura que o baseline de liberao
ir conter as caractersticas que so crticas para o sucesso do projeto.
O Baseline de Requisitos
O propsito do gerenciamento de escopo estabelecer um baseline de requisitos
de alto-nvel para o projeto. Definimos baseline como
o conjunto de caractersticas, ou requisitos, que se pretende liberar numa
verso especfica da aplicao.
Veja a Figura 201. Tanto o cliente quanto a equipe de desenvolvimento devem
concordar com o baseline da prxima release. Em outras palavras, o baseline
deve:
Caracterstica 1
Caracterstica 2
Verso 1.0
do baseline
Figura 201
Baseline de requisitos
154
Definindo as Prioridades
Como discutimos em Habilidades de Equipe 2, Entendendo as Necessidades de
Usurios, estabelecer as prioridades relativas do conjunto de caractersticas parte
integrante do gerenciamento de escopo. Durante a priorizao, importante que
clientes e usurios, gerentes de produto, ou outros representantes exceto a
equipe de desenvolvimento definam as prioridades de acordo com o mercado
interno de seus departamentos. De fato, esta priorizao inicial deve ser feita sem
muita influncia da comunidade tcnica; caso contrrio, o nvel de dificuldade
para se implementar as caractersticas poder influenciar a priorizao realizada
pelo cliente, e o resultado do processo poder ficar comprometido a ponto de no
atender as reais necessidades do cliente. Existir oportunidade para que as
questes tcnicas sejam consideradas aps o processo de priorizao. No nosso
exemplo de projeto, assumimos que foi realizada uma votao para a priorizao
das caractersticas usando uma escala crtica-importante-til; os resultados deste
exerccio esto apresentados na Tabela 201.
155
Prioridade
Crtica
Crtica
Crtica
Importante
Importante
Importante
til
til
Avaliando o Esforo
A priorizao apenas uma pea do quebra-cabea do escopo. Afinal de contas,
se pudssemos implementar todas as caractersticas de uma s vez, no seria
necessria a priorizao. No entanto, independentemente de termos ou no o
potencial de implementar o conjunto de caractersticas de uma s vez, a verdade
que ainda no temos, nem como imaginar, quanto desse total temos reais
condies de fazer e, conseqentemente, no temos condies de traar o
baseline do projeto.
O prximo passo estabelecer, de maneira aproximada, o esforo necessrio para
implementar cada uma das caractersticas do baseline proposto. Vale lembrar que,
nesta fase, existem poucas informaes disponveis; ns ainda no detalhamos os
requisitos; muito menos definimos algum projeto no qual pudssemos utilizar
para balizar as nossas estimativas. O melhor que podemos fazer determinar, em
ordem de magnitude grosseira, o nvel do esforo de cada caracterstica.
Estimar esforos nesta fase precoce uma Habilidade de Equipe que aprendida.
Naturalmente, a equipe de engenharia relutar em fornecer estimativas sem que
as caractersticas e requisitos tenham sido totalmente entendidos. Porm, este
primeiro corte, durante o gerenciamento de escopo, deve ocorrer antes que esses
detalhes sejam conhecidos.
Permita-nos assumir que o gerente de produto ou de projeto seja o campeo de
nosso projeto e que tenha o seguinte dilogo com os desenvolvedores do projeto7.
A equipe pode querer usar equipe-semanas ou equipe-meses como uma estimativa aproximada do impacto
total de uma caracterstica sobre o projeto. Esta heurstica grosseira serve como substituto para uma estimativa mais
detalhada e comprovadamente melhor do que o resultado deste dilogo. Assim, aos usar estes totais e o total de
tempo disponvel para o projeto, a equipe pode determinar onde traar o baseline inicial. Se o baseline contiver o
conjunto de caractersticas crticas, tudo bem, seno, o projeto estar fora do escopo e um novo projeto, porm
menor dever ser definido.
156
Gerente de Produto:
Gerente de Produto:
157
Prioridade
Esforo
Crtica
Mdio
Crtica
Alto
Crtica
Baixo
Importante
Alto
Importante
Baixo
Importante
Baixo
til
Baixo
til
Alto
Prioridade
Esforo
Risco
Crtica
Mdio
Baixo
Crtica
Alto
Mdio
Crtica
Baixo
Alto
Importante
Alto
Mdio
Importante
Baixo
Alto
Importante
Baixo
Baixo
til
Baixo
Alto
til
Alto
Baixo
158
Reduzindo o Escopo
Ns j fizemos substancial progresso. Ns priorizamos um conjunto de
caractersticas com esforo e risco associados. Note que normalmente no existe
correlao entre a prioridade, esforo e risco. Alm disso, a vrios itens crticos
so de baixo esforo; vrios itens que so teis exigem alto esforo. Isso pode
ajudar a equipe na priorizao de caractersticas. Por exemplo, uma caracterstica
crtica, com esforo mdio e de baixo risco pode ser um candidato para receber
recursos de projeto imediato. Entre esses extremos, podemos encontrar o ponto
ideal, onde podemos aplicar nossos recursos pr-definidos de forma a maximizar
os benefcios que sero disponibilizados ao cliente. A Tabela 204 fornece um
pequeno guia para priorizar o desenvolvimento de caractersticas crticas com
base nesses atributos.
Tabela 204 Tcnicas de priorizao de escopo
Atributos
Considere
Prioridade: Crtica
Esforo: Alto
Risco: Alto
Prioridade: Crtica
Esforo: Alto
Risco: Baixo
Prioridade: Crtica
Esforo: Baixo
Risco: Baixo
equipe for de que o escopo est acima de 100%, a lista ter que ser cortada sem
discusso.
O prximo passo complicado. Se ns assumimos, por exemplo, que as
caractersticas esto acima de 200% do escopo, o baseline deve ser cortado pela
metade ou mais. Como fazer isso?
A primeira considerao se podemos realizar somente os itens crticos da lista.
Pergunte ao gerente de projeto, Se tudo falhar, podemos garantir ao menos os
itens crticos no prazo final? Afinal de contas, se ns tivermos aplicado
corretamente o esquema de priorizao, somente mais ou menos um tero dos
itens da lista sero crticos para a release. A menos que algumas caractersticas
crticas representem um nvel de esforo desproporcionalmente alto, a resposta
deveria ser sim, mesmo se o escopo seja de 200%. Se a resposta sim, e em nossa
experincia sempre sim, at mesmo nesse primeiro corte, podemos iniciar um
plano. Se a resposta for no, o projeto est muito acima do escopo (300%-400%
ou mais) , e um projeto de menor escopo deve ser definido e repetido o processo
de priorizao.
Desde que a nossa abordagem foi grosseira, no podemos assegurar quantos item
alm dos crticos podem ser realizados. As estimativas de esforo, com base nos
requisitos mais detalhados e nas estimativas de viabilidade tcnica, podem ser
usados para refinar o prximo baseline. (Alm disso, esta a hora de fazer o
plano detalhado do projeto para validar as suposies que fizemos).
No entanto, pela nossa experincia, traar o baseline contendo apenas os
requisitos crticos e incluir um ou dois itens importantes, suficiente para muitos
projetos do mundo real. Deixe que a equipe de desenvolvimento decida quais
itens importantes iro incluir durante o progresso do projeto. Clora, isso no
cientfico. Porm, funciona!
Se as expectativas forem estabelecidas e gerenciadas corretamente, qualquer coisa
que possa ser executada num futuro baseline ser um bnus. A Tabela 205 aplica
esta simples heurstica ao baseline de nosso projeto exemplo.
Tabela 205 Lista de caractersticas priorizadas
Caracterstica
Prioridade
Esforo
Risco
Crtica
Mdio
Baixo
Crtica
Alto
Mdio
Crtica
Baixo
Alto
Importante
Mdio
Mdio
Baseline (as caractersticas acima desta linha so caractersticas acordadas com o cliente)
Caracterstica 2: Segurana multiusurio
Importante
Baixo
Alto
Importante
Baixo
Baixo
til
Baixo
Alto
til
Alto
Baixo
160
O Caso de Estudos
Depois de executar o workshop de requisitos, a equipe do HOLIS recebeu a
incumbncia de avaliar o nvel de esforo de cada caracterstica e apresentar um
primeiro rascunho do baseline v1.0. Um gerenciamento rigoroso seria aplicado
devido s restries impostas equipe, incluindo a data limite de ter que
disponibilizar um prottipo para uma exposio em Dezembro e a data (rgida) de
uma release que deveria estar pronta em Janeiro8. A equipe estimou o nvel de
esforo de cada caracterstica via a heurstica alto-mdio-baixo e ento adicionou
a sua avaliao de risco para cada caracterstica. A Tabela 206 apresenta a lista
total de caractersticas, com o acrscimo desses atributos.
Para o prximo passo, a equipe forneceu estimativas grosseiras para cada
caracterstica e desenvolveu um plano de projeto detalhado mostrando certas
interdependncias e marcos de projeto crticos. Alm disso, aps a negociao
com o departamento de marketing, o qual, por sua vez, negociou com Raquel (seu
distribuidor internacional), a equipe determinou que, na release 1.0, era adequado
internacionalizar apenas a interface de usurio do UCC, o que reduziu
imensamente o escopo desta caracterstica. A internacionalizao final do
software de interface para Programador PC (opcional) poder esperar at a verso
2.0. Isso fez com que a equipe alterasse a caracterstica 25 de Interface de usurio
internacionalizado para Interface UCC internacionalizado e a adicionasse uma
Durante o desenvolvimento, a equipe decidiu que na prtica, tinha at o final de Fevereiro para liberar a verso 1.0
final. Com isso houve a adio de mais 6 semanas cruciais, pois a equipe estava convencida de que precisava
realizar modificaes finais, com base no feedback obtido na exposio.
161
Caractersticas
Votos
Esforo
Risco
23
121
Mdio
Baixo
16
107
Baixo
Baixo
105
Baixo
Alto
100% de confiabilidade
90
Alto
Alto
88
Alto
Mdio
77
Mdio
Mdio
Mdio
Configurao de ausncias
77
Baixo
74
Baixo
Baixo
73
Alto
Mdio
Caractersticas de entretenimento
66
Baixo
Baixo
20
66
Baixo
Baixo
19
55
Baixo
Alto
52
Alto
Alto
13
9
14
3
2
18
7
50
Mdio
Mdio
50
Mdio
Mdio
44
Alto
Alto
11
44
Baixo
Baixo
15
44
Alto
Alto
10
43
Alto
Alto
22
34
Mdio
Baixo
26
31
Alto
Alto
12
25
Mdio
Mdio
25
24
Mdio
Alto
Alto
21
23
Alto
24
23
N/A
N/A
17
Controle HVAC
22
Alto
Alto
28
Alto
Alto
27
Mdio
Baixo
162
Caractersticas
Votos
Esforo
Risco
Comentrios de Marketing
23
121
Mdio
Baixo
16
107
Baixo
Baixo
105
Baixo
Alto
100% de confiabilidade
90
Alto
Alto
88
Alto
Mdio
77
Mdio
Mdio
Configurao de ausncias
77
Baixo
Mdio
13
74
Baixo
Baixo
73
Alto
Mdio
25
24
Mdio
Mdio
14
Caractersticas de entretenimento
66
Baixo
Baixo
44
Alto
Alto
Baseline obrigatrio v1.0: Todas as coisas acima desta linha devem ser includas ou iremos atrasar a release
20
2
66
Baixo
Baixo
50
Mdio
Mdio
11
44
Baixo
Baixo
22
34
Mdio
Baixo
52
Alto
Alto
19
55
Baixo
Alto
18
50
Mdio
Mdio
15
44
Alto
Alto
10
43
Alto
Alto
26
31
Alto
Alto
12
25
Mdio
Mdio
25
24
Mdio
Alto
21
23
Alto
Alto
24
23
N/A
N/A
17
Controle HVAC
22
Alto
Alto
28
Alto
Alto
27
Mdio
Baixo
163
Captulo 21
Pontos chaves
Gerenciar seu cliente significa engaj-lo no gerenciamento de seus requisitos e no
seu escopo de projeto.
Clientes que so partes do processo sero responsveis pelos resultados.
Fazer o trabalho correto significa fornecer funcionalidade suficiente no tempo
certo para atender as reais necessidades do cliente.
Habilidades de negociao do apoio indispensvel para o desafio de gerenciar
escopo.
Comunicando os Resultados
Se o escopo do projeto tiver que ser reduzido, assegure-se que o cliente esteja
participando desse processo ativamente. Um cliente que faa parte do processo ir
se responsabilizar pelos resultados obtidos. Um cliente excludo desse processo
164
O princpio guia
para o
gerenciamento de
escopo: no prometa
o que provavelmente
no possa ser
cumprido e
liberado.
Conforme voc negocia com o seu cliente, seu princpio guia para estabelecer um
baseline deve ser: no prometa o que provavelmente no possa ser cumprido e
165
Gerenciando o Baseline
Gerentes de desenvolvimento de bem sucedidos criam margens de erro na
estimativa de esforo e levam em considerao o tempo para incorporar mudanas
legitimadas durante o ciclo de desenvolvimento. Esses gerentes tambm resistem
s caractersticas desagradveis, as quais o autor Jerry Weinberg (1995) nos
lembra que o escopo pode se elevar at 50-100% depois de iniciar o projeto. Ao
se concentrar no esforo de desenvolvimento de prioridades crticas do cliente
pode aliviar at os ambientes polticos hostis. Com o escopo negociado dentro de
um nvel atingvel, e com o foco de desenvolvimento sempre voltado para o que
deve ter do cliente, a equipe ir alcanar credibilidade por atender o
cronograma com qualidade e, ocasionalmente, com servios que no podiam ser
previstos com antecedncia.
Todavia, seus clientes (internos ou externos), querem, naturalmente, a maior
quantidade de funcionalidade possvel em cada release do sistema de software.
Afinal de contas, so as funcionalidades liberadas que adicionam valor necessrio
para atender a seus objetivos de negcio. De fato, devemos ter um respeito salutar
com os clientes que esto gerando a demanda, pois so essas funcionalidades que
iro, em ltima instncia, garantir o sucesso no mercado. Clientes competentes, na
realidade, so os nicos que merecem ter demanda por funcionalidades.
No entanto, no considerar a demanda por mais e mais funcionalidades pode
comprometer a qualidade e a viabilidade de todo o projeto. O mais torna-se
inimigo do adequado. O melhor torna-se inimigo do suficientemente bom.
Se ns estivermos trabalhando num setor de negcio onde a fsica esteja mais bem
definida, onde a indstria tenha algumas centenas de anos de experincia em
liberar produtos, as coisas poderiam ser diferentes. No entanto, ns trabalhamos
no mundo do software; onde a fsica indeterminada, os processos so imaturos,
e a tecnologia mutvel. Permita-nos focar, inicialmente, em como fazer um
servio direito: funcionalidade suficiente no tempo certo para atender as reais
necessidades do cliente. Ns podemos refinar nosso processo mais tarde para ver
se podemos superar as expectativas, mas por agora, vamos apenas nos concentrar
em atend-los! Para isso, precisamos gerenciar o baseline.
Uma vez estabelecido, o baseline fornece o centro focal de muitas atividades de
projeto. O baseline de caractersticas pode ser usado para avaliar realisticamente o
progresso. Recursos podem ser ajustados com base no progresso relativo do
baseline. As caractersticas dentro do baseline podem ser refinadas em detalhes
suficientes para satisfazer o desenvolvimento do cdigo. A rastreabilidade de
requisitos pode ser aplicada desde as necessidades do usurio passando pelas
166
Mudana Oficial
O baseline de caractersticas fornece um excelente mecanismo para gerenciar
mudanas de alto-nvel. Por exemplo, quando o cliente solicita uma nova
capacidade do sistema (uma mudana oficial) e essa capacidade no parte do
baseline de caractersticas, o impacto dessa mudana deve ser avaliada antes de
inclu-la no baseline. Se a equipe de projeto tiver realizado um bom trabalho de
definir o baseline antes de comear, a suposio deve ser a de que qualquer
mudana no baseline deve afetar os recursos, o cronograma, ou o conjunto de
caractersticas a serem liberadas na release.
Se os recursos so fixos e o cronograma no puder ser alterado, a equipe de
projeto deve engajar o cliente no processo de tomada de deciso que priorize a
nova caracterstica em relao a outras caractersticas programadas para a release.
Se a nova caracterstica tiver uma prioridade crtica, ela deve, por definio, ser
includa na release, e o cliente e a equipe de projeto devem em conjunto,
determinar quais caractersticas sero excludas da release ou ao menos reduzidas
em suas prioridades, com a reduo associada das expectativas. Se a caracterstica
importante, mas no crtica, a equipe de projeto pode prosseguir com a
implementao da caracterstica na base de grandes esforos, deixando que o
progresso dite se a caracterstica far ou no parte da release.
Mudana No-oficial
Paradoxalmente, o problema de mudanas iniciadas pelo cliente pode ser o mais
fcil de tratar dentre os desafios do gerenciamento de requisitos. O foco do
problema externo, podemos estabelecer certas salvaguardas, e o impacto das
mudanas podem ser avaliados e apresentados aos stakeholders externos.
No entanto, a experincia mostra que a ameaa de uma outra classe de mudanas
muito mais subversivo ao processo de desenvolvimento. No Captulo 34,
discutiremos os damos obscuros dessas mudanas e adquirir munio adicional
para atacar esse desafio de gerenciamento de escopo.
167
Captulo 22
Pontos chaves
O processo de desenvolvimento da equipe define quem est fazendo o que, quando
e como.
No modelo cascata, as atividades progridem atravs de uma seqncia de
passos, com cada passo apoiado nas atividades do passo anterior.
O modelo espiral inicia com uma srie de prottipos dirigidos pelo risco,
seguido por um processo estruturado similar ao modelo cascata.
A abordagem iterativa, um hbrido dos modelos cascata e espiral, separa as fases
do ciclo-de-vida das atividades de software que ocorrem em cada fase.
Independentemente de qual modelo voc use, voc deve desenvolver ao menos
um prottipo inicial para obter o feedback do cliente.
O Modelo Cascata
Boehm (1988a) disse que, j nos anos 50 (1950), a indstria de software,
reconhecendo o custo de descobrir tardiamente defeitos dentro do ciclo-de-vida
de software, adotou um modelo lgico e seqencial, o qual progredia a partir da
fase de requisitos, passando pelas fases de projeto, codificao, e assim por
168
diante. Isso foi o principal avano obtido sobre os modelos anteriores de duas
fases (codificar e corrigir), atravs do qual programadores escreviam um cdigo
inicial e ento o corrigia at que no precisasse mais ser corrigido.
Nos anos 70 (1970), Winston Royce (1970), trabalhando na TRW, definiu o que
ficou conhecido como o modelo cascata de desenvolvimento de software. O
modelo cascata melhorou o modelo estritamente seqencial pelo:
Projeto
Codificao e
teste unitrio
Integrao de
sistema
Operao e
manuteno
Figura 221
Projeto
Codificao
e teste
Integrao
de sistema
Escopo do projeto
Caractersticas a serem liberadas
Operao e
manuteno
Tempo
Prazo final
Figura 222
O Modelo Espiral
O principal estudo do Barry Boehm (1988a) recomendava uma estrutura diferente
para guiar o processo de desenvolvimento de software. Seu modelo espiral de
desenvolvimento de software um modelo funcional para aqueles que acreditam
que o sucesso segue um caminho de desenvolvimento mais orientado a riscos e
incremental (Figura 223).
170
Custo
acumulativo
Progresso atravs dos passos
Determinar objetivos,
alternativas, restries
Avaliar alternativas:
Identificar e resolver riscos
Anlise
de riscos
Anlise
de riscos
Anlise
de riscos
Prottipo 3
Reviso
Plano de requisitos, plano
de ciclo de vida
Anlise
Prottipo 2
de
riscos Prottipo 1
Simulaes, modelos, avaliao da execuo
Conceito de
operao
Requisito de
software
Plano de
desenvolvimento
Plano de integrao
e teste
Prottipo
operacional
Validao de
requisitos
Projeto de
produto de
software
Projeto
detalhado
Codificao
Teste de unidade
Validao e verificao
do projeto
Teste e integrao
Teste de aceitao
Implementao
Figura 223
Desenvolver, verificar o
produto do prximo nvel
171
Prazo Final!
Projeto e
validao de
projeto
Plano de integrao
Prottipo 2
Anlise de
riscos
Validar
Plano de
desenvolvimento
Projeto detalhado
Codificao
Teste de unidade
Integrao
Plano de
requisitos
Conceitos
Validao de
requisitos
Prottipo 1
Requisito de
software
Figura 224
A Abordagem Iterativa
Na dcada passada, muitas equipes migraram para uma nova abordagem, uma que
combina o que existe de melhor nos modelos cascata e espiral e que um hbrido
desses dois. A nova abordagem tambm incorpora algumas construes
adicionais avanadas da disciplina de engenharia de processos de software. A
abordagem iterativa, introduzida por Kruchten (1995), tem sido bem descrito
em inmeros textos, incluindo Kruchten (1999) e Royce (1998). Esta abordagem
tem provado a sua efetividade em vrios tipos de projetos e pode exibir inmeras
vantagens sobre os modelos de desenvolvimento cascata e espiral.
Nos modelos de desenvolvimento de software tradicionais, o tempo se segue
atravs de uma srie de atividades seqenciais, com o requisito precedendo o
projeto, o projeto precedendo a implementao, e assim por diante. Isso parece ser
bastante lgico. Na abordagem iterativa, as fases do ciclo-de-vida no esto
acopladas s atividades lgicas de software que ocorrem em cada fase,
permitindo-nos revisitar as vrias atividades, tais como requisitos, projetos e
implementao, em vrias iteraes do projeto. Alm disso, como no modelo
espiral, cada iterao projetada para reduzir quaisquer riscos presentes no
estgio de atividade de desenvolvimento.
172
Fases do Ciclo-de-Vida
A abordagem iterativa consiste de quatro fases do ciclo-de-vida: concepo,
elaborao, construo e transio, as quais correspondem claramente aos
estados naturais do projeto ao longo do tempo. (Veja a Figura 225).
Concepo
Elaborao
Construo
Transio
Tempo
Figura 225
Iteraes
Dentro de cada fase, o projeto normalmente experimenta vrias iteraes (Figura
226). Uma iterao uma seqncia de atividades com um plano e critrios de
avaliao estabelecidos, resultando em algum tipo de executvel. Cada iterao
construda sobre a funcionalidade da iterao anterior; assim, o projeto
desenvolvido de forma iterativa e incremental.
Concep
Iter
li
Elabora
Iter
h
...
S
Release
Figura 226
(
Relea
Constru
Iter
d
...
Iter
d
Transi
Iter
t
...
...
Release
Release
Release
Release
Release
Release
Workflows
Na abordagem iterativa, as atividades associadas ao desenvolvimento de software
so organizadas num conjunto de workflows. Cada workflow consiste de um
conjunto de atividades logicamente relacionadas, cada um definindo como as
atividades devem ser seqenciadas produzir um produto de trabalho ou artefato
vivel. Embora a quantidade de workflows possa variar, dependendo da empresa
ou das circunstncias do projeto, existem normalmente seis workflows, como
ilustra a Figura 227.
Concepo
Elaborao
Construo
Transio
Workflows do
processo
Requisitos
Anlise e Projeto
Implementao
Teste
Implantao
Workflows do
processo
Gerenciamento de
Figura 227
Uma das premissas desse volume que obter o Sim, mas desde o incio uma
atividade poderosa e a melhor do processo de software.
Resposta: ao menos uma vez, sim, e no. Sim, clientes iro exigir mudanas toda
vez que ele ver um prottipo. No, voc no est condenado. A razo que a
quantidade de mudanas que ocorrem depois que o cliente tiver a oportunidade de
ver, tocar e interagir com a implementao pretendida pequena comparada
resposta do cliente para o primeiro artefato tangvel do processo.
Assim, independentemente do modelo de processo de desenvolvimento utilizado,
embora a nossa preferncia seja o modelo iterativo em projetos de
desenvolvimento, obrigatrio que a atividade de desenvolvimento fornea ao
menos um prottipo de avaliao robusto para obter o feedback do cliente antes
que a maioria das atividades de projeto e codificao seja executada. (Lembra da
atividade de prototipao que Royce (1970) sugeriu em seu primeiro modelo
cascata?). Devido reduo da quantidade de mudanas ao nvel gerencivel, o
desenvolvedor consegue fazer mudanas (normalmente em interfaces de usurio,
relatrios e outras sadas) incrementalmente no projeto, garantido uma
implementao robusta e de altssima qualidade. A partir da, um processo
rigoroso de finalizar atividades de projeto, codificao, testes de unidade, e
integrao de sistema, ir fornecer um slido fundamento para o produto
enquanto que simultaneamente auxilia enormemente nas atividades de garantia de
qualidade e teste.
175
176
Habilidade de Equipe 5
Refinando a Definio do Sistema
177
Needs
Features
Domnio do Problema
Rastreabilidade
Espao da
Soluo
Produto a
ser
construdo
Requisitos de Software
Procedimentos de Teste
Projeto
Docs
Usurio
178
Captulo 23
Requisitos de Software
Pontos chaves
Um conjunto completo de requisitos pode ser determinado pela definio das
entradas, sadas, funes e atributos do sistema, bem como de seu ambiente.
Os requisitos devem excluir informaes relacionadas ao projeto, tais como
cronograma, planos de projeto, oramento e testes, bem como informaes de
projeto.
O processo de requisitos/projeto iterativo; requisitos conduzem a seleo de
certas opes de projeto, as quais por sua vez, iniciam novos requisitos.
Restries de projeto so restries sobre o projeto do sistema, ou do processo
pelo qual um sistema desenvolvido.
Alm disso, essa abstrao de alto-nvel nos permite tomar decises sobre
requisitos excessivamente restritivos logo no incio, isto , as pessoas tm a
oportunidade de adicionar suas perspectivas e valor definio do sistema antes
de fecharem a implementao do sistema. Na Habilidade de Equipe 5, Refinando
a Definio do Sistema, nossa discusso muda para a elaborao detalhada das
caractersticas do sistema, o suficiente para assegurar que as atividades de projeto
e codificao resultem num sistema que atendem plenamente as necessidades do
usurio. Desse modo, ns nos dirigimos para o prximo nvel de especificidade e
detalhes, e criamos um modelo de requisitos rico e profundo para o sistema que
ser construdo. Naturalmente, criamos tambm informaes mais detalhadas, as
quais tero que ser gerenciadas e, para isso, teremos que ser mais organizados
para cuidar desses detalhes adicionais.
O nvel de especificidade necessria neste prximo passo depende de vrios
fatores, incluindo o contexto da aplicao e das habilidades da equipe de
desenvolvimento. Em sistemas de software para equipamentos mdicos de alta
segurana, aeronaves, ou comrcio online, o nvel de especificidade
apropriadamente alto. O processo de refinamento pode incluir mecanismos
formais de garantia de qualidade, revises, inspees, modelagem, e outros
similares. Em sistemas cujas conseqncias sejam menos catastrficas frente a
falhas, o nvel de esforo ser mais modesto. Nestes casos, o trabalho envolvido
179
180
Figura 231
Elementos do sistema
Entradas do sistema
Sadas do sistema
Funes do sistema
Atributos do sistema
Atributos do ambiente do sistema
Requisitos
software
Requisitos de Software
Cronograma
Planos de
Projeto
Orament
Testes
183
Figura 232
Diagrama de Pareto
Embora a referncia linguagem Visual Basic parea ser uma violao bastante
grosseira das orientaes recomendadas (pois no representa uma entrada, sada,
funo, ou atributo comportamental), til perguntar: Quem decidiu impor o
requisito de que o histograma deve ser implementado em Visual Basic, e por que
foi tomada essa deciso?. As possveis respostas para esta questo podem ser:
possa ser importada por outros programas ou enviadas para uma extranet
corporativa? As caractersticas descritas no documento da Viso podem ser
sempre preenchidas de vrias maneiras, alguma das quais trazem vrias
conseqncias implementao.
Em muitos casos, a descrio de um problema, a partir do qual um requisito pode
ser formulado, influenciada pela percepo do usurio da potencial soluo
disponvel para resolver o problema. O mesmo verdade para os desenvolvedores
que participam com o usurio na formulao das caractersticas que compem o
documento da Viso e de requisitos. Como um antigo provrbio nos lembra, se
sua nica ferramenta um martelo, todos os seus problemas iro se parecer com
um prego. Mas precisamos ficar atentos nas restries de implementao
desnecessrias e inconsistentes infiltradas nos requisitos; sempre que pudermos,
precisamos remov-las.
Requisitos: O
que o sistema
precisa fazer
Projeto:
Como o
sistema
ir fazer
Ns contamos essa estria dessa maneira por uma razo. melhor entender os
requisitos antes de projet-los, e muitas restries (use a biblioteca de classes
XYZ para acessar o banco de dados) so decises de projeto importantes
registrados nas propriedades dos requisitos, de tal forma que podemos assegurar
que os alcanamos as razes contratuais, ou talvez uma mais legtima, as razes
tcnicas.
Se no pudermos fazer essa diferenciao de alguma forma, o quadro deve ficar
muito confuso, e no poderemos diferenciar os requisitos das informaes de
projeto. Alm disso, no saberamos quem o responsvel por o que no processo
de desenvolvimento. No pior caso, nossos clientes iro ditar o projeto, e nossos
projetistas iro ditar os requisitos.
Mas uma complicao sutil e ainda mais sria fundamenta esta discusso e
camufla esse simples paradigma que apresentamos. Retornando ao nosso exemplo
de estudo de casos, se a equipe toma uma deciso de projeto, tal como a seleo
de uma tecnologia PC para executar o subsistema UCC do HOLIS,
provavelmente traria algum impacto externo ao usurio. Por exemplo, uma tela de
185
Tipos de
Requisitos
Requisitos de
Software
Requisitos
Funcionais
Figura 233
Restries de
Projeto
Requisitos NoFuncionais
Tipos de Requisitos
187
Usabilidade
Confiabilidade
Desempenho
Suportabilidade
188