Responder aos Desafios que se Colocam às Organizações de TI
Num contexto em que aumentam a
complexidade técnica e as pressões para
reduzir os custos e minorar os riscos, as
organizações de TI (Tecnologias de
Informação) têm à sua disposição
soluções de Inteligência Aplicacional que
lhes permite aumentar a sua agilidade e
capacidade de resposta às necessidades
de negócio em constante mutação.
A última década caracterizou-se por
grandes inovações técnicas para as
organizações de TI. Por exemplo, foram
introduzidas arquitecturas de software
mais distribuídas e modulares (J2EE,
.NET, Web Services), bem como ferramentas e metodologias de desenvolvimento mais
sofisticadas para a disponibilização rápida e fiável de aplicações. Paralelamente, o
abrandamento da economia global forçou as companhias e as organizações de TI a reverem
as suas prioridades e a encontrarem novas formas de reduzir custos e aumentar a
produtividade.
Aumento da complexidade e fazer mais com menos
Muitas das grandes companhias alargaram significativamente o seu portfólio aplicacional
para tirarem partido das vantagens das soluções de e-business e da omnipresente Internet.
As unidades de negócio esperam agora que os novos sistemas sejam capazes de
disponibilizar a mesma qualidade de serviço que os sistemas da geração anterior.
Em termos técnicos, a complexidade dos ambientes de TI foi aumentando, uma vez que as
novas aplicações construídas com as tecnologias emergentes foram implementadas em
larga escala e integradas com as soluções de software existentes nas empresas (standard
ou desenvolvidas à medida), como mostra a Figura 1. Paralelamente, as companhias
também são coagidas a tornarem-se mais ágeis e a aumentarem a rapidez de resposta às
alterações repentinas do seu ambiente de negócio, precisando ao mesmo tempo de controlar
os custos.
Figura 1. As plataformas e as aplicações legacy têm sido substituídas em alguns casos, mas
também é frequente serem ampliadas de muitas formas. Esta abordagem fragmentada deu
origem a uma infra-estrutura de desenvolvimento de aplicações mais complicada do que no
passado. Apesar dessas alterações às aplicações terem aumentado a flexibilidade e
melhorado o acesso e a integração a nível dos sistemas arcaicos independentes, também
aumentaram a complexidade operacional e colocaram em risco a qualidade de serviço
desses processos. Fonte: Gartner Presentation on Application Portfolio Management: The
First Steps Toward Application Modernization, D.Vecchio & J. Duggan, 22-24 Septembro
2003.
À medida que o negócio e as TI se tornam cada vez mais interdependentes, a agilidade de
negócio exige sistemas de informação ágeis. Para os gestores de TI, isto significa que têm
de dominar a complexidade de todo o seu portfólio aplicacional e alocar os recursos
adequados aos projectos (de forma imediata e quando são necessários). Além disso, têm
que ser confiantes o suficiente para estimar os custos e os atrasos de forma adequada, a fim
de garantirem as entregas nas datas previstas. Também se espera que os gestores de TI
controlem melhor a qualidade global do trabalho realizado internamente e daquele que é
encomendado a terceiros (objecto de outsoucing).
A “crise de complexidade” resultante – fruto das pressões sobre as organizações para
reduzirem os custos de TI e conseguirem maior produtividade – obrigou os executivos de TI
a analisarem as suas prioridades de negócio. À cabeça dessa lista de prioridades surgem
aspectos como o corte de despesas, o corte de recursos humanos e o outsourcing, como
mostra a Figura 2.
Figura 2. No Application Outsourcing User Study de 2003 da Gartner, foi pedido aos
inquiridos para identificarem as razões que mais influenciaram a sua decisão em optarem
pelo outsourcing de aplicações. Uma análise preliminar mostrou que a redução dos custos é
a principal razão para esse tipo de outsourcing, seguindo-se o melhoramento do nível de
serviço para os utilizadores finais e o enfoque no negócio de base (core business). Fonte:
Gartner Market Analysis Research Note, A. Young, 20 Agosto 2003.
Falta de visibilidade
As soluções e as ferramentas tradicionalmente disponíveis para as organizações de TI
apresentam limitações significativas para a gestão do ciclo de vida das aplicações
implementadas. A falta de uma visibilidade aprofundada sobre as interdependências entre
componentes e aplicações também faz com que seja difícil para os gestores de TI estimarem
o risco e o custo das alterações de sistema.
Mesmo quando existe conhecimento técnico suficiente para executar as alterações de
sistema necessárias, o controlo da qualidade do trabalho realizado depende muito dos testes
funcionais e das análises de código aleatórias. Os gestores de TI têm então que lidar com
uma estimativa parcial da qualidade do trabalho técnico realizado. No entanto, uma baixa
qualidade poderá ter um impacto negativo em espiral sobre os custos e sobre a satisfação
dos utilizadores. Como mostra a Figura 3, a adopção de novas tecnologias continuará a
colocar um grande desafio – em termos de qualidade – às organizações de TI nos próximos
anos.
Figura 3. À medida que são implementadas novas tecnologias – como os convencionais
serviços Web – a qualidade emerge como um aspecto importante. Antes das novas
tecnologias entrarem em produção, é necessário considerar e resolver aspectos
relacionados com processos tecnológicos, ferramentas, fornecedores, capacidades técnicas,
desempenho e outros que precisam ser considerados e resolvidos. Todas as questões em
torno da qualidade (pelo menos a maior parte) têm sido colocadas de lado pelas equipas de
desenvolvimento até a tecnologia estar relativamente estável para ser utilizada em produção
pelos primeiros implementadores. Esta prática aumenta significativamente o custo da
qualidade. Desta forma, um dos aspectos chave para o sucesso dos projectos é o
planeamento da qualidade desde o início desses projectos. Fonte: Gartner Presentation
Testing at the Crossroads, T. Lanowitz, 22-24 Septembro 2003.
O custo da procura manual de informação
Para acompanharem a evolução rápida do negócio, as organizações de TI realizaram
investimentos significativos na última década para se equiparem com novas ferramentas de
software ligadas à modelação de aplicações (Application Modeling) e aos ambientes de
desenvolvimento integrados (IDE - Integrated Development Environment). Conseguiram
assim desenvolvimentos mais rápidos e com maior fiabilidade.
No entanto, apesar desses investimentos, o acesso rápido e eficiente a informação técnica
chave continua a representar um verdadeiro desafio para as organizações de TI de maior
dimensão. A agilidade implica que quem faz desenvolvimento e quem gere as TI disponha de
informação actualizada sobre as aplicações existentes. Contudo, isto continua a ser um
desafio para as equipas de TI, na medida em que a documentação técnica continua a ser
produzida – quando é realmente produzida – através da utilização de uma abordagem
empírica e não industrial.
O conhecimento técnico sobre as aplicações reside frequentemente na “cabeça” dos
especialistas de desenvolvimento seniores e costuma estar disperso por vários documentos
e locais. Na medida em que esses especialistas em desenvolvimento são frequentemente os
únicos a possuir o conhecimento intrincado sobre as aplicações, torna-se difícil ajustar a
situação a resoluções de bugs e a alterações de requisitos em simultâneo.
Ao centralizarem o conhecimento, os especialistas em desenvolvimento criam
involuntariamente “estrangulamentos” que impedem as organizações de TI de responderem
cabalmente às necessidades de negócio. Esta situação também induz “custos de fricção”
significativos quando se juntam ao projecto novos recursos, ou quando um especialista em
desenvolvimento abandona a equipa para ser realocado a outro projecto.
Apesar da utilização de melhores ferramentas, a produtividade das equipas de TI continua a
ser baixa. Isto deve-se muito ao facto da maior parte do trabalho especializado ainda ser
manual, sobretudo a nível das tarefas de manutenção, como mostra a Figura 4.
Figura 4. Cerca de 47 por cento do tempo de quem desenvolve é gasto a analisar código
manualmente, enquanto que só seis por cento é gasto a criar documentação. Fonte: CAST e
International Thomson Publishing.
Limitações das soluções existentes
Tal como referido atrás, têm sido propostas várias soluções tecnológicas ao longo dos anos
para responder às questões de produtividade a nível das TI. As empresas de consultoria em
TI têm proposto boas práticas de desenvolvimento de aplicações, bem como a produção de
documentação técnica e de desenho. No entanto, estas práticas continuam a ser caras em
termos de implementação. Além disso, a experiência tem mostrado que a produção manual
de documentação técnica é onerosa, além de ser frequentemente imprecisa e recriada
durante a fase de manutenção.
Esta situação conduz rapidamente a um ciclo vicioso, onde a existência de documentação
incompleta faz com que deixe de existir qualquer documentação passado algum tempo.
Como possíveis soluções para complementar ou substituir a documentação técnica, têm sido
apregoadas melhores técnicas de desenho de sistemas, baseadas em ferramentas de
modelação de dados e UML orientadas por objectos.
Mesmo quando se consegue uma completa sincronização entre o modelo e o código, obtémse apenas uma visão parcial e lógica da aplicação, respondendo a cerca de 20 por cento das
necessidades de conhecimento. Além disso, os ambientes de TI são heterogéneos – por
exemplo, a integração de pacotes de software com desenvolvimentos ad hoc numa entidade
de dados comum e num modelo de objectos não é fazível.
A disponibilização de melhores ferramentas de teste também ajudou as organizações de TI a
identificar aspectos funcionais e técnicos mais cedo no ciclo de vida de desenvolvimento. No
entanto, a utilização de ferramentas de teste não tem virtualmente qualquer impacto quando
quem desenvolve aplicações controla a adopção de standards de qualidade de
desenvolvimento de software.
Aquilo que a maior parte dos especialistas em desenvolvimento fazem é olhar para o código
fonte que está a correr. Apesar da informação ser rica e fidedigna, o acesso à mesma
manualmente não é eficiente e o conhecimento derivado nunca é partilhado ou armazenado
para reutilização futura. Por outro lado, como acontece com qualquer processo manual, a
verificação do código à mão para analisar e detectar aspectos de programação complexos é
propícia a erros.
Com os ciclos de negócio a tornarem-se cada vez mais curtos, os retornos das equipas de TI
a acontecerem mais rapidamente e o outsourcing a tornar-se mais comum, fica claro que a
gestão a longo prazo da agilidade e da fiabilidade do portfólio de aplicações constitui um
verdadeiro desafio.
Utilização da tecnologia para automatizar o trabalho manual
A inteligência aplicacional (Application Intelligence) representa uma resposta a estas
necessidades, uma vez que fornece uma solução automatizada para disponibilizar
informação técnica sobre aplicações de software. Baseada em tecnologia avançada de
análise de código fonte, a inteligência aplicacional disponibiliza visualizações gráficas e
relatórios interactivos detalhados sobre a estrutura das aplicações. Estes elementos
informativos destinam-se a ser utilizados pelos especialistas em desenvolvimento e pelos
gestores de TI.
As soluções de inteligência aplicacional são integradas na infra-estrutura existente de
ferramentas de software e sincronizadas com sistemas de gestão de código fonte para se
manterem sempre actualizadas. A informação técnica é guardada em bases de dados
relacionais e partilhada em modo push-and-pull por todos os membros da equipa, incluindo
os parceiros de outsourcing, como mostra a Figura 5.
Como utilizam sofisticados algoritmos de parsing e de análise de código, as soluções de
inteligência aplicacional também podem disponibilizar métricas e relatórios automatizados de
avaliação da qualidade. Os gestores de TI obtêm assim uma visão completa (de 360 graus)
sobre os seus activos, o que lhes permite obter rapidamente informação sobre o “estado de
saúde” do seu portfólio de aplicações para tomarem as decisões mais adequadas na altura
certa.
Figura 5. A inteligência aplicacional fornece automaticamente visualizações gráficas,
métricas e relatórios de qualidade para os arquitectos, equipas de avaliação da qualidade, e
engenheiros de processos e métodos. Os gestores de equipas e os especialistas em
desenvolvimento – independentemente da tecnologia utilizada – também beneficiam
directamente da base de conhecimento descentralizada e partilhada, que é enriquecida por
todos os utilizadores ao longo do tempo. Os gestores de TI podem obter informação sintética
e objectiva sobre todo o seu portfólio de aplicações. Fonte: CAST.
Partilha eficiente do conhecimento
Ao aumentar o potencial da automação de software, a inteligência aplicacional apresenta-se
como uma tecnologia chave para aumentar a produtividade e reduzir os custos. De uma
forma geral, podemos dizer que ajuda as organizações de TI a:
•
•
•
Gerir melhor a informação técnica para toda a estrutura de gestão aplicacional
(Application Management).
Aceder a conhecimento técnico que não estaria disponível de outra forma,
nomeadamente as dependências aplicacionais e as interacções entre componentes.
Disponibilizar inteligência a toda a organização de TI através de visualizações
gráficas, métricas e relatórios sobre todos os tiers e todas as aplicações.
A inteligência aplicacional automatiza processos manuais chave que existem em todas as
organizações de TI, nomeadamente a recolha, armazenamento, acesso, análise e partilha de
informação técnica sobre as aplicações. Como tal, trata-se de uma solução empresarial para
as organizações modernas de TI que percebem as vantagens de disponibilizar conhecimento
e inteligência a toda a gente. Os resultados práticos traduzem-se em maior eficiência e
reduções de custos, bem como em maior agilidade e qualidade, maior capacidade de
resposta e satisfação dos utilizadores. Tudo isto também conduz a um aumento do controlo
(em termos de gestão) de todo o portfólio de aplicações.
Baseado num estrato de informação publicada pela CAST no site www.castsoftware.com
com o título “Information Series on Application Management”.
Tel: (+351) 239 497 230 / 2 • Fax: (+351) 239 497 231
E-mail: [email protected] • Internet: www.engenharia-software.com
Download

Responder aos Desafios que se Colocam às