• Nenhum resultado encontrado

Perspectiva Inicial: Economia Aplicada à Engenharia de Software e à

Capítulo 3 – Engenharia de Software Baseada em Valor e Ecossistemas de Software

3.3 Perspectiva Inicial: Economia Aplicada à Engenharia de Software e à

Paralelamente a evolução científica, os avanços exponenciais na variedade e na quantidade de dispositivos tecnológicos e de sistemas produzidos na década de 1990 organizavam um cenário com alto potencial para a criação de valor: um elemento importante para guiar a “informatização da informação” em todos os grandes sistemas sociais, de negócios e militares (BOEHM & SULLIVAN, 2000). Em conformidade com este fato, a construção e a utilização de produtos de software permanecem entre as questões mais complexas e problemáticas do desenvolvimento da tecnologia moderna, cujo principal sintoma se relaciona ao crescente índice de falha de grandes projetos, programas e negócios (BOEHM, 2006). É neste momento, então, que o valor agregado passa a ser analisado como um conjunto de dimensões que expõem empreendimentos de software8 a riscos imprevisíveis com uma taxa inaceitável (ITABORAHY, 2007).

Mesmo os projetos cancelados consomem recursos até que sejam enquadrados em tal categoria. Além disso, outros problemas devem ser considerados, tais como: (i) atrasos no time-to-market; (ii) redução de qualidade de produtos de software; e (iii) perda de oportunidades. BOEHM & SULLIVAN (2000) justificam estes problemas pelas carências da habilidade de gerenciar efetivamente as características de risco em sistemas de software, decorrentes do processo de tomada de decisão sob incerteza, durante o desenvolvimento. Ou seja, conhecimento incompleto e mercado competitivo se transformam em desafios que demandam estratégias inteligentes para um melhor investimento de recursos em busca da geração de valor. Assim, a Economia Aplicada à Engenharia de Software tem a contribuir com um legado de pesquisa e desenvolvimento que remonta à década de 1960, com foco exatamente na interseção entre a economia aplicada à informação e a engenharia e projeto de software (BOEHM, 1981).

Essa realidade, somada à ocorrência das duas primeiras edições do EDSER

Workshop, propiciaram o delineamento de uma agenda de pesquisa para a área de

Economia Aplicada à Engenharia de Software (Figura 3.1), através da identificação de uma rede de resultados intermediários a serem alcançados, incluindo as suas dependências e os caminhos de feedback pelos quais modelos e métodos de análise e de

8 No contexto desta dissertação, um empreendimento de software se refere a um artefato relacionado a

software, considerando a sua concepção, o seu desenvolvimento e a sua manutenção e evolução, seja este artefato um componente, um projeto, um produto, um processo, a organização como um todo ou até mesmo um mercado estabelecido.

avaliação econômica poderão ser melhorados (BOEHM & SULLIVAN, 2000). A parte inferior à esquerda do diagrama apresentado na Figura 3.1 se refere à captura de

interesses táticos, tais como melhorias na estimativa de custos para projetos de

software, ao passo que a parte superior trata da captura de interesses estratégicos, tais como raciocínio sobre opções reais (HULL, 2008) e sinergias entre elementos de projeto e de programa em grandes portfólios – a abordagem proposta por este trabalho de pesquisa se concentra em desenvolver uma infra-estrutura para apoiar os pontos destacados em itálico (e cinza) na Figura 3.1. Além disso, três atividades fundamentais extraídas desta agenda consistem em: (i) modelar valor: custos e benefícios; (ii) rastrear e gerenciar o valor; e (iii) projetar sistemas para agregar valor durante o ciclo de vida.

Melhores dados e modelos macroeconômicos Melhores modelos de fontes de valor em SW/TI incluindo opções, sinergias e competição Melhores modelos de ligação entre produtos, processos e projetos de portfólios de SW/TI, e benefícios criados Melhores modelos para estimar benefícios em SW/TI

Melhores dados para estimar benefícios de

SW/TI

Melhores dados para estimar custos e cronograma de SW/TI

Melhores modelos para estimar custos e cronograma de SW/TI Melhores rastros na gerência de percepção de benefícios em projetos de SW/TI Melhor modelagem de payoff de casos de negócio de portfólios/sistemas de SW/TI

Melhores rastros entre gerência de cronograma e custos

de projeto

Melhor suporte à decisão na definição de riscos, estimativas e status de portfólios/projetos de SW/TI Melhor monitoramento e análise dinâmica de produtos, processos, portfólios e ambientes Melhor estratégia e tática na tomada de decisão em design de produtos, processos e portfólios de SW/TI

Maior valor criado por projetos, programas, portfólios e indústria de SW/TI, significativamente e mensuravelmente Melhor estratégia de tomada de decisão em TI em nível nacional (P&D, políticas) Melhor educação em Engenharia de Software Estruturas de mercado mais favoráveis ao aumento da produtividade em SW/TI Melhores dados e modelos macroeconômicos Melhores modelos de fontes de valor em SW/TI incluindo opções, sinergias e competição Melhores modelos de ligação entre produtos, processos e projetos de portfólios de SW/TI, e benefícios criados Melhores modelos para estimar benefícios em SW/TI

Melhores dados para estimar benefícios de

SW/TI

Melhores dados para estimar custos e cronograma de SW/TI

Melhores modelos para estimar custos e cronograma de SW/TI Melhores rastros na gerência de percepção de benefícios em projetos de SW/TI Melhor modelagem de payoff de casos de negócio de portfólios/sistemas de SW/TI

Melhores rastros entre gerência de cronograma e custos

de projeto

Melhor suporte à decisão na definição de riscos, estimativas e status de portfólios/projetos de SW/TI Melhor monitoramento e análise dinâmica de produtos, processos, portfólios e ambientes Melhor estratégia e tática na tomada de decisão em design de produtos, processos e portfólios de SW/TI

Maior valor criado por projetos, programas, portfólios e indústria de SW/TI, significativamente e mensuravelmente Melhor estratégia de tomada de decisão em TI em nível nacional (P&D, políticas) Melhor educação em Engenharia de Software Estruturas de mercado mais favoráveis ao aumento da produtividade em SW/TI

Figura 3.1 – Agenda de pesquisa para a área de Economia Aplicada à Engenharia de Software (BOEHM & SULLIVAN, 2000)

Como desafios de pesquisa, deve-se ter em mente que essa área se refere a problemas importantes que englobam questões científicas e tecnológicas (e não apenas econômicas), e a significância prática dos avanços (ou das falhas em alcançá-los) é alta. Portanto, é necessário aprender como pensar e gerenciar o desenvolvimento de software como uma atividade de investimento e de mercado, cuja meta é maximizar o valor agregado, considerando os recursos envolvidos; e pode ser interessante entender o conhecimento existente de outras áreas para o contexto do desenvolvimento de software, sem descuidar das particularidades deste artefato. Ainda, para apoiar a geração

de resultados, novos modelos e métodos de análise associados são importantes, além de ferramentas e ambientes que os tornem úteis para os engenheiros de software na prática; no entanto, devem ser frutos de análises estatísticas de dados históricos, e não concebidos de forma ad hoc ou pouco sistemática. Finalmente, entender como integrar tais avanços aos processos de desenvolvimento na indústria e gerir feedback se tornam essenciais para perceber e concretizar os benefícios preconizados. Deve-se pensar em uma disciplina de Economia da Engenharia de Software para os cursos acadêmicos que têm foco em Engenharia de Software, visando auxiliar os futuros profissionais a adquirirem um background mínimo de Economia e Finanças (SHAW et al., 2003).

Mais especificamente no caso de programas de reutilização, custos, benefícios, riscos e oportunidades representam fatores impactantes no processo de tomada de decisão de mercado e na avaliação de investimentos no cenário industrial, pois interferem na definição de valor de um componente ou serviço. Visando entender como funciona a máquina financeira em ambientes que utilizam a ESBC, FERREIRA et al. (2006) propuseram um modelo de análise de investimentos em reutilização que permite observar o efeito de um investimento no valor da carteira de componentes de uma organização e observaram, após ilustrarem algumas decisões desta carteira, que o processo e o tipo da utilização dos componentes provavelmente implicarão em variabilidades no modelo de valor. Por exemplo, os componentes COTS (Commercial

Off-The-Self) são comprados prontos (e não desenvolvidos pela organização),

apresentando custos e riscos diferentes dos componentes desenvolvidos internamente. O crescimento dos sistemas de software e o fato de que a reutilização de artefatos por meio da ESBC no mercado se torna possível quando o projeto arquitetural está incorporado e orienta o processo de desenvolvimento, uma definição de valor para componentes envolve uma reflexão sobre questões como (FERREIRA et al., 2006): • Antever atributos de qualidade que o sistema suporta e administrar o cronograma

financeiro e de execução de projetos, investigando como a arquitetura de software pode reduzir custos de manutenção e amortizar custos de desenvolvimento;

• Analisar os custos de oportunidade e a opção de se investir em novos projetos quando parte deles já está realizada, a fim de melhorar o processo de tomada de decisão quando investimentos com mais de dois períodos (anos) são considerados; • Tratar o abandono de projetos como uma opção de agregar artefatos ora produzidos

(baseados em reutilização), permitindo que estes se somem aos ativos da organização (sem descartá-los por completo).

No entanto, os processos de reutilização requeridos podem implicar em altos custos de implantação e de manutenção, e isso interfere na definição de valor (FERREIRA et al., 2006). Entre esses custos, pode-se citar a criação de repositórios de componentes, o levantamento das características de um domínio de aplicação, e a manutenção e o gerenciamento de equipes especializadas no desenvolvimento de componentes (WILES, 1999). A própria utilização de componentes possui um custo que pode superar o custo do desenvolvimento tradicional, caso o processo de apoio à reutilização não seja bem planejado, ou seja, dependendo dos custos de busca, compreensão, adaptação e integração do componente, o custo associado à sua utilização pode ser proibitivo. Isso também pode ocorrer com as linhas de produto, cujos custos de configuração, evolução e manutenção de suas arquiteturas e componentes devem ser considerados (BÖCKLE et al., 2004). No entanto, esse cenário deve ser evidenciado por meio de estudos de caso que considerem diferentes contextos e perspectivas.

Além disso, não se pode esquecer que a reutilização exige investimentos não apenas no desenvolvimento de componentes, frameworks ou linhas de produto, mas também em processos, ferramentas e treinamento, e a disponibilidade de recursos é limitada. Por isso, o processo de decisão sobre quanto, como e em que investir se torna fundamental para o sucesso do programa de reutilização, e o amadurecimento de mercados que estressem o arsenal conceitual e tecnológico da ESBC, visando extrair os benefícios prometidos, contribui diretamente para esse processo (SOFTEX, 2007).

Por outro lado, decisões sobre que componentes devem ser desenvolvidos e quais devem ser utilizados em um produto específico podem não ser fáceis em um ambiente competitivo de mercado, sobretudo sem dados históricos que permitam minimizar a incerteza do cenário (POULIN et al., 1993). A reutilização pode ocorrer em diversos níveis e de diferentes maneiras, ou seja, é possível reutilizar especificações de requisitos a códigos, e utilizar desde simples índices de componentes, com suas descrições e interfaces, a ferramentas sofisticadas de gestão do conhecimento. Por isso, diversas opções são colocadas à disposição de uma organização, e cabe à mesma decidir aquela que seja mais adequada ao seu negócio e aos objetivos estratégicos, incluindo não só a análise de custos e riscos associados ao projeto, mas de seus benefícios e oportunidades subjacentes (BOEHM & SULLIVAN, 2000).

Entretanto, pensar em custos, riscos, benefícios e oportunidades impacta em pensar no desenvolvimento de software como uma forma de investimento que pode trazer mudanças significativas na maneira como as decisões são tomadas em uma

organização. Qualquer investimento deve ter como principal objetivo a geração de riquezas. A riqueza, neste caso, não é necessariamente medida apenas pelo ganho de capital obtido com um investimento, mas deve incluir tudo aquilo que a organização considera gerar valor agregado. Neste contexto, os métodos de análise de investimentos propostos pela área de Economia e Finanças possuem o objetivo de quantificar a riqueza gerada pelos investimentos realizados em um projeto, de maneira que se possam avaliar as decisões a serem tomadas e comparar diferentes projetos entre si (FAVARO, 1996). Entretanto, o amadurecimento desses métodos está intrinsecamente relacionado à disponibilidade de dados históricos e requer a existência de mercados “vivos”, sobretudo ao se considerar as peculiaridades dos componentes enquanto ativos.

Por fim, FAVARO et al. (1998) afirmam que os benefícios econômicos da Reutilização de Software podem ser divididos em duas grandes categorias que influem diretamente na definição de valor no contexto da ESBC e da sua constituição de mercado: (i) benefícios operacionais, como a melhoria de qualidade, o aumento da produtividade e a redução dos custos de manutenção; e (ii) benefícios estratégicos, como a oportunidade de entrar em novos mercados ou a flexibilidade de responder a forças competitivas e transformar condições de mercado. Assim, a definição de valor da ESBC exposta a um mercado global deve se basear em critérios objetivos, mensuráveis e que explicitamente levam em consideração os objetivos e valores da organização, mas também deve cuidar de questões não-técnicas e não quantificáveis que interferem nesta definição. Deve-se considerar ainda fatores como resultado a longo prazo (o que aumenta o grau de incerteza), investimento inicial e, como conseqüência, novos fatores de risco. Mais especificamente, o amadurecimento do conceito de valor em mercados de componentes depende de uma análise de questões acerca dos requisitos, estimativas, manutenção, certificação e propriedade de artefatos de sistemas.