Arquivo de Novembro de 2007
SOA - Verdade ou Ficção?
Sempre ouço questionamenos sobre o uso efetivo de SOA no mercado Brasileiro. Infelizmente temos poucos casos publicados e isso leva sempre a um questionamento sobre a efetividade de SOA dentro da nossa realidade. Nesste contexto, coloco em anexo uma apresentação realizada pela IBM com casos relacionados a SOA no governo Brasileiro. Estes casos mostram que a arquitetura orientada por serviços é bastante real e está mais presente na nossa vida que podemos imaginar.
Casos de Sucesso SOA no Governo Brasileiro
Para quem quiser se familizarizar antes com os conceitos de SOA, disponibilizei uma apresentação de SOA em um blog anterior.
1 comentário »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:
- PodCast (em inglês) sobre modernização corporativa. The growing importance of enterprise modernization
- Página sobre Modernização Corporativa da IBM
- Demonstrações de Ferramentas
Implementando SOA - 44 Café Empresarial ASSESPRO-MG
Realizamos esta semana uma palestra sobre SOA no 44 Café Empresarial da ASSESPRO-MG. Neste encontro, pudemos debater sobre aspectos importantes sobre uma arquitetura de serviços e paradigmas que devem ser adotados para a sua correta implementação.
A apresentação realizada neste evento está à disposição aqui para download.
2 comentários »Modelagem de Processos de Negócio à Sua Disposição
Realizamos uma apresentação sobre qualidade de software dirigida por processos de negócio no Segundo Seminário de Testes e Qualidade de Software organizado em Belo Horizonte. O mote central da apresentação foi na necessidade da TI repensar suas ações através de um alinhamento mais formal com as necessidades de negócio de uma organização. A partir disso, exploramos na apresentação algumas técnicas de qualidade para implementar este alinhamento, através de um ciclo de vida de desenvolvimento orientado por processos de negócio.
A apresentação está em anexo aqui.
Nesta apresentação divulgamos também ferramentas open-source/gratuitas de apoio para o ciclo de vida de modelagem de processos de negócio.
Um resumo segue abaixo:
BPMS
Reuso de Ativos
Sem comentários »