Professional Documents
Culture Documents
SALVADOR
2005
FACULDADE RUY BARBOSA
ALLAN AZEVEDO TEIXEIRA DA ROCHA
SALVADOR
2005
1
Aos meus avós maternos,
símbolos de compromisso e
dedicação, pelo conjunto de
valores éticos e morais que me
transmitiram ao longo da vida.
2
AGRADECIMENTOS
Ao Profº Jaime Gama, meu orientador e mentor, pelo apoio e dedicação com os
quais sempre pude contar enquanto trabalhamos juntos.
3
Não escolhi ser um homem comum. É
meu direito ser diferente, ser
singular, incomum, desenvolver os
talentos que Deus me deu. Isto é o
que eu sou.
Bertold Brecht
4
RESUMO
5
LISTA DE ILUSTRAÇÕES
6
LISTA DE TABELAS
7
SUMÁRIO
1 INTRODUÇÃO ...................................................................................................................10
8
5 CONCLUSÃO......................................................................................................................58
9
1 INTRODUÇÃO
10
O setor produtivo das fábricas de software pode ser organizado de algumas formas
distintas. Duas destas formas são a estruturação por equipes de projetos, onde é montado um
time de desenvolvimento específico para cada projeto; e a organização por células de
produção, baseada em uma linha de produção, onde as células atendem às demandas de
diversos projetos simultaneamente. No entanto, qualquer que seja a organização da produção
adotada, ela apresenta pontos positivos e negativos, que privilegiam ou dificultam cada
aspecto do processo de construção de software (MEDEIROS, 2004).
O objetivo deste trabalho é especificar uma forma alternativa de organização da
produção para fábricas de software, baseada nas estruturações por equipes de projeto e por
células de produção. Esta nova estrutura, chamada de “Organização Híbrida da Produção”,
combina aspectos de cada um dos dois modelos originais, objetivando minimizar os pontos
negativos inerentes a cada um deles isoladamente e potencializar suas vantagens. Esse método
de combinação de características de dois modelos distintos, com o objetivo de propor uma
formulação híbrida, foi inspirado em Magalhães e Maciel (2003), onde as autoras
combinaram elementos de duas metodologias de desenvolvimento de software, gerando,
posteriormente, uma metodologia híbrida, chamada de RUXP1. Neste trabalho esta técnica é
estendida e aplicada para estruturas organizacionais.
A relevância do trabalho está no oferecimento de mais uma forma de organização
da produção que pode ser utilizada pelas empresas de desenvolvimento. A especificação de
uma estrutura produtiva opcional permite que as fábricas de software avaliem suas vantagens
e desvantagens e a adotem, caso a considerem adequada às suas necessidades. Além disso, o
trabalho avalia se é possível combinar aspectos da organização por equipes de projeto e por
células de produção para construtores de software, como forma de obter maior adequação à
realidade da empresa. Por fim, outra contribuição do projeto está na própria natureza do
estudo, que, ao contrário de focar na metodologia de desenvolvimento, constantemente
abordada em vários trabalhos ao longo das últimas décadas, analisa a relevância da
organização da produção da fábrica de software na sua operação e geração dos seus produtos.
Para atingir os resultados esperados, inicialmente são determinados quais aspectos
das formas de organização da produção serão analisados neste trabalho, de maneira a atender
ao objetivo e escopo do projeto. Em seguida, é feita uma análise, baseada no referencial
teórico existente, das formas de organização tradicionais de fábrica de software, com base nos
aspectos escolhidos, identificando suas vantagens, desvantagens e situações às quais mais se
adaptam. Prosseguindo, é especificada uma nova forma de organização, a Organização
11
Híbrida da Produção, baseada nos modelos analisados, de forma a minimizar os problemas
identificados e potencializar as vantagens. Após essa etapa, é realizado um estudo de caso que
visa verificar se sua utilização é factível de implantação e utilização.
O trabalho está organizado conforme descrito a seguir. O capítulo 2 apresenta
uma análise dos modelos de organização por células de produção e por equipes de projeto,
com base nos critérios considerados relevantes para este trabalho. O capítulo 3 traz a
especificação da organização proposta, a Organização Híbrida da Produção. O capítulo 4
descreve o estudo de caso realizado em um centro de pesquisa que atua com desenvolvimento
de software. E, por fim, o capítulo 5 representa a seção destinada às conclusões do trabalho.
1
Rational Unified eXtreme Process (MAGALHÃES; MACIEL, 2003)
12
2 ANÁLISE TEÓRICA DOS ARRANJOS PRODUTIVOS PARA A
CONSTRUÇÃO DE SOFTWARE
13
que propõe um modelo de avaliação de melhoria do processo de software; os Modelos CMM
(Capability Maturity Model)2; CMMI (Capability Maturity Model Integration)3 etc.
Modelos não ligados diretamente ao processo de software também têm sido
utilizados na gerência de projetos de desenvolvimento, como a Norma ISO/IEC 9001:2000 –
Sistemas de Gestão da Qualidade – Requisitos, que apresenta um modelo descritivo para a
montagem de um Sistema de Gestão da Qualidade para a organização; o PMBOK 2000
(Project Management Body of Knowledge) do PMI (Project Management Institute)4, que
propõe um modelo para a gerência de projetos de qualquer natureza, dentre outros.
Atualmente, o IEEE (Institute of Electrical and Electronics Engineers)5
disponibilizou o SWEBOK (Software Engineering Body of Knowledge) (SWEBOK, 2004),
que está em sua terceira versão, Ironman Version, e tem o objetivo de ser um guia genérico
para práticas da Engenharia de Software.
2
www.sei.cmu.edu/cmm/
3
www.sei.cmu.edu/cmmi/
4
www.pmi.org
5
www.ieee.org
14
Em resumo, Fernandes (2004) define fábrica de software da seguinte forma:
Um processo estruturado, controlado e melhorado de forma contínua,
considerando abordagens de engenharia industrial, orientado para o
atendimento a múltiplas demandas de natureza e escopo distintas, visando à
geração de produtos de software, conforme os requerimentos documentados
dos usuários e/ou clientes, da forma mais produtiva e econômica possível.
15
A organização da produção por equipes de projeto caracteriza-se pelo
agrupamento dos colaboradores em função de um determinado objetivo. Cada projeto6 possui
metas bem definidas, assim como o seu responsável, o Gerente de Projeto, e sua equipe
executora. Essa estrutura é mantida desde o início até o fim (ou interrupção) do
empreendimento7. É possível, porém não muito comum, que, ao longo das fases do projeto,
alguns colaboradores entrem ou saiam da equipe, de acordo com a demanda de trabalho.
Existe a possibilidade, também, de que um colaborador atue em mais de uma equipe de
projeto, se assim permitir a sua disponibilidade (VASCONCELLOS; HEMSLEY, 1997).
A Figura 1 apresenta um típico organograma de uma organização estruturada por
projetos. É possível verificar que cada equipe de projetos possui seu próprio Gerente de
Projeto. Eles estão no mesmo nível hierárquico entre si, e todos estão subordinados,
diretamente, à alta Direção Executiva (CEO – Chief Executive Officer) (HELDMAN, 2005).
CEO
6
“Um projeto é um empreendimento temporário com o objetivo de criar um produto ou serviço único”.
(PMBOK 2000)
7
Ao longo do trabalho o termo “empreendimento” será utilizado como sinônimo da expressão “projeto”.
16
departamentalização funcional. Esse tipo de organização caracteriza-se, também, pelo
agrupamento das pessoas de acordo com a área de conhecimento e as atividades a serem
realizadas (VASCONCELLOS; HEMSLEY, 1997). As características ligadas à organização
do trabalho da estruturação por células de produção, portanto, podem ser, na sua maioria,
mapeadas a partir do estudo dos aspectos da departamentalização funcional. Para evitar
equívocos, é importante ressaltar que organização da produção em células de produção não
guarda relação direta com a Estrutura Organizacional Celular8, cujo estudo foge ao escopo
deste trabalho.
A Figura 2 apresenta um típico organograma de uma organização estruturada por
departamentalização funcional. É possível verificar que cada unidade foi concebida conforme
a similaridade dos seus processos e área de atuação. As áreas possuem o mesmo nível
hierárquico entre si, e todas estão subordinados, diretamente, à alta Direção Executiva (CEO –
Chief Executive Officer) (HELDMAN, 2005).
CEO
8
A Estrutura Organizacional Celular é uma forma de organização empresarial, proposta por Shannon, tem como
principais características a ausência quase que completa de uma estruturação formalizada e grande flexibilidade
de comunicação. Esta estruturação só é recomendável em pequenas empresas, devido à alta informalidade do
modelo (Vasconcellos; Hemsley, 1997).
17
Figura 3 – Organização da produção da Fábrica de Software
Fonte: UNITECH, 2004
18
Vasconcellos e Hemsley (1997) elegem alguns fatores de comparação9 entre a
organização por equipes de projetos e a estruturação funcional – mapeada na organização por
células de produção, conforme proposto na seção anterior. Os aspectos apontados são:
abrangência, capacitação técnica da instituição, qualidade dos projetos, cumprimento dos
prazos dos projetos, satisfação do colaborador, atendimento ao cliente, uso de recursos,
existência de um único responsável pelo projeto e esforço de administração.
O interesse do presente trabalho, no entanto, restringe-se à organização da
produção em empresas de desenvolvimento de sistemas. As características peculiares do
software, que o distinguem dos demais artefatos industrializados e manufaturados produzidos
pelo homem, geram a necessidade de uma análise diferenciada para as organizações deste
ramo (GHEZZI, 1991).
Dessa forma, o estudo realizado concentrou-se nos aspectos apontados, em
concordância, por Ghezzi (1991) e Sommerville (2000), como relevantes para a análise da
organização da produção em empresas de desenvolvimento.
Os aspectos ressaltados por ambos os autores são os seguintes:
A partir dos aspectos apontados pelos três autores, é feita uma análise da
efetividade das formas de organização da produção por células (através do mapeamento na
departamentalização funcional, proposto na seção anterior) e por projetos, em relação ao
9
Os motivadores que levaram a Vasconcellos e Hemsley (1997) a elegerem estes fatores de comparação, bem
como os aspectos que compõem cada um deles, podem ser encontrados em (Vasconcellos; Hemsley, 1997, p. 30-
41).
19
desenvolvimento de software, observando as vantagens e desvantagens de cada modelo para
cada aspecto considerado.
20
2.4.2 Aspecto: Tamanho da Equipe Adequado às Necessidades do Projeto
O tamanho ideal que um grupo deve ter para realizar um determinado processo
depende, diretamente, do volume e complexidade das atividades envolvidas. Tarefas
volumosas e complexas geralmente demandam grande força de trabalho e troca de
experiências entre os colaboradores. Neste caso, um grupo de funcionários numeroso é mais
adequado à realização do processo. Em contrapartida, times grandes geram uma sobrecarga
significativa de atividades de gerenciamento e controle das pessoas e tarefas. Os processos
pequenos e simples, por sua vez, são bem atendidos por um grupo reduzido de pessoas, capaz
de promover maior coesão na equipe e menor sobrecarga de gerenciamento e comunicação. A
solução ideal, portanto, é possuir uma forma de organização da produção que possa adequar-
se à necessidade momentânea de cada processo, de utilizar um grupo grande de pessoas ou
um time reduzido (GHEZZI, 1991).
A estruturação por células promove flexibilidade suficiente para ajustar o tamanho
do grupo de colaboradores que está desenvolvendo uma determinada atividade, de acordo
com as necessidades do momento. Essa estrutura, cujas células são compostas por um número
variado de funcionários, permite que, dentro de uma mesma célula, a quantidade de pessoas
alocadas em uma determinada tarefa possa ser ajustada pelo coordenador. Isso é possível
porque como os perfis dos membros de uma célula são parecidos, assim como as atividades
desenvolvidas por eles, a migração de colaboradores entre as atividades pode ser feita com
baixas demandas de treinamento e adaptação. Sendo assim, é possível envolver a quantidade
adequada de colaboradores, de acordo com as necessidades momentâneas do projeto
(VASCONCELLOS; HEMSLEY, 1997).
Contrapondo-se a este fato, o arranjo por equipes de projeto apresenta menor
flexibilidade de ajuste do tamanho do grupo. A equipe, na maioria das vezes, é montada nas
fases iniciais do projeto. Nessas circunstâncias, o ato de alocar pessoas extras em um
determinado período do projeto, ou migrar os colaboradores para outro projeto distinto é de
impacto significativo na organização, pois depende da disponibilidade dos recursos de outros
projetos e entendimento entre gerentes e coordenadores de área. O tamanho do time, portanto,
é, geralmente, mantido constante ao longo de todo o projeto, independente das demandas e
necessidades das atividades momentâneas. (VASCONCELLOS; HEMSLEY, 1997).
21
Dessa forma, percebe-se que a estruturação por células de produção garante maior
adequação na determinação do tamanho dos grupos de trabalho do que o arranjo por equipes
de projeto.
22
estão sob a coordenação de um único responsável, é possível obter-se informações acerca da
situação atual do projeto com uma única pessoa (VASCONCELLOS; HEMSLEY, 1997).
Considerando a proposta de Ghezzi (1991) para a garantia do nível adequado da
comunicação, verifica-se que essa organização é mais indicada às atividades que demandam
alta comunicação entre os executantes.
Com base na análise, é possível concluir que a organização por equipes de projeto
promove uma comunicação mais efetiva entre os colaboradores. No entanto, observa-se que
cada uma das formas de organização da produção em estudo é mais adequada ao nível de
comunicação e interação requerido no momento. Para atividades que demandam baixa
comunicação, o arranjo por células é mais efetivo. Por outro lado, para os processos que
necessitam alta interação entre os funcionários, a estruturação por equipes de projetos é
preferível.
23
importância da contribuição do funcionário tornam-se mais evidentes. Considerando-se o
aspecto em questão, portanto, entende-se que esta forma de organização da produção garante
resultados mais efetivos (VASCONCELLOS; HEMSLEY, 1997).
24
Tabela 1 – Comparação entre as Organizações por Células de Produção e por Equipes de Projeto
Estruturação Estruturação
Aspectos
por Células por Projetos
Definição do perfil adequado dos colaboradores envolvidos Melhor Pior
Tamanho da equipe adequado às necessidades do projeto Melhor Pior
Nível de comunicação entre os colaboradores envolvidos Menor Maior
Comprometimento dos colaboradores Pior Melhor
Eficiência no uso dos recursos humanos e materiais Melhor Pior
10
Os aspectos vantajosos da estrutura funcional podem ser encontrados em (Vasconcellos; Hemsley, 1997, p.
30-36).
25
departamentalização funcional, com a organização por projetos. Nesse modelo, o autor propõe
uma divisão igualitária de autoridade para os gerentes funcionais (mapeados nos
coordenadores de célula de produção, conforme apresentado na seção 1.3) e gerentes de
projetos, garantindo um poder de decisão igual para estes dois elementos. Vasconcellos (1977
apud Vasconcellos e Hemsley, 1997), por sua vez, acrescenta mais duas variáveis adicionais a
serem consideradas na matriz balanceada: “a forma de comunicação entre o gerente do projeto
e a equipe de projeto e a porcentagem de gerentes de projeto que não acumulam cargos
funcionais”. Sendo assim, com base em Galbraith (1973) e em Vasconcellos (1977),
Vasconcellos e Hemsley (1997) definem como matriz balanceada a estrutura que apresenta as
seguintes características.
Fonte: Vasconcellos e Hemsley, 1981 apud Vasconcellos e Hemsley, 1997, p. 88 (com ajustes)
11
Os diferentes modelos de estrutura matricial podem ser encontrados em (Vasconcellos; Hemsley, 1997, p. 51-
68).
26
A partir da análise da Tabela 2, verifica-se que a matriz balanceada mantém um
certo equilíbrio entre as vantagens e desvantagens da organização funcional e da organização
por projetos. Esse fato estimularia a utilização deste tipo de organização, como forma de
potencializar as vantagens e minimizar as desvantagens de cada modelo original no
desenvolvimento de sistemas, proposta deste trabalho. No entanto, os aspectos relacionados
por Ghezzi (1991) e Sommerville (2000)12 como relevantes para uma empresa
desenvolvedora de software não foram analisados, o que gera a necessidade de uma
investigação mais criteriosa neste sentido. Além disso, a organização matricial tem como
desvantagem exclusiva o critério “Nível de conflitos”, situação inexistente nos modelos
originais quando aplicados individualmente. Conclui-se, portanto, que a estrutura matricial
possui aspectos importantes para a combinação das duas estruturas organizacionais em
questão, no entanto, a efetividade de sua aplicação de forma íntegra e original, no escopo da
produção de software, deve ser investigada.
Além de considerar os aspectos relativos à organização matricial, é relevante
observar que diversos experimentos têm sido feitos com o objetivo de medir a efetividade das
formas de organização da produção e montagem dos times de desenvolvimento nas empresas
de software. Com base neles consegue-se chegar às considerações abaixo (GHEZZI, 1991).
a) Não existe um ciclo de vida apropriado para todos os tipos de projeto, assim
como não existe uma organização de time de desenvolvimento ideal para
todos os tipos de projeto.
b) O controle descentralizado do time de desenvolvimento é mais adequado
quando o projeto demanda soluções complexas e ainda desconhecidas,
necessitando alto grau de comunicação e interação entre os colaboradores.
c) O controle centralizado do time de desenvolvimento é mais adequado quando
o projeto pode ser atendido por soluções conhecidas e dominadas pela equipe
de desenvolvimento, dispensando grande interação e troca de experiência
entre os colaboradores.
d) Uma boa organização da produção deve ter flexibilidade para garantir o nível
adequado de comunicação entre os desenvolvedores, de acordo com as
necessidades e tipo do projeto.
12
Os aspectos relacionados por Ghezzi (1991) e Sommerville (2000) podem ser encontrados na seção 2.4 deste
trabalho.
27
Nestes termos, devido à inexistência de um modelo que seja, notoriamente, plena
e perfeitamente adequado ao desenvolvimento de sistemas, aliado às características peculiares
da produção de software, o estudo suscita a necessidade da definição de uma forma de
organização da produção que permita minimizar os problemas e maximizar as vantagens de
cada um dos modelos abordados, no âmbito de uma organização de desenvolvimento de
sistemas.
De acordo com relato de Parris (1996 apud Pfleeger, 2001) a Força Aérea Norte-
Americana, em parceria com a Lockheed Martin, formaram o Time de Desenvolvimento de
Produto Integrado (Integrated Product Development Team). O objetivo da coalizão foi o
desenvolvimento de um sistema modularizado destinado a aumentar a capacidade, prover
funcionalidades e reduzir o custo e o tempo de manutenção dos sistemas utilizados no caça F-
16 Fighting Falcon.
Os programas que deveriam ser desenvolvidos eram de altíssima criticidade,
incluindo funcionalidades de tempo real e recursos que eram utilizados durante o vôo e
situações de combate. O projeto incluía o desenvolvimento de drivers de dispositivos, funções
de tempo real em linguagem Ada, um compilador Ada para o computador de bordo da
aeronave, ferramentas de gerência de configuração, programas de simulação e de testes e
interfaces para carregar os programas nos dispositivos da aeronave. Os requisitos do sistema
eram bem compreendidos e estáveis, e a equipe de desenvolvimento era composta por 250
programadores divididos em 8 times distintos.
O cenário descrito anteriormente apresenta um projeto de grande porte e de alta
criticidade. O orçamento reduzido para realização do projeto, assim como as limitações de
prazo, forçaram a alta administração a buscar formas alternativas de aumento de
produtividade e otimização dos recursos disponíveis. Nesse contexto, a organização da
produção foi estabelecida na forma matricial, conforme apresentado na seção anterior.
Nessa estruturação, cada engenheiro de software foi alocado em uma unidade
funcional (célula de produção), com base na área de conhecimento e serviço a ser executado
pela célula, como célula de arquitetura, célula de testes etc. No entanto, o mesmo engenheiro
28
era designado a atuar em um ou mais módulos (projetos) do sistema, de acordo com suas
habilidades e com as necessidades do projeto. Nesse modelo, as decisões eram tomadas pelas
unidades funcionais, apesar do empreendimento demandar integração total entre os módulos.
A estrutura matricial aplicada, que combinou aspectos da organização por células
e por equipes de projetos, proveu resultados satisfatórios em relação à produtividade da
equipe e cumprimento dos termos acordados.
A utilização da estrutura matricial, porém, ocorreu na situação de um projeto
único, onde as prioridades e requisitos já estavam claramente estabelecidos. Além disso, os
objetivos das equipes de projetos e das unidades funcionais convergiam para um mesmo
ponto: sucesso global do empreendimento. Dessa forma, fica a necessidade da análise do
comportamento dessa estrutura em um ambiente de uma fábrica de software, que atravessa
situações de sazonalidade de projetos e múltiplas demandas por células de produção.
29
3 ORGANIZAÇÃO HÍBRIDA DA PRODUÇÃO
30
EQUIPE DE
PROJETO 1
CÉLULAS DE PRODUÇÃO
EQUIPE DE EQUIPE DE
PROJETO N PROJETO 2
EQUIPE DE
PROJETO 3
31
projeto. Como a OHP guarda as características individuais das duas formas de organização da
produção em questão, e estas, por sua vez, são amplamente utilizadas pelas empresas de
software, a utilização da OHP, com as metodologias de desenvolvimento e ciclos de vida
tradicionais, pode ser aplicada diretamente e sem necessidade de adaptações significativas.
A segunda responsabilidade da equipe, o gerenciamento, tem como atribuição o
acompanhamento e gestão do projeto. Seu principal objetivo é assegurar o alcance dos
resultados esperados, garantindo que sejam cumpridos os termos e condições acordados com
o cliente. Segundo as diretrizes de gerenciamento do PMBOK 2000 (2000), a equipe é
encarregada por controlar os seguintes aspectos do projeto: a definição do escopo, bem como
suas alterações; o tempo e o cronograma das atividades; o custo de realização; a qualidade dos
processos, subprodutos e produtos gerados; os recursos humanos; a comunicação e interação
dos colaboradores; os riscos envolvidos, bem como estratégias de mitigação; as aquisições de
insumos (produtos e serviços) necessários ao desenvolvimento do sistema; e, por fim, o
equilíbrio e andamento satisfatório de todo o projeto13.
A existência de equipes de projeto no arranjo produtivo, onde cada uma possui um
coordenador, promove definição explícita de quem são os responsáveis por cada projeto da
fábrica de software, estimulando um maio comprometimento de cada colaborador com os
resultados esperados (VASCONCELLOS; HEMSLEY, 1997).
13
Os aspectos citados são apresentados em detalhes ao longo das nove Áreas de Conhecimento (Knowledge
Areas) especificadas pelo PMBOK 2000 (2000).
32
Cada célula possui um coordenador de produção, responsável por gerenciar as
atividades da célula e, juntamente com os coordenadores das equipes de projeto, determinar as
prioridades das atividades, negociar os prazos de entrega e alocar os recursos devidamente.
a) analista de sistema;
b) projetista de sistema;
c) programador;
d) testador;
e) instrutor.
Contextualizando esse conjunto de papéis na OHP, observa-se que eles podem ser
aplicados, livremente, tanto nas equipes de projeto, como nas células de produção. Para isso,
basta determinar se a necessidade do papel é para uma atuação específica em um determinado
33
projeto (neste caso o papel é estabelecido na equipe de projeto), ou para uma ação transversal
a toda organização (neste caso o papel é estabelecido na célula de produção). Os papéis
funcionais podem, também, co-existir nas equipes de projeto e nas células de produção, como
é apresentado no estudo de caso realizado no presente trabalho.
A Tabela 3 apresenta uma breve síntese contendo a descrição e a atuação de cada
papel funcional proposto por Pfleeger (2001), que pode ser utilizado em uma empresa de
desenvolvimento de software.
Papel
Descrição e Atuação
Funcional
Encarregados de identificar as necessidades dos contratantes e usuários e
transpô-las para requisitos documentados do sistema. Nesse processo, é
Analistas de fundamental grande interação e comunicação entre as pessoas envolvidas,
Sistema pois discrepâncias entre as expectativas do cliente e os requisitos
documentados pelo desenvolvedor, podem comprometer seriamente o
projeto.
Encarregados de conceber a arquitetura e projeto do software a ser
Projetistas de
desenvolvido. Para tanto, eles devem ter forte interação com os analistas,
Sistema
pois estes dominam os requisitos que o sistema deve contemplar.
Responsáveis por fazer a codificação propriamente dita do sistema
Programadores
especificado pelos projetistas e analistas.
Responsáveis por executar os testes, de forma a ajudar no controle da
qualidade do sistema. O trabalho realizado por eles tem o objetivo de
Testadores verificar se o software desenvolvido está conforme as especificações e livre
de falhas, assim como determinar se o produto que será entregue atende às
necessidades e expectativas do cliente.
Encarregados de treinar os usuários na utilização do sistema. Os instrutores
devem ter forte interação com os clientes e os desenvolvedores, pois, durante
Instrutores sua atividade de treinamento, eles têm a oportunidade de coletar a impressão
do cliente em relação ao sistema, assim como identificar pontos de correções
e melhorias no software.
34
Figura 5 – Papéis Funcionais em um Processo de Desenvolvimento de Software
Fonte: PFLEEGER, 2001, p.26
35
relacionamento com os clientes, enfim, gerenciar todo o projeto, controlar os seus
subprodutos e administrar as atividades.
Além disso, a equipe de projeto é responsável por executar, em parte ou
integralmente, as atividades de realização do projeto, como configurar o ambiente, codificar o
sistema, proceder os testes, realizar a implantação etc. Ao longo do empreendimento, no
entanto, a equipe de projeto, pode requisitar a execução de atividades às células de produção.
Isso é feito, levando-se em consideração o tipo de atividade a ser executada, o perfil do
profissional necessário, as especialidades das células de produção e a disponibilidade destas.
Portanto, diversos fatores podem estimular a utilização das células de produção pelas equipes
de projeto, por exemplo: a existência, nas células de produção, de especialistas capazes de
executar uma atividade com maior qualidade técnica ou rapidez; carência do perfil adequado
na equipe de projeto para executar uma atividade; carência de equipamentos ou ferramental
necessário na equipe de projetos; alta demanda de trabalho na equipe de projeto.
A requisição dos serviços das células de produção deve passar por um processo
estruturado de negociação, envolvendo o coordenador de projeto da equipe solicitante e o
coordenador de produção da célula requisitada. Nesta negociação devem ser determinados os
prazos de entrega dos subprodutos solicitados e quais colaboradores serão alocados para a
realização das atividades. Isso deve ser feito de forma alinhada às prioridades da organização
em relação aos diversos projetos em andamento.
A Figura 6 apresenta a utilização das células de produção por uma das diversas
equipes de projeto da empresa. O diagrama mostra que o processo de software transcorre sob
a responsabilidade da equipe de projeto, no entanto as células de produção são requisitadas a
atuar em algumas das suas etapas.
36
EQUIPE DE PROJETO
PROCESSO DE SOFTWARE
CÉLULAS DE PRODUÇÃO
37
de projeto individualmente, reduzindo a sobrecarga de gerenciamento e troca de informações
entre pessoas de áreas diferentes.
38
4 ESTUDO DE CASO
4.1 Cenário
39
4.2 Caracterização dos Projetos Desenvolvidos
40
na agregação de diversos componentes de hardware, como processador, placa-mãe, unidades
de CD-ROM e DVD, disco rígido, memória, placa de rede, modem, fonte, unidade de
disquete etc. Tais componentes não são produzidos na fábrica, sendo adquiridos de diferentes
fornecedores. Eles provêm de fabricantes distintos, gerando uma diversidade de marcas,
modelos e termos de garantia. Desta forma, ao ser montado, um único computador, possui
componentes de fabricantes e condições de garantia diferenciados. Esta situação cria a
necessidade de se manter a rastreabilidade de cada componente desde a sua aquisição, junto
ao fornecedor, até a venda para o usuário final.
O projeto teve por objetivo o desenvolvimento de um software destinado a fazer o
rastreamento dos componentes utilizados na montagem das máquinas. O módulo de Registro
de Números de Série armazena os números das notas fiscais das aquisições, assim como os
números de série de todos os componentes rastreáveis associados a cada nota. Esse registro é
feito de forma automática, através da leitura de arquivos eletrônicos enviados pelos
fornecedores; ou de forma manual, através da leitura de código de barras feita por coletores de
dados.
Em uma outra etapa do processo produtivo da fábrica, após a montagem da
máquina, o Módulo de Inventário atua de forma a identificar e registrar o número de série da
máquina produzida e de cada componente rastreável presente no equipamento. A partir das
informações registradas pelos dois módulos, é possível identificar a Nota Fiscal associada a
cada componente da máquina, garantindo a rastreabilidade desejada.
O projeto utilizou as seguintes tecnologias:
14
www.microsoft.com
41
4.3 Processo de Desenvolvimento Aplicado
Para a realização dos dois projetos no estudo de caso, foi aplicado um processo de
desenvolvimento com características iterativas e incrementais. O processo utilizado é
composto por 6 fases principais, conforme apresentado na Figura 7, e descrito a seguir.
42
d) Planejamento das Iterações – Consiste no planejamento das versões de
sistema que serão produzidas. Nesta fase, o conjunto de recursos do software é dividido em
versões que compõem o cronograma de codificação. Esse cronograma é definido juntamente
com o cliente, levando em consideração as suas prioridades, os riscos envolvidos no projeto e
as restrições operacionais relativas ao sequenciamento da implementação das funcionalidades.
43
PROCESSO DE DESENVOLVIMENTO
Início
Seleção da Projeto
Versão Detalhado
Anteprojeto
Correção Codificação
Elaboração do
Protótipo Avaliação Testes
Implantação
Planejamento
das Iterações
Homologação
do Sistema
Fim
44
Tabela 5 – Composição das equipes de projeto
45
EQUIPES DE PROJETO
CÉLULAS DE PRODUÇÃO
De acordo com a especificação da OHP, cada equipe de projeto, assim como cada
célula de produção, deve possuir um coordenador. Da mesma forma que o conjunto das
equipes de projeto, assim como o conjunto das células de produção, devem possuir
coordenadores gerais. Contudo, no estudo de caso em questão, foi designado um único
colaborador que acumulou o papel funcional de coordenador das duas equipes de projeto e
das quatro células de produção. Vale ressaltar, também, que o papel de líder de projeto das
duas equipes foi acumulado em um único funcionário.
46
Sendo assim, é apresentado a seguir como foi feita a atribuição de tarefas e
delegação de responsabilidades para os dois projetos realizados durante o estudo de caso.
Esta unidade foi a responsável por preparar todo o ambiente de trabalho e infra-
estrutura necessária ao desenvolvimento dos projetos. Suas atividades foram:
47
4.5.3 Célula de Elementos de Aplicação
48
4.5.5 Célula de Testes e Controle de Qualidade
49
do sistema e documentação do cliente. Para a execução destas tarefas, estavam disponíveis os
seguintes profissionais com o perfil adequado: um Analista de Suporte, dois Diagramadores e
uma Analista de Testes.
Caso fosse utilizada, exclusivamente, a estrutura organizacional por equipes de
projetos, estes profissionais teriam que ser alocados no projeto CotaOn ou no Rastro,
atendendo, dessa forma, as necessidades de um dos projetos e deixando o outro com carência
de profissionais.
Da forma como foram distribuídos, utilizando a OHP, estes profissionais foram
alocados em células de produção, podendo assim, compor, temporariamente, a equipe de
desenvolvimento do dois projetos, atendendo, portanto, as necessidades de ambos.
Sendo assim, é possível concluir que a utilização da OHP, a partir de um aspecto
positivo aproveitado da estruturação por células, foi mais efetiva do que teria sido a utilização
da organização por equipes de projetos, se tivesse sido aplicada.
50
Tabela 7 – Sazonalidade do Time de Desenvolvimento
Cod. Quantid.
Nome da Fase Colaboradores Envolvidos
Fase Colaborad.
F01 Levantamento e Análise 3 Equipe de Projeto
F02 Anteprojeto 3 Equipe de Projeto
F03 Elaboração do Protótipo 5 Equipe Projeto + 2 Diagramadores
F04 Planejamento das Iterações 3 Equipe de Projeto
F05 Projeto Detalhado 3 Equipe de Projeto
F06 Codificação 5 Eq. Proj. + 1 Eng. Software + 1 Diagramador
F07 Testes 5 Eq. Proj. + 1 Analista Testes + 1 Eng. Software
Eq. Proj. + 1 Analista Testes + 1 Analista de
F08 Implantação 5 Suporte
F09 Avaliação 4 Equipe de Proj.+ 1 Analista Testes
F10 Correção 5 Eq. Proj. + 1 Analista Testes + 1 Eng. Software
6
Qtd. Colaboradores
5
4
3
2
1
0
F01 F02 F03 F04 F05 F06 F07 F08 F09 F10
Fases
51
Entende-se, portanto, que a aplicação da OHP, a partir de um ponto de vantagem
herdado da estruturação por células, tende a proporcionar maior flexibilidade quanto ao
número de colaboradores na equipe, do que a organização por projetos, quando aplicada de
forma exclusiva.
52
Sendo assim, é possível concluir que, no aspecto em questão, a OHP, mostra
tendência a promover um resultado mais efetivo, através da utilização das equipes de projeto,
do que se fosse utilizada, exclusivamente, a estruturação por células de produção.
53
4.6.5 Aspecto: Eficiência no Uso dos Recursos Humanos e Materiais
54
4.7 Análise dos Resultados
Fazendo-se uma síntese dos resultados obtidos pela OHP, frente aos aspectos
analisados, conforme apresentado na Tabela 8, verifica-se que a organização proposta obteve
um desempenho satisfatório em todos os aspectos estudados. Verifica-se, também, que as
características da OHP que garantiram o seu bom desempenho, são provindas tanto da
estruturação por células de produção, como da organização por equipes de projetos,
evidenciando que uma estrutura híbrida é, de fato, necessária.
55
4.7.1 Considerações Adicionais Sobre os Resultados Obtidos
De acordo com Pfleeger (2001), um mesmo papel funcional pode atuar em mais
de uma etapa (software development step) do processo de software, assim como uma etapa
pode sofrer a atuação de mais de um papel funcional. Verificou-se que essa flexibilidade é
naturalmente garantida pela OHP, já que a equipe de projeto pode atuar livremente em
qualquer etapa do desenvolvimento e as células de produção também podem ser requisitadas
pela equipe de projeto, sempre que necessário, para atuar em alguma etapa do
desenvolvimento.
Após a realização do experimento prático, foi verificado que houve uma
padronização natural, entre os projetos utilizados, dos artefatos, diagramação das telas,
documentos gerados e diretórios de trabalho. Acredita-se que este resultado tenha sido
conseguido devido à incorporação das células de produção na empresa, antes inexistentes. É
inferido que o fato das mesmas pessoas realizarem as mesmas atividades, tenha gerado um
nível natural de reaproveitamento de processos e artefatos, o que pode ter ocasionado a
referida padronização.
Por fim, identificaram-se situações de retrabalho, nas quais algumas rotinas
desenvolvidas pelas células de produção tiveram que ser refeitas pelas equipes de projeto.
Acredita-se que o fato ocorreu devido à falta de um processo consistente de transferência de
informações e comunicação entre as equipes de projeto e as células de produção.
56
prioridades das atividades das células e da necessidade de institucionalização de um plano de
gerência da comunicação15 específico para tratar a interação entre os elementos da OHP.
15
A definição e requisitos para um Plano de Gerência da Comunicação (Communication Management Plan), são
apresentados no PMBOK 2000, p. 119.
57
5 CONCLUSÃO
58
Sendo assim, são sugeridos trabalhos futuros, com o objetivo de buscar o aperfeiçoamento e
melhor aproveitamento da OHP.
Um fator passível de ser investigado seria o impacto da utilização da OHP na
produtividade e qualidade dos projetos de software. Essa análise poderia ser feita através da
utilização de métricas como pontos por função ou pontos por casos de uso, para análise da
produtividade. Já a investigação do impacto na qualidade dos projetos, poderia ser feita com
base em métricas como o número de erros encontrados nos sistemas, índice de reclamação
dos clientes, categoria das manutenções solicitadas etc.
Outra linha de pesquisa com grande poder elucidativo em relação a OHP seria a
investigação do comportamento da estrutura proposta para uma fábrica de software com um
grande número de colaboradores (por exemplo, superior a 100 funcionários), envolvendo
diversas equipes de projeto e células de produção. Tal estudo poderia se concentrar em
mecanismos de controle e negociação dos prazos e prioridades envolvendo demandas de
diversos projetos simultaneamente. As limitações de recursos do estudo de caso aplicado
neste trabalho impediram que uma análise desta natureza pudesse ter sido realizada.
Outro aspecto passível de ser trabalhado seria a especificação das formas de
comunicação entre as células de produção e as equipes de projeto. Nesta linha de pesquisa,
poderia ser analisada qual a melhor maneira de formalizar a transferência de informações
entre as entidades envolvidas, seja por meio de procedimentos documentados ou sistemas
informatizados. Apesar deste ponto não ter sido abordado no presente trabalho, o experimento
prático realizado, apontou que a utilização com sucesso da OHP, sem uma formalização nos
processos de comunicação específica para a estruturação proposta, só foi possível devido ao
limitado número de pessoas, células de produção e equipes de projeto.
Por fim, uma quarta linha de pesquisa que poderia ser adotada, seria estabelecer
padrões para a delegação de atividades para a célula de produção ou para a equipe de projeto.
O estudo de caso realizado apontou, empiricamente, que alguns tipos de atividade têm um
melhor desempenho quando executadas por uma estrutura ou outra. Nesta linha de pesquisa,
poderiam ser investigados quais tipos de atividades se adequam melhor a cada estrutura, qual
o perfil profissional mais indicado a cada atividade e em quais fases as delegações são mais
vantajosas. Investigações deste tipo, naturalmente, não foram feitas no presente trabalho, pois
fogem ao escopo do projeto.
A OHP vem a ser mais uma alternativa de organização da produção que pode ser
utilizada pelas fábricas de software, no intuito de minimizar os problemas e maximizar as
vantagens das estruturas organizacionais tradicionais. Sua adoção, assim como a utilização de
59
outras formas de organização da produção, é uma decisão a ser tomada pelos administradores
da fábrica de software, levando em consideração as necessidades, cultura organizacional da
empresa e tipos de projetos realizados.
60
REFERÊNCIAS BIBLIOGRÁFICAS
CMU-SEI, The Capability Maturity Model (CMM) – Guidelines for Improving the Software
Process. Addison-Wesley, 1993.
CURTIS, Bill; STATZ, Joyce. Building the case for software process improvement. In: SEI
NATIONAL CONFERENCE SOFTWARE ENGINEERING PROCESS GROUP, Atlanta,
1996.
PFLEEGER, Shari. Software Engineering: theory and practice. Segunda Edição. Prentice-
Hall, Upper Saddle River, 2001.
PMBOK 2000. A Guide to the Project Management Body of Knowledge. 2000 ed. Project
Management Institute. Newtown Square, 2000
ROCHA, Allan; et al. Estrutura Organizacional Híbrida para Fábrica de Software. SUCESU
2005 – Congresso Nacional de Tecnologia da Informação e Comunicação, Belo Horizonte,
2005.
61
SOMMERVILLE, Ian. Software Engineering. 6th Ed. Pearson Education Limited, 2000.
SWEBOK. A Guide to the Software Engineering Body of Knowledge. 2004 ed. IEEE. USA,
2004
62