Acessibilidade / Reportar erro

Alinhando objetivos estratégicos e processo de desenvolvimento em empresas de software

Aligning strategic objectives and development practices at software companies

Resumos

Sistemas de software são atualmente responsáveis por parte significativa das inovações tecnológicas viabilizadas em produtos e serviços. A história do software é recente, assim como são recentes as pesquisas sobre o tema, que tem como foco principal o aprimoramento dos seus processos de desenvolvimento. Apesar das contribuições trazidas por essas teorias, a questão do alinhamento entre objetivos estratégicos e o processo de desenvolvimento nas empresas de software considerando as suas principais capacidades produtivas permanece um tema inexplorado. Como consequência, técnicas da engenharia de software são aplicadas sem incorporar considerações de valor nos processos de análise e na tomada de decisões. Este artigo analisa e apresenta soluções para duas questões: como diferenciar as empresas de software de acordo com seus processos produtivos mais relevantes e como garantir que esses processos de desenvolvimento encontram-se alinhados com os objetivos do negócio. A abordagem resultante inclui um referencial para classificação de empresas de software e uma técnica de planejamento tecnológico para essas empresas. O projeto de pesquisa incluiu a realização de surveys, pesquisa-ação e estudos de caso.

Gestão tecnológica; Technology roadmapping; Processo de desenvolvimento de software


Software systems are currently responsible for a significant part of the technological innovations introduced in products and services. software history is recent and research concerning software usually aims to improve process capabilities. Despite the contributions of these theories, questions concerning the alignment between strategic objectives and development process at software companies considering their most important capabilities have not been clarified. Consequently, software engineering techniques are applied without value considerations for analysis and decision. This paper analyses and proposes solutions for two issues: how to differentiate software companies according with their most relevant development activities and how to guarantee that the development process is aligned with business goals. Resulting approach includes a referential to analyze software companies and a technique to develop technological plans for these companies. Research project included the development of surveys, action-researches and case studies.

Technology management; Technology roadmapping; software development process


Alinhando objetivos estratégicos e processo de desenvolvimento em empresas de software

Aligning strategic objectives and development practices at software companies

André Leme FleuryI; Mauro de Mesquita SpinolaII; Fernando José Barbin LaurindoIII; Marcelo Schneck de Paula PessôaIV

IUSP, Brasil. alfleury@usp.br

IIUSP, Brasil. mauro.spinola@usp.br

IIIUSP, Brasil. fjblau@usp.br

IVUSP, Brasil. mpessoa@usp.br

RESUMO

Sistemas de software são atualmente responsáveis por parte significativa das inovações tecnológicas viabilizadas em produtos e serviços. A história do software é recente, assim como são recentes as pesquisas sobre o tema, que tem como foco principal o aprimoramento dos seus processos de desenvolvimento. Apesar das contribuições trazidas por essas teorias, a questão do alinhamento entre objetivos estratégicos e o processo de desenvolvimento nas empresas de software considerando as suas principais capacidades produtivas permanece um tema inexplorado. Como consequência, técnicas da engenharia de software são aplicadas sem incorporar considerações de valor nos processos de análise e na tomada de decisões. Este artigo analisa e apresenta soluções para duas questões: como diferenciar as empresas de software de acordo com seus processos produtivos mais relevantes e como garantir que esses processos de desenvolvimento encontram-se alinhados com os objetivos do negócio. A abordagem resultante inclui um referencial para classificação de empresas de software e uma técnica de planejamento tecnológico para essas empresas. O projeto de pesquisa incluiu a realização de surveys, pesquisa-ação e estudos de caso.

Palavras-chave: Gestão tecnológica. Technology roadmapping. Processo de desenvolvimento de software.

ABSTRACT

Software systems are currently responsible for a significant part of the technological innovations introduced in products and services. software history is recent and research concerning software usually aims to improve process capabilities. Despite the contributions of these theories, questions concerning the alignment between strategic objectives and development process at software companies considering their most important capabilities have not been clarified. Consequently, software engineering techniques are applied without value considerations for analysis and decision. This paper analyses and proposes solutions for two issues: how to differentiate software companies according with their most relevant development activities and how to guarantee that the development process is aligned with business goals. Resulting approach includes a referential to analyze software companies and a technique to develop technological plans for these companies. Research project included the development of surveys, action-researches and case studies.

Keywords: Technology management. Technology roadmapping. software development process.

1. Introdução

A importância dos sistemas de software segue crescendo para grande parte das organizações. Para as organizações do setor de serviços, a incorporação contínua das tecnologias de informação (TI) transforma seus processos de negócios e viabiliza a prestação de serviços mais diversificados, personalizados e com maior qualidade (THONG et al., 2011). A expansão das funcionalidades viabilizadas pelos softwares embarcados nos produtos, por sua vez, move a inovação do hardware para o software, altera estratégias de pesquisa e desenvolvimento e traz a gestão desses sistemas para o centro das decisões corporativas nas empresas de manufatura (PROBERT et al., 2007).

Apesar do aumento da sua importância, a realidade vivenciada pelas empresas desenvolvedoras de software é desafiadora. Se a década de 1990 foi caracterizada pelo crescimento exponencial dessas empresas, motivado pela bolha da internet, pelo bug do milênio e por uma crença generalizada no aumento da produtividade graças à adoção de diferentes sistemas de informação (BRYNJOLFSSON; HITT, 1998), na última década a indústria de software experimentou taxas de crescimento bastante inferiores (LONDON, 2004; SOFTEX, 2009). Até o início da década de 2000, grande parte dos esforços de melhoria nessas organizações tinha como foco o aprimoramento da capacidade dos processos produtivos internos (GINSBERG; QUINN, 1995; BECK, 1999; KRUCHTEN, 2000). Porém, ao longo da última década, as tecnologias mencionadas anteriormente também transformaram as bases da indústria de software e viabilizaram modelos de negócios revolucionários (GERSTNER, 2002; AUSTIN, 2004; CRAWFORD et al., 2005; LASHINSKY, 2012), alteraram as fronteiras das organizações, que passaram a ter maior responsabilidade na gestão dos seus fornecedores (GALLAGHER et al., 2011), viabilizaram novos arranjos produtivos (REIS; AMATO NETO, 2012) e demandaram a reestruturação dos processos produtivos, resultando na prestação de serviços tecnológicos no lugar da comercialização de licenças de uso (DUBEY; WAGLE, 2007).

Frente à maior complexidade no relacionamento com as empresas de software e motivadas pela crescente importância desses sistemas para a obtenção dos objetivos estratégicos, empresas de manufatura e de serviços passaram a buscar melhor alinhamento entre estratégia e gestão da tecnologia da informação, visando a transformação da estratégia da organização em diretrizes e ações, para a TI capazes de garantir o suporte aos objetivos do negócio (FERNANDES; ABREU, 2008). Com esse objetivo, diferentes modelos tornaram-se populares, dentre os quais vale destacar:

• ITIL: apresenta diretrizes para a estruturação e operação dos serviços de TI, com aplicação tanto para empresas desenvolvedoras de software como para empresas usuárias. Seus principais processos incluem a formulação da estratégia dos serviços de TI considerando os principais direcionadores de mercado, a identificação, seleção e priorização de oportunidades, o design dos serviços tendo em vista o projeto de um portfólio capaz de atingir os objetivos propostos e a transição dos serviços e a sua operação rotineira e gerenciada (OFFICE..., 2007);

• CMMI - Capability Maturity Model Integration: atualmente compreende três modelos principais - o modelo para desenvolvedores, com foco no aprimoramento contínuo do processo de desenvolvimento de software; o modelo para adquirentes, com foco na estruturação e no aprimoramento dos relacionamentos cliente-fornecedor; e o modelo para serviços, que busca contribuir para a satisfação dos clientes por meio do aprimoramento da performance dos serviços prestados (SOFTWARE..., 2010); e

• MPS.BR - Melhoria de Processo de Software Brasileiro: tem como foco principal as pequenas e médias empresas brasileiras desenvolvedoras de software; estabelece referências para o processo de desenvolvimento e diretrizes para a avaliação comparativa dos processos nas empresas (SOFTEX, 2011).

• COBIT: tem foco maior no controle e na auditoria dos processos ligados à TI, demandando a implantação de métodos para documentação e uma estrutura capaz de garantir o gerenciamento e a auditoria da área (LAURINDO, 2008)

A contribuição trazida por esses referenciais para o aprimoramento dos processos de desenvolvimento de software, de prestação de serviços de TI, de estabelecimento de relacionamentos cliente-fornecedor e de gerenciamento das atividades de auditoria é inegável. Porém, compreender como vincular objetivos organizacionais e atividades de desenvolvimento permanece uma tarefa complexa para as empresas de software, já que as pesquisas publicadas e os referenciais propostos destinam-se a todas as empresas sem diferenciações, ou seja, não consideram explicitamente como as diferentes características do mercado no qual essas empresas atuam influenciam na determinação dos seus objetivos estratégicos e como esses objetivos estratégicos transformam-se em prioridades para o aprimoramento das diferentes atividades que compõem os seus processos de desenvolvimento.

Essas observações reforçam a relevância de pesquisas que analisam de maneira diferenciada o alinhamento entre objetivos estratégicos e processos de desenvolvimento de software considerando as capacidades atuais e planejadas para a organização. Este artigo apresenta os resultados de um projeto de pesquisa que analisou essa problemática e propõe soluções para três questões principais:

1. Como diferenciar as empresas de software de acordo com suas características mais relevantes;

2. Como priorizar os diferentes sistemas desenvolvidos por uma empresa de software a partir dos principais objetivos estratégicos estabelecidos; e

3. Como alinhar as diferentes atividades que compõem o processo de desenvolvimento de software com os objetivos estratégicos da corporação, facilitando a avaliação, comunicação e implementação de iniciativas de melhoria de processo.

O resultado obtido com esta pesquisa é uma abordagem capaz de alinhar objetivos estratégicos e atividades de desenvolvimento em empresas de software consistente com os resultados esperados de pesquisas realizadas nas áreas de engenharia de produção e engenharia de software, que buscam não apenas desenvolver conhecimentos sobre avaliação e melhoria de processos, mas também integrar considerações de valor em seus princípios e práticas (BOEHM, 2006).

As próximas seções apresentam os resultados de pesquisas que estabeleceram mecanismos para diferenciar as empresas de software de acordo com seus processos mais relevantes e uma abordagem para alinhamento entre objetivos estratégicos e processo de desenvolvimento em empresas de software.

2. Caracterizando empresas de software

O processo de desenvolvimento de software difere dos processos de prestação de serviços e manufatura por causa das suas propriedades essenciais. De acordo com Brooks (1987), sistemas de software são complexos, alteráveis e abstratos e não podem ser representados graficamente como os artefatos físicos; para Sommerville (2007), a engenharia de software apresenta-se como uma disciplina diferente das demais engenharias, já que suas teorias, métodos e ferramentas não são restritos por leis físicas ou por processos materiais.

Apesar das diferenças apontadas, pesquisas sobre o mercado de software usualmente classificam as empresas como prestadoras de serviços ou desenvolvedoras de produtos, onde prestadoras de serviços desenvolvem sistemas de software com foco num cliente principal e desenvolvedores de produtos desenvolvem sistemas de software para um grande número de clientes (HOCH et al., 1999; VELOSO et al., 2003; LONDON, 2004; ASATO et al., 2011). Apesar dessa categorização ser útil para algumas análises como, por exemplo, análises sobre estruturas de mercado, economias de escala e diretrizes para desenvolvimento de novos produtos (HOCH et al., 1999; LONDON, 2004; TONINI; CARVALHO; SPINOLA, 2008), ela possui aplicabilidade limitada para as empresas de software, pois esse processo difere significativamente dos processos de manufatura e de serviços (SOMMERVILLE, 2007). Como consequência, tanto pesquisa como prática em engenharia de software tendem a ser realizadas de forma neutra e, na perspectiva de um desenvolvedor de software, diferentes atividades de desenvolvimento são consideradas igualmente relevantes para a obtenção dos objetivos corporativos (BOEHM, 2006).

A Figura 1 apresenta duas tipologias que utilizam categorias de processos genéricos para classificar as diferentes empresas que atuam nos segmentos de serviços e de manufatura (SILVESTRO et al., 1992; SILVESTRO, 1999).


De acordo com esses autores, tipologias baseadas em processos genéricos, representadas graficamente com o uso de diagonais volume-variedade, apresentam-se como de grande relevância para o estudo de empresas dos setores de manufatura e de serviços, pois viabilizam que todas as empresas que atuam nesses segmentos (manufatura ou serviços) possam ser classificadas e analisadas de acordo com um referencial único, tornando possível a elaboração de análises que englobam todas as empresas do setor, tais como a compreensão das estratégias corporativas e a identificação dos processos mais relevantes. Como resultado, as tipologias propostas são aceitas para a classificação de todas as diferentes empresas dos setores de serviços e de manufatura (SILVESTRO et al., 1992). Empresas de manufatura são classificadas de acordo com o número de unidades que produzem num determinado período de tempo; num extremo encontram-se empresas que produzem continuamente e no outro extremo encontram-se empresas que produzem apenas uma unidade por vez. Já as empresas de serviços são classificadas de acordo com o número de clientes atendidos numa unidade típica por dia; num extremo encontram-se as empresas de serviços de massa e no outro extremo, as empresas de serviços profissionais.

Analisando a aplicabilidade dessa classificação para as empresas de software, verifica-se que esses sistemas sempre são desenvolvidos na forma de projetos e podem ser replicados indefinidamente com custo próximo a zero, tornando número de unidades produzidas uma característica sem significado prático para esse tipo de empresa. Por outro lado, uma empresa de software pode eventualmente distribuir seus sistemas sem nenhum envolvimento direto com seus clientes, e assim, ao contrário das empresas de serviços, número de clientes atendidos torna-se uma medida indireta, vinculada à forma como o sistema é distribuído. Logo, é possível concluir que a classificação de empresas de software como desenvolvedoras de produtos ou prestadoras de serviços não é apropriada, pois não permite o seu enquadramento de acordo com os processos genéricos propostos para os setores de manufatura e serviços.

Por esse motivo, como primeiro objetivo esta pesquisa buscou compreender como diferenciar as empresas de software de acordo com seus processos genéricos. Como não foram identificadas pesquisas com escopo similar realizadas previamente, os autores elaboraram uma pesquisa exploratória, formulada e implementada de acordo com as diretrizes propostas por Forza (2002), buscando determinar quais conceitos devem ser medidos de forma a estabelecer critérios capazes de evidenciar os processos genéricos nesse tipo de organização e viabilizar a distinção entre diferentes categorias de empresas de software.

2.1. Design da pesquisa exploratória

A pesquisa proposta teve como objetivo identificar características capazes de diferenciar as empresas desenvolvedoras de software de acordo com seus processos genéricos e, dessa forma, criar um referencial único, capaz de incorporar todas as empresas que atuam no setor e permitir comparações entre diferentes perfis de empresa, sejam elas desenvolvedoras de produtos ou prestadoras de serviços.

Para criar um referencial único capaz de viabilizar comparações entre diferentes perfis de empresas de software, o processo de estruturação do questionário procurou incluir temas relevantes para todas as empresas que atuam nesse mercado, compreendendo informações sobre práticas comerciais, gerenciais e de desenvolvimento. Questões sobre práticas comerciais buscaram identificar quais os principais mercados de atuação da empresa, o perfil dos clientes atendidos e as finalidades comerciais dos sistemas desenvolvidos; questões sobre gerenciamento de software compreenderam conceitos, métodos e técnicas para gerenciar produtos e projetos de software, incluindo atividades como gerenciamento de projetos, gerenciamento de riscos, qualidade de software e gerenciamento de configurações (ABRAN; MOORE, 2004). Finalmente, questões sobre desenvolvimento de software estruturaram-se em torno dos seus quatro processos fundamentais, comuns para todos os projetos de software: especificação, desenvolvimento, validação e evolução do software (SOMMERVILLE, 2007). O resultado obtido foi um questionário com 300 questões, dividido em cinco áreas principais.

Para validar o questionário foram convidadas a respondê-lo organizações com relacionamento prévio com a universidade dos autores, que consideraram o questionário apropriado. Para criar uma amostra representativa de empresas de software foram convidados a responder o questionário gerentes de projeto das 200 maiores empresas de tecnologia da informação e comunicação (TIC) operando no país. O questionário foi publicado no site da universidade e os respondentes convidados por telefone a preenchê-lo.

2.2. Análise dos dados obtidos

Trinta e oito empresas responderam o questionário e os resultados obtidos foram analisados utilizando-se três conjuntos principais de variáveis para comparar as empresas: finalidade do software, práticas comerciais e características do processo de desenvolvimento. Os respondentes foram questionados sobre quais tipos de software são mais importantes para suas vendas corporativas. Apesar dos resultados obtidos serem consistentes com as descrições sobre o mercado de software brasileiro, forte no desenvolvimento de aplicativos customizados, sistemas de gestão empresarial e sistemas de informações gerenciais, mas com pouco desenvolvimento de pacotes de software e de sistemas embutidos (VELOSO et al., 2003), não foi possível diferenciar as empresas participantes da pesquisa utilizando apenas o propósito do software como variável de análise. Quanto às respostas sobre processos de desenvolvimento, todos os respondentes executam com maior ou menor rigor as mesmas práticas, comprovando a existência de um conjunto de processos genéricos que são comuns para todas empresas de software (SOMMERVILLE, 2007); a análise de práticas de desenvolvimento individualmente não foi capaz de evidenciar a existência de diferentes grupos de empresas dentro da amostra avaliada.

Os respondentes também foram questionados sobre suas práticas comerciais, incluindo número de projetos ativos (NP) e número de clientes ativos (NC) nas suas unidades de negócio; foi identificado que companhias com números semelhantes de clientes e de projetos usualmente operavam no mesmo segmento de mercado. Dessa forma, analisando as empresas utilizando o relacionamento entre número de clientes ativos e número de projetos ativos como base para comparação, foi possível identificar três categorias de empresas desenvolvedoras de software:

• Empresas com menos de um cliente por projeto (NC/NP < 1);

• Empresas com mais de um e menos de dez clientes por projeto (1 < NC/NP < 10); e

• Empresas com mais de dez clientes por projeto (NC/NP > 10).

Para validar a existência das três categorias identificadas foi realizada uma análise de variância (ANOVA) (DEVORE, 2006) e a partir dos resultados obtidos pôde-se concluir que as três categorias observadas são significativas estatisticamente (FLEURY, 2007). A interpretação sobre o significado de cada categoria será apresentado a seguir.

2.3. Interpretando os resultados obtidos

De acordo com Abran e Moore (2004), o gerenciamento de software lida com conceitos, métodos e técnicas para gerenciar um projeto de software e suas atividades de desenvolvimento; dessa forma, cada projeto de software pode ser considerado como uma unidade de análise para uma empresa desse setor, pois um ciclo de vida completo é executado cada vez que um projeto é concluído, incluindo todos seus processos gerenciais e de desenvolvimento. Cada projeto de desenvolvimento gera um sistema final, incluindo instruções, estruturas de dados e documentações (BROOKS, 1987). Dessa forma, o número de clientes que pode ter interesse no resultado desse projeto cria uma perspectiva de escala para ele. Se o resultado de um projeto tem milhares de clientes potenciais, a estratégia comercial da empresa pode se focar na comercialização em massa desse sistema. Por outro lado, se o número de clientes que virão a se beneficiar com o resultado desse projeto é apenas o cliente inicial, a empresa pode se focar em vender mais projetos de software para esse cliente específico, já que as principais barreiras para o estabelecimento do relacionamento comercial terão sido superadas.

Assim, a relação entre número total de clientes e número total de projetos revela a especialização da organização em direção ao desenvolvimento personalizado ou de massa e evidencia três grupos de empresas de software:

• Empresas orientadas a clientes: empresas com menos de um cliente por projeto, desenvolvendo diversos projetos de software únicos para clientes específicos;

• Empresas orientadas a serviços: empresas com alguns clientes por projeto, usualmente trabalhando com um pequeno número de sistemas de software e comercializando serviços relacionados, incluindo customização, implantação, treinamento e operação (no caso de terceirização de processos); e

• Empresas orientadas a produtos: companhias com muitos clientes por projeto, usualmente desenvolvendo pacotes de software (ou software de prateleira) para serem comercializados para muitos clientes.

2.4. Propondo uma diagonal volume-variedade para empresas de software

Conforme mencionado no início desta seção, como primeiro objetivo esta pesquisa buscou identificar características capazes de diferenciar as empresas de software de acordo com seus processos fundamentais. A análise dos resultados obtidos permitiu identificar o relacionamento que estabelece esta diferenciação, número de clientes ativos dividido pelo número de projetos ativos, viabilizando a sua representação gráfica numa diagonal volume-variedade, como mostra a Figura 2.


A conceituação de um referencial de análise utilizando tipos genéricos de processos para empresas de software é relevante pois incorpora todas as empresas que atuam neste setor, sejam elas desenvolvedoras de produtos ou prestadoras de serviços, e viabiliza comparações entre diferentes perfis organizacionais, como será apresentado nas próximas seções.

3. Detalhando as categorias de empresas de software

A análise dos dados obtidos com a pesquisa trouxe ainda outros indicadores sobre quais práticas de desenvolvimento sãõ mais relevantes para cada categoria de empresa identificada. Por exemplo, 67% das empresas orientadas a produtos consideraram testes como o treinamento mais importante a ser oferecido a seus funcionários, enquanto que modelagem de sistemas apresentou-se como o treinamento mais relevante para 63% das empresas orientadas a serviços e gerenciamento de configurações apresentou-se como o treinamento mais relevante para 55% das empresas orientadas a clientes.

Com as categorias propostas validadas estatisticamente e contando com indícios sobre as características de produtos e serviços oferecidos e sobre os processos de software mais relevantes para cada tipo de empresa, a segunda etapa deste trabalho buscou refinar os modelos, conceitos e proposições apresentados anteriormente, de forma a complementar o referencial conceitual que caracteriza as empresas de acordo com seus processos genéricos. Para isto, foi realizada nova survey, dessa vez com caráter confirmatório (FORZA, 2002), buscando validar o modelo elaborado e incorporar novas considerações sobre como acontece o processo de elaboração de objetivos estratégicos, definição de produtos e serviços a serem oferecidos e priorização de diferentes atividades de desenvolvimento para cada uma das categorias de empresas de software propostas.

3.1. Design da pesquisa confirmatória

O processo de condução da pesquisa confirmatória empregou entrevistas semiestruturadas nas quais os respondentes tiveram a possibilidade de analisar o modelo e as características principais propostas para cada categoria de empresa, podendo concordar ou não com as proposições e apresentar suas considerações a respeito. Foram realizadas entrevistas com profissionais envolvidos diretamente com desenvolvimento de software, incluindo diretores e gerentes de empresas e pesquisadores de universidades do Brasil e do Reino Unido. Todos os entrevistados concordaram com a existência das três categorias identificadas na fase exploratória deste trabalho e as principais considerações adicionais sobre as dinâmicas do mercado de software e as características de cada tipo de empresa são apresentadas a seguir.

3.2. Adotando um referencial para descrever o mercado de software

A primeira questão apresentada nessa pesquisa confirmatória indagava aos respondentes sobre a validade das três categorias de empresas propostas e buscava determinar como acontece o relacionamento entre elas, em especial sobre quais produtos e serviços são transacionados nesse mercado. De acordo com os resultados obtidos com a aplicação das entrevistas semiestruturadas, os seguintes sistemas genéricos de software são comercializados nesse mercado:

• Aplicativos: software que pode ser usado diretamente pelo cliente final sem necessidade de treinamento ou customização como, por exemplo, planilhas de cálculo ou processadores de texto;

• Produtos complexos: software que precisa ser customizado antes de ser utilizado pelo cliente final como, por exemplo, sistemas de gestão empresarial;

• Ferramentas: software que será utilizado para construir novos softwares, como, por exemplo, aplicativos de desenvolvimento e editores de imagens;

• Componentes: software que será incorporado na construção de outro software, tais como rotinas e classes de objetos;

• Software original: software especificamente desenvolvido para o cliente, de acordo com as suas especificações únicas; e

• Software customizado: produto complexo adaptado para o cliente, pronto para entrar em operação.

Utilizando esses sistemas de software e as categorias propostas anteriormente, o relacionamento entre as diferentes empresas que compõem o mercado de software pode ser analisado de acordo com a Figura 3.


Esse referencial será utilizado no detalhamento das características principais de cada categoria de empresa, como apresentado a seguir.

3.3. Características específicas de cada categoria de empresa

De acordo com o esquema apresentado, empresas orientadas a produtos formam a base do mercado de software, sendo responsáveis pelo desenvolvimento de sistemas que serão utilizados diretamente pelos clientes finais (aplicativos) ou por outras empresas de software (ferramentas, componentes e produtos complexos). A concorrência entre empresas que pertencem a essa categoria ocorre no nível do produto final, ou seja, tende a conquistar maior participação no mercado a empresa que oferecer o software com funcionalidades mais inovadoras e nível de qualidade apropriado. Dessa forma, a capacidade de introduzir inovações no mercado é um diferencial competitivo para essa categoria de empresa e esse fato é capaz de explicar duas tendências atuais do mercado de software. Primeiro, as grandes corporações estão enfrentando maior dificuldade para trazer inovações ao mercado e, por esse motivo, têm optado por se posicionarem como orientadas a serviços, controlando diretamente o relacionamento com os usuários finais corporativos e adquirindo as pequenas empresas de software que têm criado sistemas de software inovadores. Segundo, sistemas de software que não apresentam inovações continuamente garantem às comunidades de desenvolvedores de software livre (que não exige o pagamento de licenças) o tempo necessário para terem as suas funcionalidades mais importantes copiadas e distribuídas gratuitamente. Por outro lado, como o produto final será "empacotado" para ser utilizado por um grande número de clientes (usuários finais ou outras empresas de software), as empresas orientadas a produtos devem alocar parte de seus recursos para garantir que o produto final atingirá padrões adequados de qualidade, criando equipes de especialistas em testes e adotando procedimentos formais. Finalmente, os processos de documentação também são especialmente relevantes para essa categoria de empresa, pois a documentação será utilizada como base para eventuais customizações do software e para auxiliar os usuários finais durante a sua operação.

Empresas orientadas a serviços experimentam uma realidade distinta. Como essa categoria de empresa comercializa serviços relacionados com customização, implementação, treinamento e terceirização da operação do software, o serviço que está sendo comercializado é razoavelmente previsível e é possível para os clientes avaliarem os benefícios e os custos de cada fornecedor, podendo optar pelo fornecedor com menor custo, desde que ele garanta padrões aceitáveis de qualidade. Como consequência, o volume de recursos disponíveis para desenvolver o projeto tende a ser minimizado e, dessa forma, o gerenciamento do projeto adquire grande importância para essas empresas, buscando garantir que o projeto será entregue no prazo, de acordo com o orçamento e com os parâmetros de qualidade esperados. Para prover o serviço da maneira apropriada, o processo de customização e implantação do software deve ser realizado de acordo com as características de cada cliente, fazendo com que os profissionais que atuam nesse tipo de empresa tenham de compreender simultaneamente as características técnicas do sistema e o modelo de negócios do cliente.

Finalmente, empresas orientadas a clientes possuem um número de projetos superior ao número de clientes, fazendo com que cada cliente apresente-se como de grande relevância para o faturamento. Cada projeto de software comercializado é único, desenvolvido de acordo com as especificações levantadas junto a cada cliente; como consequência, não é possível para os clientes analisarem os padrões de qualidade de seus fornecedores comparando as características do software que está sendo desenvolvido com as características de sistemas similares (como ocorre nas empresas orientadas a produtos) e, desta forma, os clientes usualmente avaliam diferentes fornecedores de acordo com a qualidade dos seus processos de desenvolvimento; assim, processos de garantia de qualidade nesse tipo de empresa focam-se na adoção de metodologias orientadas a processos como, por exemplo, o Capability Maturity Model Integration (CHRISSIS; KONRAD; SHRUM, 2006). Pelo fato de o software ser desenvolvido de acordo com os requisitos específicos de cada cliente, usualmente eles não são completamente compreendidos antes do projeto aproximar-se do seu final. Dessa maneira, a mudança de requisitos é uma realidade constante para essa categoria de empresa e, como consequência, duas atividades adquirem importância significativa: o gerenciamento de requisitos, que deve ser capaz de incorporar as alterações solicitadas de maneira apropriada no sistema que está sendo desenvolvido, e o gerenciamento de configuração de software, já que mudanças constantes nos requisitos geram novas versões de programas.

As principais características das empresas apresentadas anteriormente podem ser sumarizadas de acordo com a Tabela 1.

4. Roadmapping para empresas de software

O referencial conceitual apresentado anteriormente permite a diferenciação das empresas de software considerando a forma como elas estruturam seus processos de desenvolvimento tendo em vista o seu mercado principal. Com a utilização desse referencial é possível para uma empresa de software analisar seu posicionamento atual e planejado no mercado e priorizar diferentes processos organizacionais de forma a atingir seus objetivos corporativos.

De forma a criar uma abordagem para alinhar objetivos estratégicos e processos de desenvolvimento nas empresas de software, a última etapa desta pesquisa incluiu a adaptação da abordagem Technology Roadmapping de acordo com o contexto específico dessas empresas. A adaptação dessa abordagem incluiu a revisão dos principais conceitos relacionados ao tema, a realização de uma pesquisa-ação (COUGHLAN; COGHLAN, 2002) para prototipagem inicial da arquitetura do roadmap, a validação do protótipo junto com especialistas e a realização de três estudos de caso (VOSS; TSIKRIKTSIS; FROHLICH, 2002) para validação em campo do método proposto.

4.1. Technology Roadmapping

O Technology Roadmapping é uma técnica de planejamento e gerenciamento corporativo que é utilizada para alinhar objetivos organizacionais e recursos tecnológicos em empresas de manufatura e de serviços (WELLS et al., 2004; PHAAL; FARRUKH; PROBERT, 2005). A aplicação da técnica representa um desafio considerável para as empresas, pois apesar do roadmap resultante ser simples em seu conceito e estrutura, ele representa o resultado final de um processo completo de planejamento estratégico. Os principais desafios para sua elaboração incluem a iniciação do processo, a adoção de um método de desenvolvimento robusto e como tornar o processo contínuo (PHAAL; FARRUKH; PROBERT, 2010).

De forma a lidar com as questões apresentadas, Probert, Farrukh e Phaal (2003) formularam o T-Plan Fast-Start Technology Roadmapping Process. Os objetivos propostos pelo método incluem o suporte à iniciação do processo, a criação dos vínculos principais entre recursos tecnológicos e direcionadores de negócio e a identificação de lacunas de conhecimento sobre o mercado, sobre os produtos e serviços e sobre as tecnologias que serão utilizadas. O resultado é um primeiro roadmap tecnológico, capaz de facilitar a comunicação entre o pessoal técnico e o pessoal comercial. Geralmente, o T-Plan possui três etapas, planejamento, workshops e encerramento, sendo que o processo padrão inclui quatro workshops: mercado, produto, tecnologia e roadmapping (PHAAL; FARRUKH; PROBERT, 2010).

4.2. Roadmapping para empresas de software

Roadmaps podem ser representados de diversas maneiras - a forma mais difundida é apresentada na Figura 4.


O roadmap genérico é um gráfico que representa a evolução do planejamento de uma empresa ao longo do tempo e que inclui um número variável de níveis de análise, usualmente compreendendo as perspectivas de mercado e tecnológica (GROENVELD, 1997). De acordo com Wells et al. (2004), a perspectiva tecnológica analisa a evolução futura de uma tecnologia ou de um grupo de tecnologias, vinculando as oportunidades identificadas aos produtos e serviços imaginados. Por sua vez, a perspectiva mercadológica analisa a evolução do mercado, das necessidades dos clientes e das características de produtos e serviços que serão disponibilizados, de forma a identificar em quais tecnologias investir e em qual momento.

O processo de adaptação da técnica technology roadmapping em cada empresa inclui a definição do contexto do roadmap, o estabelecimento da sua arquitetura e a definição de qual processo será utilizado para a sua elaboração (PHAAL; FARRUKH; PROBERT, 2004). Apesar de as questões sobre o contexto do roadmap e sobre o processo de elaboração dependerem da realidade específica de cada empresa, o fato de os projetos de software incluírem um conjunto comum de atividades (SOMMERVILLE, 2007) sugere que a arquitetura do roadmap possa ser semelhante para diferentes companhias de software.

Para uma empresa de software, a análise sobre a evolução do mercado traz conhecimentos relevantes para a identificação de futuras oportunidades e ameaças e, dessa forma, ajuda a definir como devem evoluir os sistemas de software existentes, quais sistemas deverão ser criados e quais deverão ser descontinuados. Porém, devido às características essenciais dos sistemas de software, conceber um roadmap utilizando apenas a perspectiva tecnológica e sem considerar as particularidades específicas de cada etapa de desenvolvimento tem aplicação limitada, já que a melhoria das capacidades de desenvolvimento contribui de maneira mais significativa para a criação de sistemas de software com alto interesse comercial. Por essa razão, teorias e conceitos relevantes sobre processos de software como, por exemplo, o Capability Maturity Model (SOFTWARE..., 2010), o ITIL (OFFICE..., 2007) e o MPS.BR (SOFTEX, 2011) focam-se principalmente em iniciativas de avaliação e melhoria do processo de desenvolvimento.

Por esses motivos, para adaptar a técnica technology roadmapping para empresas de software, ao invés de utilizar apenas uma perspectiva tecnológica foram incorporadas perspectivas capazes de representar as diferentes atividades que compõem o processo de desenvolvimento de software. Para analisar quais perspectivas devem ser incorporadas na arquitetura do roadmap adaptado para empresas de software foram novamente analisadas as atividades que são executadas num projeto típico. O desenvolvimento de software segue um ciclo de vida definido (BECK, 1999; KRUCHTEN, 2000; SOMMERVILLE, 2007), iniciando-se com uma ideia ou necessidade, que pode ser satisfeita completamente ou parcialmente com a utilização de um software, e termina com a sua descontinuação; suas etapas de desenvolvimento principais incluem o gerenciamento de requisitos, design e arquitetura, programação, testes e documentação. Os processos gerenciais executados em cada projeto incluem o gerenciamento de riscos, a garantia de qualidade de software, o gerenciamento de configurações, o gerenciamento de projetos e os processos de integração com outros sistemas (ABRAN; MOORE, 2004).

A primeira implementação da arquitetura proposta foi realizada na forma de uma pesquisa-ação (COUGHLAN; COGHLAN, 2002), planejada de forma a incorporar as perspectivas discutidas anteriormente e executada durante o processo de desenvolvimento de um software, resultado de um projeto de pesquisa executado numa universidade do Reino Unido. O ciclo de vida do software iniciou-se com uma nova ideia, o desenvolvimento de um novo padrão para comunicação e difusão de resultados de projetos de pesquisa desenvolvidos naquela universidade, sugestão obtida junto à comunidade empresarial que acompanhava a execução desse projeto (PROBERT et al., 2007). Dessa forma, a elaboração do roadmap tinha como objetivo representar a evolução deste software ao longo do tempo, de forma que sua evolução pudesse resultar num padrão para a divulgação de resultados de pesquisas acadêmicas executadas naquele centro para as diferentes comunidades empresariais envolvidas. O roadmap foi desenvolvido iterativamente e, nesse caso específico, o processo de construção não foi estruturado. A arquitetura resultante do roadmap, avaliada e validada por especialistas no tema technology roadmapping que trabalham naquele centro de pesquisas, encontra-se representada na Figura 5.


5. Consolidando a abordagem de alinhamento entre objetivos estratégicos e processo de desenvolvimento para empresas de software

A abordagem proposta para alinhamento entre objetivos estratégicos e processo de desenvolvimento em empresas de software incorpora evidências e conhecimentos apresentados nas seções anteriores deste artigo e mantém a dinâmica original do T-Plan, incorporando a realização de quatro workshops para identificação, análise e priorização de informações relacionadas com mercado, produtos e serviços, processo de desenvolvimento e consolidação do mapa.

A aplicação da abordagem tem início com a classificação da empresa de acordo com o seu posicionamento na diagonal volume - variedade proposta para as empresas de software. As atividades que devem ser desempenhadas em cada workshop são apresentadas na Tabela 3.

6. Validação da abordagem proposta

A última etapa da pesquisa teve como objetivo validar a abordagem proposta por meio da construção de roadmaps para empresas de software e, para isso, foram realizados três estudos de caso. Cada estudo de caso teve como objeto de análise uma empresa pertencente a uma das categorias apresentadas anteriormente, garantindo a representatividade da amostra em relação ao referencial proposto. A metodologia de pesquisa foi considerada apropriada pois, de acordo com Voss, Tsikriktsis e Frohlich (2002), os estudos de caso devem ser executados quando o fenômeno pode ser estudado no seu ambiente natural e teorias explanatórias relevantes podem ser formuladas a partir de análises elaboradas sobre as práticas observadas. As principais informações sobre as empresas analisadas encontram-se sintetizadas na Tabela 2.

Em cada estudo de caso, após a contextualização do roadmap em encontro presencial com toda a equipe, foi analisada a posição atual e planejada da empresa no mercado utilizando a diagonal volume-variedade. Também foram realizados os quatro workshops apresentados: mercado, produtos e serviços, processo de desenvolvimento de software e roadmapping final.

A empresa orientada a produtos desenvolve sistemas de gerenciamento de projetos corporativos para empresas de base tecnológica. Entre as principais considerações levantadas vale destacar a identificação das oportunidades de desenvolvimento de inovações capazes de estabelecer diferenciais competitivos para o sistema e a constatação de que a difusão dos produtos e serviços somente acontecerá se for estruturada uma rede de parceiros capazes de capacitar os clientes em gestão de projetos e adaptar o sistema de software de acordo com as características únicas de cada cliente. Em relação ao processo de desenvolvimento, as principais considerações relacionaram-se com a criação de métodos de customização, de testes e de documentação, de forma a entregar o sistema de software no formato apropriado para os clientes.

A empresa orientada a serviços customiza e implanta sistemas de gestão empresarial em empresas de médio porte. A realização dos quatro workshops para a elaboração completa do roadmap, evidenciou a necessidade de uma melhor compreensão das dinâmicas do mercado de software livre por parte da empresa, tendo em vista a exploração efetiva dos seus modelos de negócio e a oportunidade de desenvolvimento de um sistema de gestão do conhecimento robusto, capaz de promover padrões de codificação de forma a aumentar o nível de reutilização de softwares dentro da empresa.

A empresa orientada a clientes posiciona-se como uma empresa de consultoria em marketing e tecnologia para empresas de grande porte. Por desejar aumentar suas capacidades de consultoria e minimizar as atividades de desenvolvimento de software, o processo de construção do roadmap procurou estruturar essa nova estratégia. Foram realizados quatro workshops e, entre as principais considerações levantadas ao longo desse processo vale destacar a priorização das diferentes oportunidades capazes de viabilizar novas competências em temas estratégicos, a formalização de novos produtos e serviços de consultoria de forma a vincular essas atividades com a comercialização e o desenvolvimento de software e a criação de um sistema de gerenciamento e de homologação de software buscando terceirizar parte do processo de desenvolvimento;

Logo, os resultados obtidos com os estudos de caso mostram-se consistentes com as discussões apresentadas nas seções anteriores e confirmaram as proposições apresentadas ao longo deste artigo. O processo de estruturação dos roadmaps aconteceu da mesma maneira nos três estudos de caso, evidenciando a robustez dos conceitos e da abordagem proposta. Algumas considerações relevantes para o aprimoramento da técnica proposta também foram obtidas com os estudos de caso. Primeiro, pelo fato de o número de variáveis a representar graficamente ser bastante expressivo, a utilização de apenas um gráfico foi importante, pois permitiu a visualização completa do processo de planejamento corporativo realizado. Segundo, é interessante registrar o contexto exato de cada aspecto analisado durante a execução do processo, de forma a manter um histórico do roadmap desenvolvido. Em ambos os casos, a utilização de um software específico para a construção de roadmaps pode ser apropriada.

7. Conclusões

Este artigo apresentou o desenvolvimento de uma abordagem para alinhamento entre objetivos estratégicos e processo de desenvolvimento em empresas de software. Empresas e pesquisadores envolvidos nas diferentes iniciativas dessa pesquisa consideraram os objetivos propostos e os resultados obtidos como de grande valor, pois a abordagem incorpora um referencial efetivo, que facilita a compreensão, a comunicação e o alinhamento entre diferentes visões do futuro e que é capaz de identificar lacunas de conhecimento sobre mercados, produtos e serviços e atividades de desenvolvimento, facilitando a comunicação e a implementação de iniciativas de avaliação e melhoria de processos. Os resultados obtidos foram apresentados para a academia e para empresas de software, na forma de artigos acadêmicos e seminários de pesquisa.

Dentre as limitações desse trabalho deve-se destacar o fato de que seu foco foram principalmente pequenas e médias empresas. Tal fato é justificado pelo fato dessas empresas corresponderem à grande maioria das empresas de software no Brasil. Porém a validação da pesquisa em empresas de desenvolvimento de software de grande porte é relevante.

Sugestões para pesquisas futuras incluem:

• A incorporação de considerações específicas apresentadas por metodologias de avaliação e melhoria de processos, como o Capability Maturity Model Integration, buscando estruturar a evolução dos níveis de maturidade de processo em organizações de software; e

• A incorporação dos conceitos quantitativos da engenharia de software baseada em valor, proposta por Boehm (2006), de forma a criar novas técnicas de análise e avaliação das diferentes atividades que compõem o processo de desenvolvimento de software.

Recebido 05/04/2009

Aceito 30/08/2012

  • ABRAN, A.; MOORE, J. SWEBOK - Guide to the software Engineering Body of Knowledge. IEEE Computer Society, 2004.
  • ASATO, R. et al. Alinhamento entre estratégia de negócios e melhoria de processos de software: um roteiro de implantação. Revista Produção, v. 21, n. 2, p. 314-328, abr./jun. 2011. http://dx.doi.org/10.1590/S0103-65132011005000028
  • AUSTIN, R. D. Novell: Open Source software Strategy. Harvard Business Review, Jul 2004.
  • BECK, K. Extreme Programming Explained. Addison-Wesley, 1999.
  • BOEHM, B. Value-Based software Engineering: overview and agenda. In: BIFFL, S. et al. alue Based software Engineering Springer-Verlag, 2006.
  • BROOKS, F. P. No Silver Bullet Essence and Accidents of software Engineering. Computer Magazine, v. 20, n. 4, Apr 1987.
  • BRYNJOLFSSON, E.; HITT, L. Beyond the Productivity Paradox. Communications of the ACM, v. 41, n. 8, p. 49-56, 1998. http://dx.doi.org/10.1145/280324.280332
  • COUGHLAN, P.; COGHLAN, D. Action Research for operations management. International Journal of Operations and Production Management, v. 22, n. 2, p. 220-240, 2002. http://dx.doi.org/10.1108/01443570210417515
  • CRAWFORD, C. H. et al. Toward an on demand service-oriented architecture. IBM Systems Journal, v. 44, n.1, p. 81-107, 2005. http://dx.doi.org/10.1147/sj.441.0081
  • CHRISSIS, M. B.; KONRAD, M.; SHRUM, S. CMMI: guidelines for process integration and product improvement. Reading: Addison-Wesley, 2003.
  • DEVORE, J. Probabilidade e estatística para engenharia e ciências. Thomson, 2006.
  • DUBEY, A.; WAGLE, D. Delivering software as a service. The McKinsey Quarterly, May 2007.
  • FERNANDES, A.; ABREU, V. Implantando a governança de TI. 2. ed. Brassport, 2008.
  • FORZA, C. Survey research in operations management: a process-based perspective. International Journal of Operations and Production Management, v. 22, n. 2, p. 152-194, 2002. http://dx.doi.org/10.1108/01443570210414310
  • FLEURY, A. L. Alinhando objetivos estratégicos e processo de desenvolvimento em empresas de software 2007. Tese (Doutorado)-Universidade de São Paulo, São Paulo, 2007.
  • GALLAGHER, B. et al. CMMI-ACQ: Guidelines for Improving the Acquisition of Products and Services. Addison-Wesley Professional, 2009.
  • GERSTNER, L. Who says elephants can't dance. Collins, 2002.
  • GINSBERG, M.; QUINN, L. Process tailoring and the software Capability Maturity Model. Carnegie Mellon University, 1995.
  • GROENVELD, P. Roadmapping integrates business and technology. Research-Technology Management, v. 40, n. 5, p. 48-55, 1997.
  • HOCH, D. J. et al. Secrets of software Success: Management Insights from 100 software Firms Around the World. HBS Press Book, 1999.
  • KRUCHTEN, P. The Rational Unified Process: an introduction. Addison Wesley, 2000.
  • LASHINSKY, A. Inside Apple: How America's Most Admired--and Secretive--Company Really Works. Business Plus, 2012.
  • LAURINDO, F. Tecnologia da Informação Editora Atlas, 2008.
  • LONDON. Department of Trade and Industry - DTI. Sector Competitiveness Analysis of the software and Computer Services Industry London, 2004.
  • OFFICE OF GOVERNMENT COMMERCE - OCG. ITIL - The official introduction to the ITIL Service Lifecycle The Stationary Office, 2007.
  • PHAAL, R. et al. Starting-up roadmapping fast. Research Technology Management, v. 46, n. 2, p. 52-58, 2003.
  • PHAAL, R.; FARRUKH, C.; PROBERT, D. Technology roadmapping - a planning framework for evolution and revolution. Technological Forecasting and Social Change, v. 71, n. 1-2, p. 5-26, Jan/Feb 2004. http://dx.doi.org/10.1016/S0040-1625(03)00072-6
  • PHAAL, R.; FARRUKH, C.; PROBERT, D. Developing a Technology Roadmapping System. Technology Management: a unifying discipline for meeting the boundaries, p. 99-111, July/Aug 2005.
  • PHAAL, R.; FARRUKH, C.; PROBERT, D. Roadmapping for strategy and innovation. University of Cambridge, 2010.
  • PROBERT, D.; FARRUKH, C.; PHAAL, R. Technology roadmapping - developing a practical approach for linking resources to strategic goals. Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture Journal Engineering Manufacturing, v. 217, n. 9, p. 1183-1195, 2003. http://dx.doi.org/10.1243/095440503322420115
  • PROBERT, D. et al. Sourcing software content for manufactured products. Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture Journal Engineering Manufacturing, v. 221, n. 5, p. 809-820, 2007. http://dx.doi.org/10.1243/09544054JEM532
  • REIS, A. P.; AMATO NETO, J. Aprendizagem por cooperação em rede: práticas de conhecimento em arranjos produtivos locais de software. Revista Produção, v. 22, n. 3, p. 345-355, maio/ago. 2012.
  • SILVESTRO, R. Positioning services along the volume-variety diagonal. International Journal of Operations and Production Management, v. 19, n. 4, p. 399-420, 1999. http://dx.doi.org/10.1108/01443579910254268
  • SILVESTRO, R. et al. Towards a classification of service processes. International Journal of Service Industry Management, v. 3, n. 3, 1992. http://dx.doi.org/10.1108/09564239210015175
  • SOFTEX. Software e serviços de TI: a indústria brasileira em perspectiva. Observatório SOFTEX, n. 1, v. 1, 2009.
  • SOFTEX. MPS.BR - Melhoria de Processo do Softare Brasileiro - Guia Geral. SOFTEX, 2011.
  • SOFTWARE ENGINEERING INSTITUTE - SEI. CMMI for Services. Carnegie Mellon University, 2010.
  • SOMMERVILLE, I. Engenharia de Software Pearson Education, 2007.
  • TONINI, A. C.; CARVALHO, M. M.; SPINOLA, M. S. Contribuição dos modelos de qualidade e maturidade na melhoria dos processos de software. Revista Produção, v. 18, n. 2, 2008.
  • THONG, J. et al. Consumer acceptance of personal information and communication technology services. IEEE Transactions on Engineering Management, v. 58, n. 4, Nov 2011. http://dx.doi.org/10.1109/TEM.2010.2058851
  • VELOSO, F. A. et al. Slicing the knowledge-based economy in Brazil, China and India: a tale of three software industries. MIT Press, 2003.
  • VOSS, C. N.; TSIKRIKTSIS, N.; FROHLICH, M. Case research in operations management. International Journal of Operations and Production Management, v. 22, n. 2, p. 195-219, 2002. http://dx.doi.org/10.1108/01443570210414329
  • WELLS, R. et al. Technology roadmapping for a service organization. Research Technology Management, v. 47, n. 2, p. 46-51, 2004.

Datas de Publicação

  • Publicação nesta coleção
    24 Maio 2013
  • Data do Fascículo
    Jun 2014

Histórico

  • Recebido
    05 Abr 2009
  • Aceito
    30 Ago 2012
Associação Brasileira de Engenharia de Produção Av. Prof. Almeida Prado, Travessa 2, 128 - 2º andar - Room 231, 05508-900 São Paulo - SP - São Paulo - SP - Brazil
E-mail: production@editoracubo.com.br