Arquivo de Novembro de 2008
Padrões, Tecnologias e Ferramentas Java para Suporte BPMS - Evento Java Developer Day ASSESPRO-MG
Acontece hoje em Belo Horizonte o Java Developer’s Day 2008 da ASSESPRO-MG. Tivemos a oportunidade de abrir o evento com uma palestra que disponibilizo aqui (Tecnologias Java para BPM e SOA).
Discutimos nesta palestra os principais padrões Java (WS-*, JBI e SCA) e tecnologias relacionadas (suítes BPM ou BPMS) para o suporte à implementação de projetos BPM e SOA. Para os iniciantes em BPM, recomendo a leitura dos seguintes posts sobre o assunto:
A Fauna BPMS

Ferramentas BPMS Open-Source
- Intalio (Conforme discutido na apresentação, talvez a suíte open-source mais robusta para BPMS).
Ferramentas Open-Source BPMS que suportam o padrão JBI
Ferramentas BPMS que suportam o padrão SCA
- Apache Tuscany Open-Source
- Eclipse STP Open-Source
- Mule Open-Source
- IBM WebSphere
- BEA AquaLogic
Recursos para suporte a projetos BPM
O ano de 2008 foi especialmente interessante para a área de BPM no Brasil. Observamos um grande interesse da comunidade técnica pelo assunto e vários projetos e iniciativas de melhorias sendo colocadas em prática. Notícia positiva também são os sites, associações e redes sociais já disponibilizados sobre o assunto, que resumo abaixo:
- eBizQ - O fórum mais ativo e rico que conheço sobre o uso de BPM na TI para aumentar a agilidade nos negócios. Destaco em particular os seminários gratuitos Web semanais, que trazem especialistas BPM e SOA de todo o mundo para compartilhar suas estórias de sucesso e desafios enfrentados.
- ABPMP (Association of Business Process Management Professionals) - A ABPMP é uma associação internacional de profissionais da área de Gerenciamento de Processos de Negócio (BPM), sem fins lucrativos, independente de fornecedores, e dedicada à promoção dos conceitos e práticas de BPM.
- IIBA (International Institute of Business Analysts) - O IIBA é uma associação sem fins lucrativos que tem como objetivo facilitar o trabalho do crescente número de profissionais que atuam na área de análise de negócios. Destacamos no IIBA o trabalho do BABOK, que documentamos em outro post.
- BPM Institute. Muita informação e colaboração de especialistas sobre BPM e BPMS (ferramentas BPM).
- The BPM Experience. Bom blog com informações ricas e atuais sobre BPM e BPMS.
- BP Trends. Excelente site sobre novidades, análises e tendências da área de BPM e BPMS.
Gostaria de destacar aqui também uma referência fundamental para suporte a BPM, embora na sua aparência seja “apenas” uma revista de administração - a Harvard Business Review. A HBR talvez seja a melhor revista sobre administração no mundo e é inclusive comercializada (em papel) nas melhores bancas e livrarias do Brasil. É uma fonte inesgotável sobre melhores práticas de administração e processos e referência obrigatória para praticantes sérios de BPM.
2 comentários »Pensamento do Dia: “As empresas estão perfeitamente alinhadas para obter os resultados que alcançam.”, Peter Drucker.
Práticas de Processo. Um Processo é uma coleção de práticas ágeis!
A IBM Rational, divisão de software da IBM que cuida da governança do ciclo de vida do desenvolvimento e entrega de softwares, fez o lançamento da nova versão do RMC (Rational Method Composer), um software que permite a criação e publicação de processos em portais Web. A nova versão 7.5 traz como grande novidade o conceito de práticas. Uma prática pode ser entendida como uma abordagem documentada para resolver problemas recorrentes no desenvolvimento de sistemas e possui as seguintes características:
- Uma prática pode ser adotada independentemente de outras práticas. Isso permite uma implementação de processos muito mais facilitada, suportada por pequenas ondas de implementação de um programa de melhoria contínua da maturidade de processsos.
- A adoção de uma prática pode ser medida. Este aspecto traz como raiz os conceitos de BPM, onde qualquer processo implementado deve ser medido para avaliar a sua efetividade.
- Uma prática está alinhada diretamente a uma melhoria no negócio. Novamente, os conceito de BPM estão aqui permeando a concepção do novo processo unificado.
As práticas centrais estão descritas abaixo:

As práticas estão agrupadas nas seguintes categorias:
- Gerência de Requisitos
- Práticas Ágeis
- Gerência de Arquitetura
- Gerência de Qualidade
- Controle de Mudanças e Entregas
- Governança e Regulamentações (Governance and Compliance)
Ao lermos esta documentação, percebemos uma grande dose de humildade ao reconhecer o valor das práticas ágeis. Virtualmente toda prática traz elementos das escolas ágeis. Pragmaticamente, isso é devido à grande influência do Scott Ambler no desenho desta nova arquitetura de processo. Outra forte influência foi o OpenUP, processo ágil baseado no UP e criado originalmente por um brasileiro, o Ricardo Balduíno!
Um ponto (negativo) no novo processo é que o corpo de conhecimento destas práticas ainda está isolado da documentação do RUP 7.0.1, como podemos observar na figura abaixo:
A documentação das práticas traz novos artefatos e tarefas que não estão presentes na outra documentação do RUP. Esperamos que no futuro estes corpos de conhecimentos sejam mesclados para maior simplicidade da leitura do processo.
Em artigos futuros iremos detalhar estas práticas e o seu valor real para o desenvolvimento de projetos de software.
Pensamento do Dia: “Continue Faminto, Continue Tolo”, Steve Jobs.
Da Eficácia à Grandeza da TI
Esta semana conteceu o evento ExpoManagement da HSM Brasil. Palestrantes de classe mundial como Jim Collins, Philip Kotler, Jimmy “Jimbo” Wales, Muhammad Yunus e Stephen Covey, entre outros monstros, estiveram no Brasil.
Destaco aqui a presença no Brasil do Stephen Covey, autoridade mundial em liderança e gestão do desempenho, que fez uma espetacular apresentação realizada no evento ExpoManagement.. Felizmente as transparências da apresentação estão disponíveis para acesso assim como um podcast. As idéias e práticas de Stephen Covey descrita aqui podem ser aplicadas em nível pessoal, em nível dos times de projetos e também em nível das organizações de TI e são uma inspiração constante para lidar e resolver os problemas, urgências e conflitos que enfrentamos nas nossas empresas no dia a dia.
1 comentário »Mais Suporte a JPA dos Fornecedores de Mercado Java - IBM Rational Application Developer 7.5 e WebSphere Application Server 7.0

A divisão Rational da IBM incorporou à sua IDE (RAD/RSA) - que ganhou recentemente o prêmio de melhor IDE do mercado na última pesquisa do Evans Data Group de Abril de 2008 - suporte visual para JPA. Este era um gap muito aguardado pela comunidade Java que trabalha com softwares IBM. Grande parte deste enorme atraso (se considerarmos que Java EE foi lançado em 2005) se deve a coordenação do lançamento do RAD 7.5 com o novo servidor de aplicação WAS 7.0, que possui suporte ao Java EE 5.0. O plugin para JPA é baseado no projeto open-source Eclipse Dali, mas conta com várias melhorias que fornecem maior velocidade e produtividade ao desenvolvimento de aplicações de larga escala.
Com o suporte da IBM temos o último dos grandes fornecedores de IDEs Java EE (junto com Oracle/BEA, SUN, JBOSS e BORLAND) com suporte oficial ao Java EE 5.0 e consolidação do JPA como tendência definitiva de mercado para a camada de persistência em Java. Para mais informações, um artigo sobre estas novas features está disponivel no Developer Works da IBM.
1 comentário »Sobre os Ombros de Gigantes - Padrões de Desenho, Análise, Testes, Arquitetura e muito mais.

O conceito de Design Patterns se tornou relativamente popular dentro da TI. Entretanto, eles ainda mais citados que praticados e diversos profissionais de TI ainda acreditam que eles são peças tecnicistas que somente podem ser usados por especialistas em linguagens OO. Padrões, em verdade, significam melhores práticas provadas pela indústria de TI. Praticamente todo profissional de TI pode se beneficiar dos padrões.
Para contribuir na disseminação do conceito de padrões, compartilho neste blog corpos de conhecimentos sobre padrões que podem ajudar a maior parte dos profissionais de TI que estão envolvidos nos desafios do desenvolvimento de software.
- Padrões de Desenho (Design Patterns). São os padrões clássicos para o projetista de TI, compilados inicialmente por Erich Gamma no começo dos anos 90. Uma referência lúdica sobre o tema pode ser encontrada aqui e é especialmente indicada para os iniciados. Para os mais experientes, recomendo os artigos do Erich Gamma na Artima - How to Use Design Patterns, Design Principles from Design Patterns, Erich Gamma on Flexibility and Reuse, Patterns and Practice. Uma comunidade muito ativa sobre este tópico é o HillSide.
- Padrões de Gerência de Configuração. Problemas sobre manter versões de manutenção evolutiva e corretivas consistentes, como criar ambientes estáveis para desenvolvimento de código e técnicas de como melhorar builds podem ser encontradas no excelente SCM Patterns.
- Padrões Arquiteturais. Estes padrões lidam com estratégias de organização de aplicações, como decomposição em camadas, integrações, técnicas de persistência, entre outros. Impossível não citar o trabalho de Martin Fowler nesta área e o seu site de padrões arquiteturais. Para os arquitetos de integração, um excelente site é o mantido por Gregor Hohpe (EAI PAtterns). Para os adeptos .NET, o APP Arch Guide é também um excelente site sobre o tema. Para os adeptos Java, os J2EE Patterns são obrigatórios.
- Padrões de Análise. Indispensável para analistas de requisitos e sistemas, padrões de análise nos permitem estruturar modelos de domínios mais consistentes. Neste aspecto, Martin Fowler (novamente!) mantém um excelente repositório sobre estes padrões de análise.
- Padrões de Processo. Dicas e técnicas sobre a implementação de processos de software em organizações de TI podem ser encontradas no site da AmbySoft, empresa do Scott Ambler. O modelo IDEAL do SEI também é uma excelente fonte de idéias sobre processos de implementação de processos.
- Padrões de Implementação. O site sobre refactoring é uma coleção de práticas valiosas sobre como manter a estabilidade e qualidade de um código à medida que ele se desenvolve em um projeto. Para os programadores Java, recomendo também o site do C2 sobe Java Idioms.
- Padrões de Teste. Um bom local a respeito é o artigo da Microsoft sobre Testing Patterns. Um outro bom artigo sobre padrões de teste está aqui, na base de conhecimento da IDE Java NetBeans. Uma excelente série de artigos também foi publicada pelo autor Marc Clifton - Advanced Unit Testing, Part I - Overview, Advanced Unit Testing, Part II - Core Implementation, Advanced Unit Testing, Part III - Testing Processes e Advanced Unit Testing, Part IV - Fixture Setup/Teardown, Test Repetition And Performance Tests.
- Padrões para Aplicações Web - A IBM desenvolveu um excelente catálogo de padrões para desenvolvimento de aplicações Web que ela batizou de e-Business Patterns.
Indispensável fonte de conhecimento também é a série de artigos das conferências do PLOP, o mais influente congresso mundial sobre padrões. Uma vertente Brasileira existe também e pode ser encontrada aqui (sugarloafplop).
2 comentários »