August 24, 2008 – 11:13 pm by
Gustavo S. Sinis
A tecnologia torna grandes civilizações possíveis. Desde a antigüidade, grandes populações tornaram ferramentas e técnicas indispensáveis. Desde 1.000 a.C, as civilizações já contavam com o arado, construções em arco, aqueduto, e com o carrinho de mão. Civilizações são organizadas, por exemplo, em cidades e acrópoles, possibilitando lidar com a complexidade que envolve administrar e suportar grandes populações.
Grandes corporações também precisam de ferramentas, e algumas são importantes para apoiar a governança. Encontramos desafios em coordenar e gerenciar várias equipes simultâneas, que estão freqüentemente desenvolvendo sistemas para automatizar partes distintas do mesmo sistema e processo de negócio, algumas trabalhando remotamente.
Isto resulta na necessidade de uma abordagem fácil de planejar, divulgar e reaproveitar processos de governança como, por exemplo, no caso de SOA, políticas de propriedades de serviço (“com quem eu reclamo?”) e de incentivos ao reuso. Esses processos de governança podem ser publicados, reutilizados e compostos com ajuda do EPF (Eclipse Process Framework).
A publicação pode ser feita em HTML, WAR (recursos mais avançados) e PDF. Além disso, pode ser transformada em um WIKI, montando um ambiente mais colaborativo.
“EPF Wiki is Wiki technology designed to be used together with Eclipse Process Framework (EPF). This offers the best of two distinct worlds: the worlds of powerful process frameworks and Wikis. It offers an process engineering infrastructure that combines a modular method construction approach and the flexibility and ease of use that is the defining characteristic of a Wiki. ” Site do EPF Wiki.
Grandes corporações possuem uma vasta quantidade de processos de negócio - muitos são complexos e em constante mudança. SOA ajuda a lidar com a complexidade, uma vez que organiza, indexa e encapsula o código, tornando as mudanças aceitáveis. Alguns vendors sustentam que ferramentas ESB são essenciais para SOA, mas acredito que práticas para representar e apoiar processos de negócio são mais importantes. O EPF pode ajudar a consolidar e divulgar corporativamente essas práticas. Does My Bus Look Big in This?, Martin Fowler & Jim Webber, QCon London 2008
A maior parte das pessoas não lê livros, especialmente descrições longas de processo, por isso, práticas ágeis e processos de governança simples e flexíveis - governança ágil – são essenciais. Ivar Jacobson defende esse novo paradigma em Enough of Processes: Let’s Do Practices. Ivar é um dos “pais” da arquitetura de componentes, caso de uso, UML e do RUP.
Jacobson sustenta que um processo é apenas uma composição de Práticas. Uma prática é um elemento reutilizável/essencial destacado do método/processo que pode ser usado separadamente de outras práticas. EPF fornece suporte para manter, compor e divulgar práticas de diferentes origens (EPF Practices, XP, SCRUM, OpenUP, OpenUP/MDD , FDD, EssUP…).
Alguns anos atrás, em uma grande corporação, nós utilizamos o EPF para facilitar o acesso de equipes a uma vasta gama de informações. Precisavam adquirir informações sobre desenvolvimento em tecnologias específicas (JEE e . NET), práticas e processos de desenvolvimento, bem como guia para ferramentas em diferentes ambientes e também políticas internas.
Até então, o conhecimento estava distribuído em vários PDFs, dificultando o acesso e o processo de atualização de diversas publicações inter-relacionadas (muito trabalho braçal para manter os links). O processo de desenvolvimento não poderia ser alterado (isto é, ele é rigorosamente controlado para finalidade de auditoria), então restava apenas trabalhar com a “arquitetura de informação”. O EPF forneceu um meta-modelo e um meio de publicação para manter e criar uma grande variedade de processos de TI, como processos de governança SOA e processos de desenvolvimento de Software.
Alguns, já acostumados com os endereços dos PDFs, alegaram dificuldades com a publicação gerada, pois esta exigia algum treinamento básico (mesmo existindo ferramentas de buscas eficientes); para outros, o acesso a novas informações ficou mais intuitivo. O ponto crítico foi a reengenharia da informação, um processo que deve ser contínuo. Com o conhecimento organizado/indexado, foi possível evidenciar vários problemas no processo de desenvolvimento. O EPF contribui com evolução do conhecimento, facilitando a inclusão de novas práticas e a supressão das antigas.
Além disso, o EPF permite que sua experiência em uma determinada abordagem seja armazenada e mantida de forma coesa e independente. Você pode criar um núcleo SOA, por exemplo, com processos, papéis e práticas para apoiar o desenvolvimento de aplicações em uma estratégia SOA e incrementar o processo de um cliente (se publicado com EPF) de forma não invasiva, ou seja, sem alterar fisicamente os processos, apenas usando os mecanismos de extensão (Herança, Descritores e outros) ou, ainda, publicar uma versão nova adaptada para a realidade do cliente (se ainda não utiliza o EPF).
Como o EPF pode ajudar?
O EPF é uma ferramenta de código aberto (Tecnologia Eclipse), baseado no SPEM/OMG (Software & Systems Process Engineering Metamodel specification), que fornece uma terminologia comum para documentar processos (governança) e práticas; mecanismos para adaptar e estender o conhecimento para projetos diferentes; e um ambiente central de publicação para facilitar a disseminação da base de conhecimento (navegação gráfica em todo o processo publicado).
Os conceitos do SPEM norteiam todas as funcionalidades do EPF. Todo método e prática/processo pode ser representado usando a seguinte estrutura básica:

Elementos principais
Produto de Trabalho - Um Produto de Trabalho é algo significativo, resultante da execução de uma tarefa. Não precisa ser formal, pode ser uma idéia em um quadro branco, ou algo mais formal como, por exemplo, código ou um documento de arquitetura.
Função (Papel) - Uma Função define um conjunto de habilidades, competências e responsabilidades relacionadas;
Tarefa - Uma Tarefa descreve uma unidade de trabalho. Cada Tarefa é desempenhada por Funções específicas. A granularidade de uma Tarefa geralmente é algumas horas em poucos dias.
Processo - pode agrupar tarefas em atividades, e as relaciona em seqüências ordenadas.
Orientação - é um conceito abstrato que generaliza o conteúdo, cuja finalidade principal é fornecer explicações e ilustrações adicionais aos elementos anteriores. Exemplos de orientações especializadas: Mentor de Ferramentas, Conceito, White Paper, Exemplo, Diretriz.
Existem diversos processos disponíveis nesse modelo, organizados em plugins (mecanismo que organiza os processos e métodos fisicamente no EPF), por exemplo, XP e SCRUM. Temos, ainda, uma coleção de práticas para serem acrescentadas em seu processo de desenvolvimento de software ( EPF Practices ), quais sejam: Continuous Integration; Iterative Development; Two Level Project Planning; Concurrent Testing; Evolutionary Design; Use Case Driven Development; Test Driven Developmen; Evolutionary Architecture. Uma metodologia para criar governança SOA da IBM também está disponível neste formato.
O EPF fornece mecanismos de “herança e polimorfismos” para o Conteúdo do Método (Tarefa, função, Produto) e para os Processos, ajudando a compor ou a combinar práticas e processos distintos.
O EPF também separa o Conteúdo do Método (Tarefa, Tarefa, Produto) - o núcleo - dos Processos. Isso assegura a reutilização do núcleo em processos diferentes. Um dos mecanismos utilizados para a separação é o Descritor.
Um Descritor representa uma ocorrência de um Elemento de Conteúdo concreto (como, por exemplo, Tarefa, Função, Produto de Trabalho) em um Processo. Os Descritores fornecem uma representação tipo proxy para esses Elementos de Conteúdo. Além de apenas fazer referência, permitem substituir os relacionamentos estruturais de Elementos de Conteúdo, definindo seus próprios conjuntos de associações, acrescentado mais orientações ou trocando papeis em uma tarefa.
O EPF permite que diferentes metodologias relacionadas como, por exemplo, desenvolvimento unificado e práticas para apoiar SOA (identificação, especificação de serviços) sejam mantidos independentemente (separação física com plugins) e ainda relacionadas, ou seja, usadas de forma combinada e não intrusiva, apenas usando os recursos de extensão do EPF.
Abordagem com WIKI
A ferramenta EPF WIK , é uma estratégia interessante para disseminação de novas práticas.

Segundo Per Kroll (EPF Project Lead), o EPF WIK pode ajudar:
” 1.Rapidly gather useful feedback by writing comments associated around content (lock content from editing)
2.Build communities around key content areas (lock editing to be centered around dedicated topics);
3.Rapidly gather useful feedback by directly editing process content
4.Improve process content without learning the metamodel or Composer
5.Capture process related experiences through harvesting “

Outras considerações
A plataforma JAZZ tem como promessa fornecer ferramentas para apoiar um desenvolvimento mais colaborativo e ágil.
“ Developing software in a team is much like playing an instrument in a band. Both require a balance of collaboration and virtuosity. Jazz defines a vision for the way products can integrate to support this kind of collaborative work, and a technology platform to deliver on this vision. ”
Em julho participei do IBM Development Conference, onde foi promovido o Team concert, criado com base na plataforma Jazz, que incorpora tecnologias de colaboração e um motor de processos, em que podemos “executar” um processo de governança definido com o EPF, por exemplo.
Revista ESM
Foi publicado recentemente um artigo meu com uma introdução da ferramenta.

Posted in Artigos, Ferramenta, Governança | No Comments »