XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
MATURIDADE E INOVAÇÃO NO
DESENVOLVIMENTO DE SOFTWARE:
CONVERGÊNCIA OU CONFLITO
Antonio Carlos Tonini (EPUSP)
[email protected]
Guilherme Ary Plonski (EPUSP)
[email protected]
Mauro de Mesquita Spínola (EPUSP)
[email protected]
Grande parte das atividades humanas depende de aplicações da
Tecnologia da Informação (TI), fazendo com que os software sejam
desenvolvidos cada vez mais rápidamente e a um baixo custo. A
quantidade de desenvolvedores de software tem cresciido
consideravelmente, estimulada pela farta demanda e pelos altos
retornos do negócio o que, por outro lado, acirra a concorrência. A
estratégia de diferenciação, que predominou na década de 90, dá lugar
para as questões de qualidade, custo e atendimento, como elementos
decisivos para a sobrevivência. A competitividade neste mercado passa
a ser dependente de mecanismos que conduzam a um mais alto nível de
qualidade e produtividade e, por esta razão, os desenvolvedores têm
que buscar melhorias nos seus processos de trabalho. As estratégias
empresariais enfatizam o dinamismo da interatividade processomercado e consideram que a capacidade criativa do staff é o elementochave para a melhoria contínua nos processos e para a sobrevivência.
Os principais modelos de referência de governança de TI apresentam
caminhos de sucesso para atingir a plena maturidade nos seus
processos. Estes modelos destacam como fator crítico o
estabelecimento e o cumprimento estrito de um método de
desenvolvimento, mesmo que este aceite certo grau de flexibilidade.
Diversas pesquisas mostram que a maioria dos projetos de
implementação dos modelos de melhoria nos processos tem falhado em
função de estratégias não claramente definidas, falta de compromisso
das pessoas, desalinhamento estratégico, falta de persistência,
desorganização e falta de criatividadade em adaptar o modelo às
características da empresa entre outras.
A questão colocada por este trabalho é investigar se existe alguma
relação entre o controle dos processos de desenvolvimento de software
e os esforços de inovação da empresa. Para tanto, é montado um
quadro de teórico de referência tendo como base o conceito de
inovação, as características do processo de desenvolvimento de
software e as recomendações dos modelos de maturidade. Com isso é
definido claramente o problema de pesquisa e formulada a proposição
de que a inovação é condição básica para que a organização atinja a
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
maturidade no desenvolvimento de software.
O artigo apresenta também os resultados de uma pesquisa de campo,
realizada na forma de um Estudo de Casos Múltiplos envolvendo duas
organizações desenvolvedoras de software com caracteristicas
diferentes. Enquanto uma delas atende um único cliente e prioriza a
estabilidade de seus processos, a outra atende o mercado em geral e
mantém diversas linhas de produtos para arquiteturas distintas.
Palavras-chaves: Maturidade, Inovação, Desenvolvimento de software,
2
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
1. Introdução
Grande parte das atividades humanas depende de aplicações da Tecnologia da Informação
(TI), obrigando que os software sejam desenvolvidos cada vez mais rápido, de forma eficaz e
a um baixo custo. O cliente deseja que o software funcione sempre e de forma correta e, em
caso de falha, ele espera que o desenvolvedor rapidamente corrija o erro, independente do
grau de dificuldade do motivo da falha (FENTON & PFLEEGER, 1997).
Paralelamente, a quantidade de desenvolvedores tem crescido consideravelmente estimulada
pelos altos retornos do negócio e demanda crescente. Consequentemente, a concorrência tem
se acirrado e sofisticado, independente do tamanho da organização ou do volume dos
negócios. A estratégia de diferenciação, que predominou na década de 90, dá lugar para as
questões de qualidade, custo e atendimento, como elementos decisivos para a sobrevivência.
A competitividade no mercado de software tornou-se dependente de mecanismos que
conduzam a um mais alto nível de qualidade e produtividade. Os desenvolvedores têm que
buscar melhorias nos seus processos de trabalho traduzidas em menores custos e percepção
pelos clientes (FERNANDES & ABREU, 2006).
Os modelos de planejamento estratégico empresarial realçam a necessidade do dinamismo, da
interatividade processo-mercado e consideram que a capacidade criativa do staff é o
elemento-chave para a melhoria contínua nos processos e para a sobrevivência empresarial,
uma vez que é necessário que a própria organização descubra suas próprias forças e fraquezas
e gere as idéias e o conhecimentos necessários (MINTZBERG & QUINN, 2001).
Por outro lado, os principais modelos de referência de governança de TI apresentam caminhos
para que os desenvolvedores de software, partindo muitas vezes de uma situação de extrema
falta de controle atinjam a plena maturidade nos seus processos. Estes modelos enfatizam os
princípios da Engenharia de Software e da Qualidade, destacando como fator crítico o
estabelecimento e o cumprimento estrito de um método de desenvolvimento, mesmo que este
aceite certo grau de flexibilidade (CHRISSIS et al, 2003). Em outras palavras, a organização
necessita possuir um forte controle ao longo do ciclo de vida do desenvolvimento de software,
procurando mitigar os riscos e evitar que eventos inesperados atrapalhem o sucesso do
projeto. Gerenciar riscos é uma atividade primordial para o sucesso dos projetos e os
processos de trabalho devem ser os mais simples em termos de princípios, técnicas, métodos e
ferramentas. A ausência de simplicidade forma barreiras que inibem suas aplicações, tornando
difícil a identificação das estruturas mais importantes e desestimulando qualquer esforço de
melhoria.
Diversas pesquisas mostram que a maioria dos projetos de implementação dos modelos de
melhoria nos processos tem falhado por uma série de razões, tais como: estratégias não
claramente definidas, falta de compromisso das pessoas, desalinhamento estratégico, falta de
persistência, desorganização e falta de criatividadade em adaptar o modelo às características
da empresa. Por outro lado, mesmo que uma organização adote um modelo de melhoria de
processos ela deve considerar que os modelos são apenas simplificações da realidade e, por
esta razão, eles são apenas descritivos, isto é, apresentam um conjunto de idéias que
canalizam a criatividade empresarial, sem necessariamente que isto seja uma “receita” para o
3
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
sucesso. Se assim fosse, todas as organizações que atendessem o modelo, lograriam sucesso
igualmente (CARD, 2002).
A questão colocada por este trabalho é investigar se existe alguma relação entre o controle dos
processos de desenvolvimento de software e os esforços de inovação da empresa. Para tanto, é
montado um quadro de teórico de referência tendo como base o conceito de inovação, as
características do processo de desenvolvimento de software e as recomendações dos modelos
de maturidade. Com isso é definido claramente o problema de pesquisa e formulada a
proposição de que a inovação é condição básica para que a organização atinja a maturidade no
desenvolvimento de software.
O artigo apresenta também os resultados de uma pesquisa de campo, realizada na forma de
um Estudo de Casos Múltiplos envolvendo duas organizações desenvolvedoras de software
com caracteristicas diferentes. Enquanto uma delas atende um único cliente e prioriza a
estabilidade de seus processos, a outra atende o mercado em geral e mantém diversas linhas
de produtos para arquiteturas distintas.
2. Fundamentação teórica
Desde que a General Electric (GE) na década de 90 atribuiu seus altos lucros à adoção da
filosofia Seis Sigma para o controle de seus processos de trabalho, diversos autores tem
discutido a questão se existe conflito entre eficiência e criatividade (HUNTER & SCHMIDT,
1999) (MARASH, 2000).
Para alguns, uma estratégia gerencial disciplinada e quantitativa, que visa aumentar
significativamente a lucratividade das organizações através da otimização de produtos e
processos, deixa pouco espaço para a criatividade e inovação (BLAKESLEE, 1999). Para
outros, os esforços de melhoria devem ter a função de satisfazer completamente e com
lucratividade as necessidades dos clientes, o que se traduz em acertar “o alvo” por eles
estabelecido, com mínima variação e desperdício e, para isso, todos os processos podem ser
melhorados (ALLWAY & CORBETT, 2002).
2.1. Processo de inovação
O atendimento às necessidades dos clientes é uma estratégia vital para a continuidade de
qualquer negócio. A formulação de estratégias deve estar baseada nas competências
essenciais, que são os aprendizados coletivos da organização relacionados com a coordenação
e uso das diversas ferramentas de produção, a execução dos processos de trabalho,
aproveitando e integrando as múltiplas correntes tecnológicas disponíveis no ramo de atuação
(PRAHALAD & HAMEL, 1990).
A competitividade bem sucedida é aquela que sabe determinar racionalmente a capacidade de
competir fazendo convergir de forma efetiva a capacidade e a habilidade empresarial (pontos
fortes e fracos da organização) com as oportunidades sinalizadas pelo mercado (ZAIRI,
1997).
Isto significa que toda e qualquer mudança no relacionamento empresa–cliente deve ser feita
de forma planejada e baseada em fatos, reclamações, sugestões ou desafios de melhoria. Este
princípio chama a atenção para a racionalidade de toda e qualquer mudança, a qual está
4
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
diretamente atrelada a capacidade de competitividade da empresa (ANSOFF &
McDONNELL, 1984).
Inovar se constitui na transformação de uma idéia ou de uma oportunidade em um conjunto de
ações internas (processo produtivo) produzindo algo novo e diferente (inovação no produto)
ou modificando total ou parcialmente a forma de fazer (inovação no processo). As inovações
radicais provocam mudanças na organização, nos clientes e no relacionamento entre ambos;
as inovações incrementais são inerentes ao processo e contínuas ao longo do tempo
(DODGSON & GRIFFITHS, 2004).
Os fatores que mais influem na intensidade da inovação são a urgência e a importância que
ela representa para o cliente interessado, o grau de complexidade tecnológica envolvida para
transformar a idéia em realidade e o retorno que ela proporciona para a organização que a
implementa (GOFFIN & PFEIFFER, 2001).
A inovação de um produto ou serviço deve ser entendida também como um processo, pois ela
se fundamenta em uma base de conhecimento, experiência e uso já existente. As principais
fases do processo de inovação são as seguintes (TIDD et al., 2005):
− Busca: é a detecção e processamento dos sinais relevantes de mudanças necessárias no
ambiente onde a organização atua;
− Seleção: é a escolha da alternativa que seja mais aderente aos objetivos estratégicos e às
competências essencias da empresa;
− Implementação: corresponde a efetiva adoção da inovação, transformando a idéia em
realidade e, para tanto, é necessário:
o Aquisição dos conhecimentos necessários: novos conhecimentos podem ser adquiridos
pela invenção ou pela combinação da base de conhecimento existente, com o devido
apoio de testes no mercado através da divulgação da idéia;
o Execução: corresponde a parte central do processo de inovação, ou seja, transformar a
idéia e processos de trabalho;
o Lançamento: consiste em tornar público e disponível para os clientes o novo produto ou
a nova forma de produzí-lo, promovendo os ajustes necessários
o Sustentação: consiste nas ações técnico-gerenciais para garantir a longevidade do novo
lançamento;
− Aprendizado: é a formação da base de conhecimento explícita sobre o novo produto oou
processo e capitalizar todos os acertos e erros para futuras inovações.
Sob a ótica financeira, as atividades de inovação formam dois ciclos – lançamento e produção
– sendo que cada qual contem uma carga inevitável de custo. Estes ciclos, conforme mostra a
figura 2, são marcados e delimitados pelos seguintes eventos: 1 – oportunidade, 2 –
percepção, 3 – investigação, 4 – definição, 5 – entrega e 6 – aprovação e 7 – extinção
(PATTERSON, 1998).
5
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
Figura 1 – Ciclos de lançamento e produção (adaptado de PATTERSON, 1998)
De uma forma geral, a pesquisa aplicada e o desenvolvimento de tecnologia são bancados e
realizados, na sua maioria, pelas empresas, cabendo à academia com o apoio do governo, o
desenvolvimento da pesquisa básica. Esta divisão de tarefas não é uma idéia nova. Francis
Bacon (1561-1626), acreditando que a ciência levaria ao desenvolvimento de tecnologia e à
produção de riqueza, propôs que o apoio do Estado às atividades de pesquisa acadêmica era
fundamental. Esta idéia foi desenvolvida mais tarde dando origem ao conhecido Triângulo de
Sábato e a Hélice Tríplice de Relações Universidade-Indústria-Governo (PLONSKI, 2005).
2.2. Processos de desenvolvimento de software
Os produtos de software são atualmente os maiores componentes do orçamento de muitas
organizações, o que as leva a exigir um alto nível de qualidade e capacidade para absorver
maiores funcionalidades.
No entanto, os Relatórios do Standish Group (CHAOS, 2000) demonstram que a produção de
software no mundo ainda tem muito espaço para melhorar tanto em termos de processo
quanto em termos de qualidade, podendo oferecer produtos a custos muito mais convidativos.
A tabela 1, mostra que ainda cerca de um quarto dos projetos não são concluídos e que,
aproximadamente a metade é entregue com falha.
RESULTADO DOS PROJETOS DE DESENVOLVIMENTO DE SOFTWARE
Resultado de Projetos
1994
Entregues com sucesso
16 %
Não entregues por falha
31 %
Entregues com falha
53 %
Fonte: Standish Group - Chaos (2000)
1996
27 %
40 %
33 %
1998
26 %
28 %
46 %
2000
28 %
23 %
49 %
Tabela 1 – Distribuição percentual de projetos de desenvolvimento de software
Segundo Pressman (2004), as principais falhas estão relacionadas com o não entendimento de
requisitos (o software faz o não deve ou não faz o que deve fazer), com o custo acima do
orçado e com os atrasos na entrega. Estes dados traduzem também a falta de maturidade em
grande parte das organizações. Neste sentido, a tabela 2 mostra as principais características
dos dois tipos extremos de processos de desenvolvimento de software (PAULK et al., 1997).
CARACTERÍSTICAS DOS TIPOS EXTREMOS DE EMPRESAS DESENVOLVEDORAS DE SOFTWARE
Processo Imaturo
Não é rigorosamente seguido
O cumprimento não é controlado
Baixa visão do progresso
Baixa visão da qualidade do produto
A qualidade e as funcionalidades podem ficar
aquém do negociado para cumprir o prazo
Processo maduro
Consistente com a maneira que o trabalho é realmente
executado
Definido, documentado, compreendido, utilizado, vivo
e ativo
Tem o apoio visível da alta administração e outras
gerências
Bem controlado – fidelidade ao processo é objeto de
auditoria e de controle
Uso disciplinado de tecnologia
6
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
É arriscado, se houver mudança de tecnologia
Processo improvisado por profissionais e gerentes
Elevados custos de manutenção
O processo e o produto são medidos regularmente
A cultura organizacional transmite o processo
Processos institucionalizados permanecem, mesmo
depois que as pessoas que o definiram, deixam a
organização
Fonte: Paulk et al. (1997)
Tabela 2 – Características dos dois tipos extremos de processos
O paradigma tradicional de desenvolvimento de software, conhecido como “ciclo de vida”,
foi concebido de forma a mostrar a seqüência de realização das atividades (entendimento dos
requisitos, modelagem, codificação e testes). As atividades são organizadas em etapas que
devem ser executadas na ordem prevista e associam os métodos, as ferramentas e os
procedimentos necessários à execução. Os modelos especificam ou uma estrutura de alto nível
apenas (modelos estruturais) ou detalham mais pormenorizadamente os procedimentos
(modelos processuais). A escolha do modelo mais adequado depende da natureza do projeto,
dos métodos adotados, das ferramentas a serem usadas, dos controles e dos produtos
desejados e da infra-estrutura computacional (PRESSMAN, 2004).
Este paradigma obriga os desenvolvedores a respeitar as fases de desenvolvimento sem rotas
alternativas. Como o insumo para a próxima fase depende do resultado da fase anterior e,
assim sucessivamente até o produto estiver concluido e, existe a possibilidade de haver mais
de uma pessoa envolvida, é necessário um rigor maior na documentação do trabalho
executado além do próprio trabalho realizado.
A popularização do uso dos recursos de TI, as facilidades oferecidas pelo ambiente WEB e a
difusão do sistema operacional Linux com a permissividade de uso e implementação de novos
componentes estimularam o crescimento da quantidade de software escrito sem qualquer
formalidade ou rigor (POPPENDIECK, 2001). Paralemente, é lançado o “manifesto ágil”
propondo uma nova metodologia para desenvolvimento de software, realçando a importancia
dos indivíduos e das interações sobre os processos e ferramentas, do funcionamento do
software sobre a documentação completa e detalhada, da colaboração com o cliente sobre a
negociação contratual e da adaptação às mudanças sobre o plano original de trabalho (COHN
& FORD, 2003).
A escolha de uma representação afeta diretamente como uma equipe de desenvolvimento é
estruturada, quando e como os membros desta equipe interagem, quem tem autoridade e quem
é responsável por cada parte (COSTA, 1999).
2.3. Modelos de maturidade
Se a globalização na indústria de software é uma realidade, a estratégia de garantir a
satisfação do cliente, cumprindo o escopo, prazo e custo, é bastante razoável. Por esta razão,
obter um certificado de qualidade ajuda a demonstrar a qualidade ao cliente. O certificado é
uma maneira de selecionar fornecedores e, muitas vezes, é um pré-requisito para o começo de
um novo negócio. Ter o certificado não é garantia de boa qualidade mas, não tê-lo, é uma
desvantagem competitiva (CARD, 2002).
7
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
Segundo este raciocínio, na década de 90 surgiram um considerável número de modelos,
normas e melhores práticas no campo de TI. Entre estes, o mais notório e de maior utilização
mundial, é conhecido como “Modelo de Maturidade da Capacidade” ou simplesmente CMM
(Capability Maturity Model). Este modelo foi originado a partir de um framework idealizado
por Watts Humphrey nos anos 80 para que o Software Engineering Institute (SEI) pudesse
selecionar fornecedores de software cada vez mais qualificados e capazes de cumprir seus
contratos junto ao Departamento de Defesa Norte-americano (US DoD), um dos maiores
compradores de software do mundo (FENTON & PFLEEGER, 1997).
Embora nenhum dos conceitos fosse novo, a idéia em si era original e ímpar: integrar a
disciplina de software junto com as melhores práticas da qualidade total dentro de uma grade
evolutiva de maturidade, como mostra a figura 2(a), que pudesse não só distribuir o esforço de
melhoria em etapas como também servir para endereçar inicialmente os pontos mais críticos
(barreiras) dos programas de melhoria.
O Capability Maturity Model Integration (CMMI), atualmente na versão v1.2, é resultado da
evolução a família CMM, para a qual, a capacidade descreve os resultados esperados após a
aplicação de um processo de software na organização e a maturidade representa o potencial de
crescimento da capacidade e indica a riqueza do processo de software e a consistência do
mesmo quando replicado para outros projetos. O modelo classifica a maturidade em cinco
níveis, lidando com um número possível, finito e tangível de problemas típicos enfrentados
pela engenharia de software, dando assim oportunidade às organizações de crescerem
(amadurecerem) suas capacidades de forma incremental, atingindo patamares sucessivos de
melhoria cada vez mais sofisticados, conforme demonstra a figura 2(b).
Figura 2 – Concepção do modelo da família CMM (adaptado de FENTON & PFLEEGER, 1997)
O modelo CMMI trata a questão da inovação de forma explícita apenas no nível 5, através de
ações específicas de melhoria contínua com base no entendimento estatístico dos resultados
do conjunto de processos da organização ou mesmo do projeto específico. Os objetivos de
melhoria da organização são estabelecidos quantitativamente e continuamente monitorados e
revisados, de sorte a refletir todas as mudanças nos objetivos do negócio. Isto significa
selecionar e colocar em utilização somente aquelas melhorias incrementais e inovativas, que
de forma mensurável melhoram os processos e tecnologia da organização. As melhorias
devem suportar os objetivos da qualidade e desempenho de processos da organização desde
8
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
que eles sejam derivados dos objetivos de negócio. Em outras palavras, isto significa melhorar
de forma consistente, gradual e com visibilidade para os negócios (CHRISSIS, 2003).
2.4. Quadro de referencia
A inovação pode ser contrária aos hábitos, maneiras e ritos estabelecidos dos processos de
trabalho, até porque as pessoas são resistentes a qualquer tipo de mudança. Apesar de
aparentemente conflitantes, na verdade inovar e ser eficiente são ações complementares e
sinérgicas, sendo ambas necessárias para o sucesso sustentável das organizações. A melhoria
da produtividade, assim como a manutenção da fidelização do cliente, aumenta a
lucratividade; as ações de inovação melhoram a relação com o cliente, contribuindo
positivamente a fidelização do mesmo. A gestão dos negócios passa a ser, então, a
responsável por adequar e alinhar os esforços em melhoria de produtividade e ações de
inovação (ANSOFF & McDONNELL, 1984).
Para tornar realidade uma idéia inovadora, a empresa precisa acreditar e investir na idéia,
bancando os obstáculos, enfrentando os riscos e a forte possibilidade de fracassar. (TIDD et
al., 2005). Os esforços de melhoria da produtividade não podem ser implementados sem que
sejam adaptados à realidade e às características particulares da organização e também não se
aplicam a todas as atividades. Os esforços de melhoria na produtividade se aplicam
eficazmente para os processos internos de características repetitivas. Para as atividades
criativas, deve-se preparar um ambiente propício ao florescimento e considerar uma margem
de liberdade adequada (ANSOFF & McDONNELL, 1984).
O software é resultado de uma interação, iteração e acordo intelectual entre usuários e
desenvolvedores (PRESSMAN, 2004) exigindo de ambos criatividade para buscar a solução
mais adequada. Como visto acima, o desenvolvimento de software, depois da idéia formada,
passa ser algo repetitivo e prescritivo.
Analisando-se os processos de desenvolvimento de software (paradigmas tradicional e as
novas tendências) bem como as proposições do modelo de referencia CMMI, pode-se admitir
a proposição de que a inovação (lado criativo do software) é uma condição básica para galgar
maiores níveis de maturidade. Deve haver uma predisposição da empresa para a organização,
independente do paradigma adotado para o seu processo produtivo de software.
3. Estudo de caso múltiplo
No sentido de investigar como as empresas de software lidam com as questões de melhoria e
inovação dos seus processos de desenvolvimento, este artigo apresenta o resultado de uma
pesquisa empírica, de natureza qualitativa, conduzida por meio do método de Estudo de Casos
Múltiplos (YIN, 1998). O uso do Estudo de Casos Múltiplos permitiu entender os contextos
empresariais específicos e os motivos que levam estas organizações melhorar seus processos e
promover inovações. Não obstante haver similaridades com outras empresas, a pesquisa não
permite generalizações (CLAVER et al., 2000).
A pesquisa foi realizada em duas organizações brasileiras desenvolvedoras de software que
aplicam sistematicamente procedimentos de melhoria nos seus processos de desenvolvimento.
9
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
A proposição que orientou a pesquisa foi a de que “a inovação é a condição básica para que
a organização atinja a maturidade no desenvolvimento de software”.
A escolha das empresas ocorreu em função da diversidade de negócio das mesmas. Enquanto
uma delas atende um único cliente e prioriza a estabilidade de seus processos, a outra atende o
mercado em geral e mantém diversas linhas de produtos para arquiteturas distintas. Para a
coleta de dados, foram realizadas entrevistas semi-estruturadas com gestores e
desenvolvedores em ambas as organizações. O foco das entrevistas foi entender os processos
de desenvolvimento de software, as melhorias executadas nestes processos e como elas agem
em termos de inovação nestes processos. As opiniões foram confrontadas com o quadro
teórico, o que permitiu entender o quanto estão aderentes com a literatura.
4.1. Caso 1
A Unidade de Análise 1 (UA1) é um instituto de pesquisa sediado em importante centro
econômico do Estado de São Paulo, fundado com o propósito de pesquisa e desenvolvimento
de novas tecnologias de TI. No início de suas operações, contou com o aporte de capital
público na forma de incentivos fiscais. Com uma gestão dinâmica, orientada pelas
oportunidades do mercado, e uma estrutura enxuta, ágil, flexível, de baixo overhead e
altamente qualificada, teve seus processos-chave certificados segundo as normas de qualidade
ISO 9001 e de maturidade pelo CMMI nível 2 (1999), nível 3 (2000), nível 4 (2005) e nível 5
(2007). Convém notar que faz parte da maioria dos contratos, que a UA1 tem que demonstrar
alta maturidade nos processos de software.
Pelo fato de viabilizar aos clientes os benefícios proporcionados pela Lei de Informática, os
projetos celebrados junto aos clientes são de longa duração (mínimo de cinco anos); para
tanto, cada cliente é tratado como uma unidade de negócio; as equipes são totalmente
separadas, graças a especialidade exigida pelo cliente e no encerramento do contrato, todo
conhecimento produzido e, às vezes também os engenheiros de software, são transferidos para
o cliente.
O levantamento de dados para este artigo foi feito junto com a unidade de negócio especialista
em produtos para a Tecnologia da Informação e Comunicação (TIC) e envolveu o gerente de
desenvolvimento da unidade de negócio de software embarcado, um engenheiro de software e
um analista da garantia da qualidade.
Para atender os diversos modelos de estruturação de processos de software, a UA1
desenvolveu um modelo próprio, altamente flexível e abrangente. É diretriz corporativa
somente desenvolver projetos de acordo com o modelo interno de desenvolvimento,
independentemente da exigência do cliente. O modelo interno está totalmente alinhado com as
áreas de processo do modelo de maturidade CMMI e normas específicas, como a norma NBR
ISO/IEC 12.207:1998 e, por isso, suporta qualquer modelo específico de algum cliente. Todos
os processos estão definidos, conhecidos, praticados estabilizados e padronizados, o que
contribui de forma positiva para treinar e capacitar os desenvolvedores.
Cada projeto representa uma instância do modelo padrão de processos e contém apenas
aqueles processos, práticas e artefatos que lhes são necessários. Esta customização envolve o
nível de atividades e tarefas, mantendo-se o perfil em nível de processos, isto é,
planejamento, projeto e execução. Tanto a produção de novos softwares, como a manutenção
posterior, são feitas somente por encomenda.
10
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
Foi um fato motivador e gratificante para os desenvolvedores descobrir que a ação de “definir
processos de software” nada mais significou do que traduzir em palavras o que realmente era
executado. No início, a resistência foi grande, pela falta de conhecimento de como “descrever
o processo”. No entanto, vencida a resistência inicial, isto se transformou em um fator crítico
de sucesso (FCS) para a melhoria dos processos de desenvolvimento.
Uma parte do desenvolvimento é terceirizada, sendo que a gestão dos recursos humanos ora é
feita internamente ora é também contratada. Todos os engenheiros de software,
independentemente do fato de serem mão-de-obra própria ou de terceiros, recebem
treinamento específico sobre os processos de desenvolvimento adotados pela UA1 e exigidos
pelos clientes. As necessidades de treinamento são acusadas pelas métricas de defeitos pós
entrega e de produtividade. Além disso, existe um fluxo significativo de interesse em
treinamento por parte dos desenvolvedores, no sentido de se capacitar e contar com o apoio da
organização (efeito sinérgico).
Uma das maiores dificuldades apontadas pela UA1 reside na capacitação dos gestores
externos, quando é feita a contratação para o desenvolvimento de um produto. Via de regra,
os gestores externos são avessos a qualquer tipo de controle. Para minimizar este problema,
tem se tornado um dos itens mais importantes da seleção de fornecedores, a demonstração da
qualificação dos gestores externos, em relação aos seus conhecimentos de gestão de projetos,
manuseio de técnicas estatísticas e gestão de pessoas.
Os esforços de melhoria dos projetos se manifestam pelo incentivo à inovação e o histórico
aponta para as seguintes inovações adotadas:
(a) capacitar todos os gerentes em metodologias de projeto, de forma a estabelecer uma
linguagem padrão com todos os clientes;
(b) capacitar as equipes a descrever os processos de desenvolvimento de software,
envolvendo regras de programação e de lógica computacional. Note que grande parte
dos software desenvolvidos é embarcada nos produtos e devem ter uma dimensão
bastante pequena;
(c) criar uma biblioteca de componentes em todas as linguagens de programação voltadas
para o ambiente de software embarcado;
(d) criar comunidades de discussão, inclusive com técnicos de empresas concorrentes,
melhorando a capacidade profissional dos membros das equipes;
(e) criar incentivos especiais através de concursos internos de conhecimento sobre
tecnologias e metodologias de desenvolvimento de software;
(f) contratar especialistas em diferentes tecnologias (ambiente Windows, Mainframe,
Linux, Web e outros);
(g) celebrar acordos com universidades que mantém centros de pesquisa na melhoria da
qualidade dos processos de desenvolvimento e também no próprio desenvolvimento
de software.
11
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
4.2. Caso 2
A unidade de análise 2 (UA2) é uma organização genuinamente nacional, líder no mercado
nacional e na América Latina de Sistemas Integrados de Gestão, conhecidos como ERP
(Enterprise Resource Planning). Está presente também nos EUA, através de duas empresas
franqueadas para atender clientes com matriz no Brasil e através de uma empresa franqueada
em Portugal. Recentemente, o grupo adquiriu mais duas outras empresas de destaque neste
mercado. Seus produtos são certificados pelo sistema ISO 9001:2000, seus processos de
desenvolvimento estão reconhecidos pelo modelo CMMI nível 4, passaporte necessário para
entrar no mercado europeu e o corpo gerencial pratica as disciplinas de gerenciamento de
projetos segundo o PMI (Project Management Institute). Participaram da entrevista, o gerente
de desenvolvimento de sistemas e dois engenheiros de software.
Pelo fato de contar com uma carteira de mais de 10.000 clientes, a UA2 procura manter
equipes especialistas para cada um dos modelos de desenvolvimento, tanto tradicional como
segundo as tendências mais recentes (orientação a objetos, metodologias ágeis, ambiente
Linux, sistemas para WEB e cliente-servidor).
Os engenheiros de software são treinados constantemente quanto às inovações tecnológicas,
são estimulados a participar de grupos independentes de pesquisa e são estimulados a dar
sugestões que possa tornar o trabalho mais produtivo, menos vulnerável a erro e aumentar a
qualidade nos produtos entregues aos clientes.
Os coordenadores de cada equipe têm por obrigação manter o conjunto de procedimentos de
cada um dos ambientes de desenvolvimento, o mais atualizado possível.
Como a meta é atingir o mais rapidamente a certificação conforme o nível 5 do modelo
CMMI, desde o lançamento deste modelo (iniciaram o processo do modelo CMMI em 2000;
obtiveram as certificações nível 2 e 3 ainda em 2002, o nível 4 em 2005 e esperam ser
distinguidos com o nível 5 no início de 2009). Desde o início, existe uma preocupação com a
melhoria contínua, de acordo com a filosofia kaizen (melhorias pequenas e constantes). As
principais inovações que fizeram no processo de desenvolvimento foram:
(a) obrigar que os desenvolvedores façam estágio periódico nas empresas clientes, junto
com as equipes de implantação para conhecer as reais necessidades dos usuários e
entender os requisitos;
(b) distribuir versões alfa e beta dos produtos junto a determinados clientes que,
reconhecidamente fazem teste de aceitação de novas versões do sistema;
(c) criar uma universidade interna orientada para análise de sistemas (modelo de negócio),
tecnologia da informação;
(d) capacitar o corpo gerencial com certificações em gestão de projetos;
(e) adquirir componentes de software para integrar as diferentes camadas de software:
aplicação, regras de negócio, banco de dados e apresentação;
(f) contratar especialistas em diferentes tecnologias (Windows, Mainframe, Linux, Web e
outros);
12
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
(g) contratar especialistas em diferentes metodologias de desenvolvimento (desde as
tradicionais, até as mais modernas, com ênfase em ambiente WEB);
(h) estimular a criação de redes de conhecimento, promovendo eventos de tecnologia e
metodologia;
(i) distribuir gratuitamente cópias de software nas universidades, colaborando com a
formação técnica dos estudantes;
(j) criar um setor de P&D em tecnologias de desenvolvimento de sistemas e
estabelecimento de contratos de transferência de tecnologia com empresas
desenvolvedoras de linguagens de programação e sistemas operacionais;
(k) criar concursos de conhecimentos em metodologia e tecnologia com premiação;
(l) criar bibliotecas de componentes de software e estimular o uso em vez do redesenvolvimento da funcionalidade.
4.3. Resultados
Analisando-se as respostas de ambas as organizações, percebe-se que todas as inovações
implementadas nos processos de desenvolvimento são melhorias pontuais e incrementais e
foram agrupadas em ações: externas às empresas, organizacionais, pessoais (técnicos e
gerentes), metodologia e tecnologia, conforme resume a tabela 3. Todas as ações indicadas
denotam preocupação das Unidades de Análise com o futuro de seus negócios e com a criação
de vantagem competitiva., Destaca-se os seguintes itens:
− os resultados dos acordos com as Universidades só ocorrerão depois de algum prazo, uma
vez que eles estão condicionados à formação dos alunos. No entanto, os objetivos de ambas
as Unidades de Análise são distintos; uma procura parceria para desenvolver componentes
para os clientes enquanto a outra objetiva gerar mercado futuro para seus produtos;
− o envolvimento dos clientes para testar os sistemas tem por objetivo fidelizar o cliente;
− a criação de um centro de pesquisa interno envolve custo, mas diminui a dependência da
organização em relação a terceiros;
− a capacitação gerencial, o estágio dos engenheiros nos ambientes dos clientes, a contratação
de especialistas, os estímulos para desenvolvimento pessoal e a criação de uma
Universidade corporativa têm por objetivo assegurar qualificação e disponibilidade da mãode-obra;
− a descrição dos processos de trabalho pelos atores que o executam garante que os trabalhos
serão executados de maneira natural e minimiza os efeitos de resistência às mudanças;
− a criação de bibliotecas de códigos e aquisição de componentes traduz uma inovação que
reduz tempo e garante padronização do processo de desenvolvimento.
RESUMO DAS INICIATIVAS DE INOVAÇÃO NOS PROCESSOS DE SOFTWARE
Tipo da
inovação
Externo
Organizacional
Pessoal
Alvo da
inovação
P&D Externo
Clientes
P&D Interno
Capacitação
gerencial
Capacitação
Detalhe da inovação
Acordos com Universidades
Distribuição de versões para teste
Criar centro de pesquisa interno
Capacitar os gerentes em metodologias de projeto
Estágio nos clientes
UA1
UA2
X
X
X
X
X
X
X
X
13
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
Metodologia
Tecnologia
técnica
Capacitação
técnica
Busca
de
talentos
Network
Motivacional
Metodologia
Linguagens
de
programação
Universidade corporativa
X
Contratação de especialistas
Criação de comunidade de conhecimento
Incentivos e premiação através do estudo
Capacitar as equipes a descrever os próprios
processos
Criação de biblioteca de componentes
Aquisição de componentes de software para 4
camadas
X
X
X
X
X
X
X
X
X
X
Fonte: o autor
Tabela 3 – Ações inovativas nos processos de software nas Unidades de Análise
5. Considerações finais
Como o desenvolvimento de software apresenta características de criatividade com
seguimento de modelos pré-definidos, as melhorias implementadas sempre se traduzem na
forma de ações inovativas que variam do “fazer melhor” ao “fazer diferente”. Elas podem ser
aplicadas para qualquer situação em que a empresa se encontra e para qualquer processo de
trabalho.
A prioridade da implementação deve priorizar as ações mais simples e que produzem os
efeitos mais benéficos tanto para os clientes quanto para os desenvolvedores.
Assim como os projetos de desenvolvimento e as situações são passageiras e temporárias, as
ações inovativas devem ser aplicadas no momento e na intensidade exata. A quantidade mais
adequada de mudança só vai ser conhecida na medida em que o exercício contínuo de
melhoria for uma política adotada pela organização.
Referências
ALLWAY, M. & CORBETT, S. Shifting to Lean Service: Stealing a Page from Manufacturer’s Playbooks.
Journal of Organizational Excellence. Spring 2002.
ANSOFF, H.I. & McDONNELL, E.J. Implementing Strategic Management. Prentice-Hall, 1984.
BLAKESLEE JR., J. A. Achieving quantum leaps in quality and competitiveness: implementing the Six Sigma
solution in your company. Proc. of the 53th Annual Quality Congress, American Society for Quality, Anaheim:
Califórnia, 486–496, May 1999.
CARD, D. N. Managing software quality with defects. Proceedings. 26th Computer Software and Applications
Conference, IEEE Computer Society, p.472-474, 2002.
CHAOS.
The
Chaos
Report,
2000.
<<Acesso
[http://www.agilealliance.org/system/article/file/1053/file.pdf].
em
26/03/20087>>,
disponível
em:
CLAVER, E. & GONZALEZ, R. & LLOPIS, J. An analysis of research in information systems (1981-1997).
In: Information & Management, v.37, n.4, p.181-195, Apr. 2000.
COHN, M. & FORD, D. Introducing an agile process to an organization. IEEE Computer Magazine, jun 2003,
s.1, p.74-78.
14
XXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO
A integração de cadeias produtivas com a abordagem da manufatura sustentável.
Rio de Janeiro, RJ, Brasil, 13 a 16 de outubro de 2008
COSTA, I. Contribuição para o aumento da qualidade e produtividade de uma fábrica de software através da
padronização do processo de recebimento de serviços de construção de softwares. Tese (Doutorado), Escola
Politécnica da USP, Departamento de Engenharia da Produção, 2003.
CHRISSIS, M. B. &; KONRAD, M. & SHRUM, S. CMMI: Guide for Process Integration and Product
Improvement. Boston: Addison-Wesley, 2003.
DODGSON, M. & GRIFFITHS, A. Sustainability and innovation. International Journal of Innovation
Management. Vol 6, n.3, 2004.
FENTON, N. E. & PFLEEGER, S. L. Software metrics: a rigorous approach, 2a ed. International Thomson
Computer Press, 1997.
FERNANDES, A.A. & ABREU, V.F. Implantando a Governança de TI. Rio de Janeiro: Brasport, 2006.
GOFFIN, K. & PFEIFFER, R. Competing in the innovation pentathlon. Innovation: Management, Policy and
Practice, v.4, n.1 e 3, p.143-150.
HUNTER, D. & B. SCHMIDT. Six sigma: benefits and approaches. Chemical Week, v.161, n.37, p.35-36, out,
1999.
MARASH, S. A. Six Sigma: Business Results Though Innovation. Proc of the 54th Annual Quality Congress of
the American Society for Quality, Indianapolis, Indiana, 627–630, May 2000.
MINTZBERG, H. &; QUINN, J. B. O processo da estratégia, 3ª ed. Porto Alegre: Bookman, 2001.
PATTERSON, M. From Experience: Key Opportunities for Improving Innovation Cycle Time. The CERTI
Conference on Rapid Development of Technology-based Products, Santa Catarina - Brasil, September 17, 1998.
PAULK, M. C. & WEBER, C. V. & CURTIS, B.& CHRISSIS, M. B. The Capability Maturity Model:
Guidelines for Improving the Software Process. SEI, Addison-Wesley Longman Inc. 1997.
PLONSKI, G.A. Bases para um Movimento pela Inovação Tecnológica no Brasil. São Paulo em perspectiva,
Vol. 19, n. 1, p. 25-33, jan./mar. 2005.
POPPENDIECK, M. Lean programming. Software Development Magazine. May-jun, 2001. Disponível em
<HTTP://www.agilealliance.org/articles/LeanProgramming.htm>. Acesso em 23/out/2007.
PRAHALAD, C. K. & HAMEL, G. The Core Competence of the Corporation. Harvard Business Review,
May-June 1990. p. 79-91, 1990.
PRESSMAN, R.S. Software Engineering: A Practitioner's Approach, 5a. ed. Mcgraw-hill / Tecmedd, 2004.
TIDD, J. & BESSANT, J. & PAVITT, K. Managing Innovation: integrating technological, market and
organizational change. 3rd Ed. Chichester: John Wiley & Sons, 2005
YIN, R.K. Case Study Research: Design and Methods. Newbury Park, Rev. ed. Sage Publications,1998.
15
Download

maturidade e inovação no desenvolvimento de software