Marco Mendes´s Blog

Artigos, Comentários e Opiniões sobre Engenharia de Software, SOA e Tecnologias Java

Arquivo de 15 de Novembro de 2007

Transformando Dinossauros em Aves de Rapina - A Gestão do Conhecimento e a Modernização Corporativa das Empresas

Milhares de empresas em todo o mundo sofrem da síndrome do búfalo mais lento, que atrasa a movimentação de uma manada de búfalos nas migrações nas savanas africanas nas suas constantes buscas por novos locais de alimentação e procriação.

A notícia ruim, para a área de TI, é que nós somos este búfalo mais lento. A TI, historicamente, mostra uma impressionante falta de flexibilidade para responder às necessidades de negócio cada vez mais dinâmicas de toda empresa. Isso tem transformando áreas de TI em pesados dinossauros, inflexíveis às mudanças.

O tema modernização corporativa de TI é cada vez mais uma prática chave para permitir a evolução das empresas e suas pesadas áreas de TI. Mas o que é a modernização corporativa?

A modernização corporativa é um conjunto de boas práticas que tem por objetivo promover maior flexibilidade às organizações, reduzir o custo operacional de TI e promover alinhamento entre as áreas de negócio. Podemos entendê-la em cinco grandes áreas:

  • Reuso de Ativos
  • Arquitetura
  • Habilidades das pessoas e equipes
  • Processos e ferramentas
  • Racionalização dos Investimentos

O reuso de ativos tem por missão promover uma maior gestão do conhecimento através da montagem de inventários eletrônicos dos ativos de software de toda organização de TI. Padrões OMG como o Reusable Asset Especification padronizam e formalizam os mecanismos de reuso corporativos de ativos. Ferramentas open-source como o Reusable Asset Specification Repository for Workgroups ou profissionais como o IBM Rational Asset Manager ou IBM WebSphere Service Registry and Repository fornecem mecanismos para inventariar eletronicamente os softwares. A montagem de um robusto inventário de meta-dados sobre os ativos existentes permite às organizações gerir o seu conhecimento tangibilizado em milhares ou milhões de linhas de código. Outras ferramentas, como o IBM WebSphere Studio Asset Analyser, permitem manter e estender ativos já existentes, com suporte também a controle de mudanças e análise de impacto nestes ativos. Ferramentas ainda mais avançadas, como o IBM WebSphere Asset Transformation Workbench permitem um suporte a gestão do conhecimento, com mecanismos e técnicas para manter e evoluir ativos, descobrir e registrar regras de negócio em sistemas legados e também a analisar o potencial de reuso de trechos de aplicativos.

Independentemente de ferramentas, a mensagem é clara. Um programa de reuso de ativos é fundamental para o reaproveitamento dos investimentos realizados ao longo de décadas em tecnologias legadas como Natural, PowerBuilder, COBOL, PL/1, versões antigas de VB e Delphi, entre outras. Uma metodologia para suporte a um desenvolvimento orientado a reuso de ativos pode ser encontrada aqui.

A arquitetura também é uma peça chave para modernizar empresas. Nexte contexto, a palavra chave é SOA. A arquitetura SOA é uma arquitetura de negócio que busca o alinhamento das ações de TI. Uma das premissas de SOA é permitir que os ativos já existentes sejam expostos como serviços para consumo por outras aplicações. Um bom ponto de partida para o desenvolvimento de uma arquitetura corporativo é o TOGAF, que comentamos em um blog anterior uma excelente base de conhecimento para arquitetos corporativos.

O terceiro aspecto neste processo de evolução de um réptil legado em uma ave é o uso dos talentos corporativos. Solicitar a uma pessoa com dez, vinte ou trinta anos de experiência de negócios que ela se capacite em complexos middlewares de aplicações distribuídas como Java EE é um contra-senso. Estes “analistas de negócio” devem ser potencializados onde agregam mais valor: conhecimento do negócio. Opcionalmente, eles podem operar ferramentas de mais alto nível com linguagem chamadas de EGL. Linguagens EGL permitem a abstração de complexos detalhes de arquitetura tais como clusterização, controle transacional, segurança e aspectos avançados de programação OO. Um exemplo de ferramenta que suporta este paradigma é o IBM Rational Business Developer, que opera sobre o Eclipse em uma linguagem trivial para pessoas sem fluência em OO e arquitetura e gera código executável em COBOL ou Java EE.

O quarto aspecto no processo lida com o fênomeno negativo dos silos em empresas de porte médio ou grande. Nestas organizações, cada time tem o seu próprio processo de coleta de requisitos, gerência de defeitos, uso de práticas tecnologicas ou de manutenção de aplicações. É o que CMMI descreve como processo ad-hoc, que alguns gostam de chamar perversamente de caótico. Devemos combater isso com a intitucionalização de boas práticas de engenharia de software e mecanismos de automação do ciclo de vida de projetos de software. Iniciativas inovadoras como o projeto JAZZ ou ferramentas para automação do ciclo de vida do desenvolvimento de software com o IBM Rational ClearQuest podem apoiar esta questão. Uma outra interessante iniciativa neste contexto também e o Eclipse Process Framework, solução open-source para a documentação e publicação em Web Sites de processos de qualquer natureza. Novamente, a mensagem é clara. Silos de comunicação devem ser combatidos e o conhecimento destas ilhas deve ser promovido para toda a organização para a criação de processos consistentes, ágeis e produtivos.

O último aspecto é a racionalização dos investimentos necessários ao suporte de TI. Uma análise comentada neste interessante podcast sobre modernização corporativa mostra que entre 15 e 25% do código mantido em produção nas organizações nunca é alcançado, isto é, nunca é usado pelos usuários. Este código morto é claramente um fonte de custo e complexidade nas áreas de TI. Uma outra fonte de gasto o tremendo esforço gasto para testes de regressão em aplicações ou para tratar graves defeitos em produção. Ferramentas open-source como o Eclipse TPTP ou profissionais como o IBM Rational Functional Tester e IBM Rational Purify Plus podem apoiar na automatização de testes e análise de cobertura de código, racionalizando desta forma os investimentos de TI.

Obviamente, o esforço de modernizar uma empresa ou uma TI é bastante complexo. Devemos escolher uma ou duas áreas acima e começar um programa de modernização com metas e focos claros e dentro da gerência de um projeto coordenado.

Finalmente, é importante citar que empresas que ainda operem em modo legado vão ter cada vez mais dificuldade em responder aos negócios e irão sofrer uma lenta e dolorosa morte empresarial. As empresas ágeis que aprenderam a evoluir, inovar e se re-inventar como aves de rapina irão sobreviver.

Recomendo, para os interessados neste tema, outras fontes de informação sobre isso, colocadas abaixo:

2 comentários »