Escolar Documentos
Profissional Documentos
Cultura Documentos
DA FBRICA DE SOFTWARE
A complexidade e a profundidade dos componentes da Fbrica de Software variam
conforme seu escopo.
Por exemplo, o controle de requisitos de um escopo de Fbrica de Projetos bem
mais complexo do que o de um escopo de uma Fbrica de Programas.
H alguns casos em que determinados processos aparecem no escopo de Projetos e
no aparecem no escopo de Programas.
A Figura 8.1 apresenta esse entendimento.
Para a aplicao dos componentes do modelo genrico, importante levar em
considerao essa matriz de complexidade de processo.
2 FBRICA DE PROGRAMAS
O objetivo da Fbrica de Programas codificar e testar programas conforme um
acordo de nveis de servios com o cliente ou usurio, considerando especificao padro
de programas, critrios de qualidade e tempo de entrega.
A seguir, apresentado um modelo de Fbrica de Software, considerando o
Framework Geral do Processo de Software proposto pelos autores no Captulo 5 deste livro.
Esse modelo apresenta os componentes requeridos para uma Fbrica de Programas.
2.1
2.2
2.2.1 Demanda
O volume de demanda para uma Fbrica de Software crtico para seu sucesso.
Ao negociarmos com nossos clientes externos ou internos, imprescindvel que
haja uma demanda mnima mensal para ser atendida pela Fbrica (se no h essa demanda
mnima, o prejuzo na operao muito provvel).
Essa demanda pode ser negociada em nvel de homens/hora ou em nmero de
pontos de funo, por exemplo.
Quando do planejamento da capacidade da fbrica, importante tambm saber os
picos da demanda, pois isso pode influenciar negativamente nos acordos de nveis de
servio.
O compromisso de demanda mnima deve ser negociado e colocado em contrato,
assim como o tempo necessrio para ajustes na fbrica que visam ao atendimento de uma
nova linguagem de programao.
Grandes flutuaes de demanda devem ser informadas com antecedncia pelo
cliente. Quando ocorrem grandes flutuaes temporrias, deve ser previsto em contrato
acordo de nveis de servios flexveis. Por exemplo, vai-se gastar mais tempo para atender a
uma ordem de servio.
Caso o cliente queira usar o padro dele, devemos analis-lo e, se for o caso, sugerir
melhorias que visam garantir a qualidade da operao da Fbrica de Software.
De qualquer forma, deve haver um padro (podemos ter tantos quantos forem os
clientes da fbrica) que garanta a execuo das tarefas com a qualidade requerida.
Devemos incluir em contrato o padro a ser seguido.
servio;
2.2.4 Estimativas
A fbrica tem que ter tabelas padres de estimativas de tempo de atendimento de
uma ordem de servio (o que chamamos de lead time) e tempos padres de esforo efetivo
de programao (esta para uso interno).
As tabelas padres devem ser construdas para cada linguagem de programao. No
princpio, so baseadas na experincia do prprio pessoal.
Uma alternativa de construo de uma tabela desse tipo fazer uma comparao
com outras fbricas existentes no mercado.
O cliente deve usar as tabelas de estimativa quando enviar as ordens de servio para
a Fbrica de Programas, ou seja, ele j sabe quanto tempo vai ser despendido para receber
os programas codificados.
Casos em que no se devem usar tabelas padres: quando a tecnologia nova,
emergente, ningum ainda conhece. Nesse caso, a estimativa feita ordem por ordem.
As tabelas padres de tempos de atendimento geralmente fazem parte do acordo de
nvel de servio.
Essas regras devem estar claras no contrato de prestao de servios.
2.2.7 Mtricas
Independentemente dos acordos dos nveis de servio, a Fbrica de Programas deve
implementar outras mtricas para sua gesto.
Nesse contexto, as principais mtricas referem-se a:
2.2.8 Flexibilidade
Uma Fbrica de Programas tem que ter flexibilidade de atendimento demanda.
A flexibilidade somente conseguida atravs dos programadores e do programa de
parceria que a fbrica venha a ter.
Cada programador deve ser expert em mais de uma linguagem de programao. Por
exemplo, ter domnio sobre uma linguagem de plataforma distribuda e duas de mainframe
ou vice-versa. Portanto, o treinamento contnuo e monitorado crtico.
A alternativa de usar parceiros, principalmente aqueles que tm flexibilidade de
atender a flutuaes da demanda da fbrica, uma boa opo quando a capacidade da
2.2.9
para que no sejam usados por terceiros ou por concorrentes, que se utilizam da mesma
Fbrica de Programas.
Outra questo freqentemente levantada pelos clientes quanto ao Plano de
Contingncia (ou de risco) para a operao, visto que pode afetar seu prprio negcio.
Nesse item, a fbrica deve demonstrar capacidade de garantir esses requisitos.
Alternativas freqentemente usadas pelas fbricas so:
utilizar um Internet data center com equipamentos totalmente dedicados a cada cliente.
Outra questo que est vindo tona quanto implementao de normas de
segurana da informao, como a BS7799 (British Standard) ou ISO 17799.
Podemos dizer que a fbrica certificada nessa norma um item ganhador pedido,
principalmente para clientes internacionais.
demanda.
Isso significa dizer que um recurso humano da fbrica e no de uma clula de
produo. A clula "lgica". Podemos estabelecer a organizao por clula, porm sempre
tendo em mente que um recurso pertence temporariamente clula. Com isso, evitamos
que uma clula esteja sobrecarregada e outra ociosa.
O compartilhamento dinmico de recursos humanos vital para o atendimento aos
acordos de nveis de servios e para manter a produtividade da fbrica.
2.3
2.4
Organizao da produo
site;
2.5
2.6
O que vital para comear a Fbrica de
Programas
A Figura 8.7 apresenta, em nosso entender, o que preciso no primero minuto de
jogo para comear a operar uma Fbrica de Programas, alm, claro de instalaes e
recursos computacionais adequados.
Em um primeiro momento, a Fbrica de Programas pode comear a usar o prprio
pessoal da produo para o suporte de software e em engenharia de software. Para tanto,
no necessita de uma equipe voltada para o suporte em engenharia de software e outra para
o suporte tcnico.
A camada de gesto da operao e do projeto deve ter um nvel adequado de
automao, que visa implementar controles de demanda, tracking das ordens de servio e
controle de recursos.
Algumas fbricas no mercado comeam com um conjunto de planilhas para fazer
esse trabalho. Quando uma coisa muito pequena e no h grande visibilidade junto ao
cliente, at passa. Se, porm, a operao j tiver mais de 20 a 30 profissionais e
visibilidade, ento recomendvel que existam aparatos mais slidos de controle.
2.7
O que pode ser terceirizado pela Fbrica
de Programas
Para manter o custo da fbrica em um patamar competitivo, devemos definir o que
se pode constituir em custo varivel.
auditorias de compliance;
estratgico;
execuo de treinamentos;
demanda).
3 FBRICA DE PROJETOS
O objetivo da Fbrica de Projetos o de desenvolver e manter softwares conforme
um acordo de nveis de servios com o cliente ou usurio, considerando requisitos de prazo,
custo, qualidade e escopo.
A seguir, apresentado um modelo de Fbrica de Projetos, considerando o
"Framework Geral do Processo de Software", proposto pelos autores no Captulo 5 deste
livro.
Esse modelo apresenta os componentes requeridos para uma Fbrica de Projetos.
3.1
indstrias diferentes. Quando a fbrica focaliza poucos clientes do mesmo ramo de negcio,
ela pode ganhar escala em funo da especialidade.
Outros trs fatores de aumento de complexidade so o desenvolvimento de projetos
de software aplicativos em mltiplas plataformas, sua manuteno posterior e o nvel de
integrao entre os aplicativos.
As linhas de processo da Fbrica de Projetos tambm apresentam diferenciao,
medida que avanamos no ciclo de vida do desenvolvimento do software.
Por exemplo, em nvel de especificao de requisitos, o conhecimento requerido
do negcio; portanto, a organizao da linha deve ser por negcio. Imagine uma Fbrica de
Projetos atendendo a um banco comercial; teramos uma linha para aplicativos de
vanguarda (caixa e auto-atendimento), para a gesto (administrao de risco) e para as
aplicaes (poupana), e assim sucessivamente.
Entretanto, em relao ao desenvolvimento do projeto, o conhecimento requerido
sobre a arquitetura dos softwares que do sustentao ao negcio e tecnologia especfica
de projeto detalhado, de construo e das ferramentas que apiam o ambiente. muito
comum encontrarmos ambientes de testes automatizados para a plataforma distribuda
distintos dos ambientes de testes para a plataforma Mainframe.
3.2
3.2.1 Demanda
Uma Fbrica de Projetos pode apresentar basicamente trs grandes tipos de
demandas, quais sejam: novos desenvolvimentos, manuteno de sistemas e projetos fsicos
(que geralmente fazem parte da manuteno, mas podem ser considerados separadamente).
Por manuteno tambm podemos entender "customizaes" de softwares, como
software de Enterprise Resource Planning, Customer Relationship Management, Billing
etc.
Geralmente, a demanda de novos projetos no apresenta escala. Cada projeto uma
equipe diferente.
O mesmo no ocorre com a manuteno e os projetos fsicos. Ambos tm o mesmo
comportamento da Fbrica de Programas, ou seja, podem ter escala.
O principal tipo de demanda que a Fbrica de Projetos deve negociar a de
manuteno e projetos fsicos, que pode ser negociada em termos de volume de homenshora ou pontos de funo.
Acordos de nveis de servio podem ser estabelecidos para cada tipo de demanda;
entretanto, tratando-se de novos projetos os acordos so individuais, por projeto.
Aqui tambm compromissos de demanda mnimos devem ser negociados com o
cliente, principalmente em termos de manuteno e projetos fsicos.
Em relao a novos projetos, a negociao deve ser em funo dos tipos de
3.2.4 Estimativas
No caso da Fbrica de Projetos, a questo estimativa mais complexa.
Estimativa aqui se refere a: estimativa de tamanho do software, prazo, esfOro e
custo, principalmente. A estimativa deve ser feita com base na definio do escopo do
projeto.
Quando no temos uma fbrica dedicada, a estimativa no tem como ser feita com
base em dados histricos; quando temos uma fbrica dedicada, possvel construir
estimativas com base em histricos.
Em termos de novos projetos em fbricas no dedicadas, uma alternativa o uso de
tcnicas de estimativa de tamanho de software, como a Anlise por Pontos de Funo
apoiada pelo uso de ferramentas de estimativas de software, tais como a KnowledgePlan,
Slim, COCOMO, Estimate Professional, Costexpert etc.
No caso de novos projetos em fbricas dedicadas, podemos usar uma base de dados
de histricos de projetos no mesmo "negcio" e mesmas caractersticas em termos de
plataforma tecnolgica. Tambm no se pode descartar o uso de tcnicas de estimativa,
como o Ponto de Funo, nem deixar de calibrar ferramentas de estimativas de software
com dados do realizado da fbrica.
No caso de manutenes e projetos fsicos, podemos usar a mesma abordagem
utilizada na Fbrica de Programas, atravs da criao de tabelas padres de estimativa
baseadas em atributos de complexidade da ordem de servio.
Uma forma de construir essas tabelas olhar para trs com base em uma amostra de
ordens de servio, agrupando-as conforme critrios de complexidade e determinando
intervalos de valores para prazo, esforo e custo, considerando valores mdios e desvios
padres.
Para manutenes evolutivas, uma vez que tenhamos o inventrio dos pontos de
funo dos aplicativos em termos de entradas, sadas, interfaces, arquivos lgicos internos
(mantidos pela aplicao) e consultas, tambm podemos empregar a tcnica de Anlise por
Pontos de Funo.
Para manutenes e projetos fsicos (que no sejam corretivas), o cliente j poderia
usar as tabelas de estimativa quando enviar as ordens de servio para a Fbrica de Projetos,
ou seja, ele j sabe quanto tempo vai ser despendido para receber a manuteno
completada.
As tabelas padres de tempos de atendimento geralmente fazem parte do acordo de
nvel de servio.
Essas regras para a Fbrica de Projetos tambm devem estar claras no contrato de
prestao de servios.
3.2.7 Mtricas
Independentemente dos acordos dos nveis de servio, a Fbrica de Projetos deve
implementar outras mtricas para sua gesto.
Nesse contexto, as principais mtricas referem-se a:
exatido das estimativas (realizado em termos de tamanho, prazo, esforo e custo versus estimativas respectivas, apresentando variaes em
percentuais);
produtividade da fbrica em termos de pontos de funo por homemms (produtividade da manuteno e de novos projetos de desenvolvimento);
de qualidade;
3.2.8 Flexibilidade
A flexibilidade a marca da fbrica genrica. Ela tem que ter a capacidade de
implementar uma nova linha de servio rapidamente. Uma das estratgias para a fbrica
genrica ser flexvel atravs do uso de parceiros especialistas. Nesse caso, a fbrica entra
com a expertise em gerenciamento e testes, por exemplo, e o parceiro com o domnio da
tecnologia de desenvolvimento.
J a fbrica dedicada pode ser menos flexvel, pois depende de um nico cliente
para determinar seu direcionamento tecnolgico e as mudanas so feitas com bastante
antecedncia.
De qualquer forma, as pessoas tambm fazem diferena na Fbrica de Projetos. Elas
deveriam estar aptas a trabalhar com metodologias de desenvolvimento tradicionais, como
a Anlise Essencial, e tambm com a Unified Modeling Language (UML). Essa
flexibilidade reduz custo, pois possibilita o intercmbio de profissionais de uma linha de
servio para outra.
Portanto, treinamento contnuo a chave.
3.3
A estrutura organizacional de uma Fbrica de Projetos deve ser construda com base
em seus componentes e de seu foco, assim como nas tecnologias de processo escolhidas.
As Figuras 8.9 e 8.10 apresentam alternativas de estrutura organizacional para a
Fbrica de Projetos, considerando a dicotomia das fbricas no dedicadas e dedicadas.
Um aspecto a considerar acerca da Fbrica de Projetos que aglutinamos em uma
rea nica o controle da qualidade com os testes. Portanto, essa rea responsvel pelas
inspees e gesto dos testes de todos os produtos de software gerados pelos projetos. A
rea tambm pode ser a responsvel por autorizar a implantao do software no cliente ou
usurio.
3.4
Organizao da produo
no;
no;
a Fbrica de Projetos pode (no necessariamente) fazer uso da
Fbrica de Programas e de uma Fbrica de Testes;
3.5
3.6
O que vital para comear a Fbrica de
Software
A Figura 8.15 apresenta, em nosso entender, o que preciso no primeiro minuto de
jogo para comear a operar uma Fbrica de Projetos, considerando instalaes de
automao de suporte.
O nvel de exigncia da Fbrica de Projetos em termos de componentes bem maior
do que o da Fbrica de Programas.
Dependendo do porte da Fbrica de Projetos, ela deve comear j com alguns dos
componentes automatizados, principalmente:
gesto da demanda;
controle de recursos;
controle de custos;
controle do prazo;
controle de requisitos;
modelagem de software;
Gesto da Configurao.
3.7
O que pode ser terceirizado pela Fbrica
de Projetos
Para manter o custo da fbrica em um patamar competitivo, devemos definir o que
pode constituir-se em custo varivel.
Algumas atividades candidatas so:
auditorias de compliance;
execuo de treinamentos;
tgico;
4.1
mantidos;
instalados;
absorvidos;
contratados;
Uma vez que esses dados so coletados, devemos planejar a operao. Para tal
importante a elaborao de um planejamento, seguindo os moldes preconizados pelo
PMBOK, com o plano do projeto, cronograma, oramento de custo, plano de risco, da
qualidade etc.
4.1.6 A
Distribuda
Operao
de
Outsourcing
Pode
Ser
4.2
Organizao da produo
4.3
Fatores crticos
operao de outsourcing
de
sucesso
para
Fbrica de Software.
o processo de emprego dessa fora de trabalho conforme a
distribuio da tarefa, que deve seguir acordos de nveis de servios;
postos.
O processo jurdico teria as seguintes caractersticas: