Aderência do IBM Rational Team Concert ao MR- MPS Uma análise com ênfase em gerência de configuração João Condack PrimeUp Instituição Implementadora MPS.Br Rio de Janeiro RJ Brasil condack@primeup.com.br Abstract. This paper describes how IBM Rational Team Concert (RTC) can be compliant to MPS reference model. It presents the model elements supported by the tool and its features. The configuration management discipline expected results are detailed while other results and attributes of the model are grouped by functionality. Practical experiences were taken into account in the analysis and conclusions. Resumo. Este artigo descreve como a ferramenta IBM Rational Team Concert (RTC) pode ser aderente ao modelo de referência MR-MPS. Os elementos do modelo ao qual a ferramenta apóia e as respectivas funcionalidades são apresentadas. Os resultados esperados da disciplina de gerência de configuração são detalhados enquanto outros resultados e atributos do modelo são agrupados por funcionalidade. Experiências práticas foram levadas em conta na análise e conclusões. 1. Introdução Frequentemente projetos de software exigem que sejamos mais rápidos e produtivos, atendendo aos desafios do mercado. Isto faz com que áreas de TI invistam em qualidade, capacidade de monitoramento e governança, e garantam flexibilidade e velocidade para as demandas através de orçamentos cada vez mais reduzidos. Paralelamente, novas interpretações para boas práticas de engenharia de software tem clamado por formas mais ágeis e colaborativas de trabalho sem abrir mão da qualidade e da previsibilidade. Neste contexto, avaliamos a aderência de uma ferramenta orientada a gestão ágil e colaborativa do ciclo de vida de aplicações com relação ao modelo de referência MR-MPS. A PrimeUp é Instituição Implementadora do MPS-Br e também parceira IBM, portanto, foi possível levar em consideração a experiência de profissionais da PrimeUp em projetos internos e externos que envolveram tanto o IBM Rational Team Concert (RTC) quanto o MR MPS. O restante deste artigo está organizado da seguinte forma: a seção 2 apresenta a ferramenta IBM Rational Team Concert. Na seção 3 são analisados os elementos do modelo ao qual a ferramenta apóia e as respectivas funcionalidades. Por fim, na seção 4, são descritas as conclusões deste trabalho. 166
Aderência do IBM Rational Team Concert ao MR-MPS Uma análise com ênfase em gerência de configuração 2. O IBM Rational Team Concert As novas ferramentas IBM Rational foram desenvolvidas utilizando como base a plataforma Jazz [IBM, 2011 a]. Jazz é um projeto e plataforma de código aberto para transformar como as pessoas trabalham juntas visando entregar maior valor e desempenho em seus projetos de software. Seu principal resultado é uma arquitetura apresentada na Figura 1 que disponibiliza serviços que dão suporte a colaboração, tais como: painéis de informação, registro de projetos e equipes, busca, segurança, notificações de eventos e integração com IDEs Eclipse, Visual Studio e Web [IBM, 2011 b]. Figura 1. Arquitetura Jazz. (Fonte: IBM) O Rational Team Concert foi a primeira ferramenta desenvolvida utilizando a estrutura da plataforma Jazz. O RTC implementa a disciplina de Gerência de Configuração, possibilitando o desenvolvimento distribuído e o controle de versão dos artefatos de projetos bem como as atividades dos envolvidos. 2.1. Principais funcionalidades Estão disponíveis no RTC funcionalidades de criação, acompanhamento, planejamento, administração de itens de trabalho; painel de controle via web; versionamento de artefatos; gestão de baselines; definição, execução e registro de builds realizados. Uma lista detalhada de funcionalidades pode ser obtida em [IBM, 2011 c]. 2.2. Acesso a ferramenta O RTC pode ser obtido no endereço http://jazz.net onde o servidor e os clientes (para Eclipse e Visual Studio) podem ser copiados. Existem diferentes formas de utilização: Sandbox: com qualquer cliente é possível acessar o servidor disponível para testes residente no site do Jazz; Instalação própria: o RTC é instalado em um servidor próprio e clientes são utilizados para acessá-lo; JazzHub: iniciativa que permite a educadores utilizar servidores RTC na nuvem para realização de atividades acadêmicas. Um mesmo cliente pode acessar distintos servidores. 167
Para se conectar a um servidor é necessário uma licença. As licenças de uso podem ser nomeadas (direcionadas a um determinado usuário) ou flutuantes (usuários compartilham um pool de licenças). Existem ainda distinção entre licenças de acordo com perfis de uso (ex. interessados, contribuidores, desenvolvedores). Detalhes sobre os tipos e funcionamento do mecanismo de licença podem ser encontrados em [IBM, 2011 d]. Vale observar são oferecidas até 10 licenças gratuitamente. 3. Aderência ao Modelo de Referência MR-MPS A aderência será descrita através do apoio que o RTC oferece as práticas que visem atender aos resultados esperados pelo modelo [SOFTEX, 2011]. Esta seção está dividida em duas partes. A primeira relata os achados relacionados a gerência de configuração, principal disciplina atendida pela ferramenta e, portanto, com análise mais detalhada. A segunda parte apresenta análises referentes a outras disciplinas de forma geral e agrupadas pelo tratamento dado pela ferramenta. O aprofundamento das análises da segunda parte, embora importantes, não estão no escopo deste artigo. 3.1. Disciplina de Gerência de Configuração GCO 1 1 : O RTC implementa os conceitos necessários para a institucionalização de um sistema de gerência de configuração. Possui controlador de versões, realiza a gerência de mudanças, permite manter a rastreabilidade entre mudanças e artefatos (através do conceito de conjunto de alterações ), bem como criar baselines, oferecer suporte ao desenvolvimento em paralelo (criação de ramos), atender a políticas otimista e pessimista de checkout e permite a gerência de construções e liberações. GCO 2: O RTC oferece formas de identificar nos projetos quais são os itens de configuração, permite organizá-los em componentes. É possível tratar também quais itens não estarão sob a gerência de configuração, mantendo-os em outras estruturas da ferramenta como anexos a itens de trabalho ou projetos. Na Figura 2 é apresentada a esquerda, entre outros elementos, um projeto aberto (SEGUI), seus componentes (Core, SEGUIServer, SEGUIWeb) e um ramo (SEGUI Team Stream) criado com baselines de dois dos componentes. A direita está a definição do ramo e uma visão dos itens de configuração de um dos componentes selecionados. GCO 3 e GCO 4: O RTC oferece o controle formal para a criação de baselines de componentes, bem como o fechamento de versões de um conjunto de componentes (snapshots). Indica também quais dos snapshots serão marcados como release (entrega do produto). Também possui visões para a consulta dos itens de configuração, bem como os históricos de baselines e snapshots. Todo acesso a ferramenta é realizado e configurado de acordo com mecanismos de identificação de usuários e autorização por papéis. 1 Itens do MR-MPS como resultados esperados e atributos de processos estão identificados através dos códigos derivados do modelo. Por exemplo: GCO 1 refere-se ao resultado esperado Um Sistema de Gerência de Configuração é estabelecido e mantido da disciplina de Gerencia de Configuração (GCO) 168
Aderência do IBM Rational Team Concert ao MR-MPS Uma análise com ênfase em gerência de configuração Figura 2. Projetos, componentes, ramos e itens de configuração. Figura 3. Histórico de baselines. A Figura 3 mostra o histórico das baselines geradas a partir de builds de um ramo do projeto (Baselines for Build in SEGUI Team Stream). GCO 5: O RTC oferece visões para acessar o histórico de modificações de um item de configuração, controlar as modificações de um item de configuração através de um fluxo de trabalho implementado em um item de trabalho e oferece a rastreabilidade de um item de trabalho com as modificações realizadas nos diversos itens de configuração envolvidos. Um item de trabalho é um elemento da ferramenta que possui dados e um fluxo de trabalho associados. Também possui um tipo que o caracteriza frente ao seu uso, como por exemplo, solicitação de mudança, tarefa, defeito, entre outros. É um recurso bastante flexível da ferramenta, permitindo customizações. 169
A Figura 4 sinaliza a primeira entrega do arquivo.classpath para o repositório de itens versionados. O item pertence ao componente SEGUIServer. Figura 4. Controle de modificações em itens de configuração. A Figura 5 mostra um item de trabalho do tipo defeito (Defect) e no detalhe a rastreabilidade através de links para os conjuntos de alterações (change sets). Figura 5. Item de trabalho com rastreabilidade para conjunto de alterações. 170
Aderência do IBM Rational Team Concert ao MR-MPS Uma análise com ênfase em gerência de configuração GCO 6: O RTC oferece visões para controlar a liberação dos itens de trabalho e baselines. Os seguintes elementos e comandos são utilizados: Figura 6. Elementos e comandos para controle dos itens de configuração. (Fonte: IBM) Fluxos (Streams): Visões do repositório versionado que contém itens de configuração organizados em componentes. São utilizados para implantar políticas de ramificação. Espaços de Trabalho do Repositório (Repository Workspaces): Residem no Servidor e referenciam componentes definidos em um fluxo. São espaços intermediários entre o repositório e as estações de trabalho. Permitem o trabalho isolado ou compartilhamento entre usuários. Espaços de Trabalho Local (Local Workspaces): Residem na estação de trabalho local do usuário. Possuem cópias controladas pela ferramenta de versões específicas de artefatos onde o trabalho é realizado. Carregar (Load): Copia o conteúdo do espaço de trabalho do repositório para o espaço de trabalho local. Registrar Entrada (Check-in): Copia arquivos alterados do espaço de trabalho local para o espaço no repositório Entregar (Deliver): Copia as alterações do espaço de trabalho do repositório para o fluxo. Aceitar (Accept): Copia alterações do fluxo para os espaços de trabalho do repositório e local A Figura 7 apresenta a interface de uma definição de build responsável pela liberação das baselines e itens de configuração. As definições de build determinam quais componentes serão liberados e é possível configurar quais os responsáveis pela liberação. Na parte inferior da figura está o histórico com todas as liberações registradas. Figura 7. Definição de um build e seu histórico. 171
A Figura 8 mostra o resultado de um build. Neste painel é possível verificar os pacotes gerados, testes que foram executados, as baselines dos componentes envolvidos na construção, as atividades trabalhadas para as entregas, as modificações realizadas. Figura 8. Resultado de um build. GCO 7: O RTC permite realizar comparações entre baselines, possui rastreabilidade entre itens de trabalho e itens de configuração, histórico de alterações e visualização dos itens que compõem uma determinada baseline ou build. Todas estas funcionalidades podem apoiar as atividades de auditoria previstas em um processo definido. Alem disso, auditorias podem ser programadas, revistas e aprovadas através de itens de trabalho caracterizados para este propósito. 3.2. Apoio a outros itens do modelo de referência GPR 1 e GPR2: Trata-se da definição do escopo do projeto e do detalhamento e dimensionamento de tarefas. Um escopo pode ser representado de diversas formas, dentre elas, por uma estrutura analítica do projeto (EAP). O RTC permite definir hierarquia de items de trabalho, os quais podem representar tanto marcos do projeto e atividades quanto tarefas simples. O esforço do trabalho pode ser registrado utilizando pontos de história (story points) ou tempo estimado. GPR 3 e DFP 4: Estes resultados tratam da definição e manutenção de ciclos de vida de projeto. O RTC permite a criação e reutilização de modelos de processos. Os modelos apóiam na implementação destes ciclos de vida permitindo, entre outras coisas, a definição padrões para: fases, iterações, templates de itens de trabalho, comportamentos e restrições sobre operações. Estes padrões são aplicados a cada projeto criado utilizando um modelo de processo selecionado. GRE 5, GQA 3, GQA 4, GPR 18 e GPR 19: De modo geral estes resultados abordam a identificação de mudanças (ou problemas) e a gestão de ações para o devido acompanhamento. GRE 5 trata da gestão de mudanças nos requisitos ao longo do projeto. GQA 3 e GQA 4 dizem respeito a problemas, 172
Aderência do IBM Rational Team Concert ao MR-MPS Uma análise com ênfase em gerência de configuração não-conformidades e ações corretivas no âmbito de auditorias de qualidade. GPR 18 e GPR 19 abordam problemas, análises e ações corretivas no escopo da gerência do projeto. O RTC permite criação de itens de trabalho específicos para solicitações de mudança, desvios (issues) e tarefas o que permite a identificação dos itens e gestão de ações corretivas em qualquer versão dos ativos de software. Internamente em um item de trabalho existe o mecanismo de aprovações que viabiliza o direcionamento das ações corretivas para níveis superiores e o envolvimento das partes interessadas. Este envolvimento também pode ser obtido através da funcionalidade de assinatura de um item de trabalho, onde o assinante passa a receber automaticamente informações sobre o item assinado (por e-mail, rss ou pop-up). GPR 6, GPR 15 e a disciplina de GRI: Os tipos de itens Risco e Ação de Mitigação permitem criação de itens de trabalho específicos para identificação e acompanhamento dos riscos e ações associadas, o que apóia a gestão riscos nos projetos. GPR 9, RAP 12 e RAP 13: O resultado esperado e os atributos de processo envolvem a gerência de configuração respectivamente para dados relevantes do projeto e para produtos de trabalho dos processos do modelo de referência. Uma vez que a ferramenta fornece um sistema de gerência de configuração completo, por consequência também apóia estes itens. GPR 5, GPR 13 e GPR 14: Estes resultados de gerência de projetos abordam, entre outros pontos, o estabelecimento, manutenção e monitoramento de elementos como cronogramas, marcos, pontos de controle e recursos humanos. Estes pontos podem ser definidos, controlados e acompanhados no RTC através do encadeamento de itens de trabalho do tipo tarefa e do tipo marco, os quais possuem estruturas para estimativa e contabilização de duração, esforço e datas. Os recursos humanos no RTC podem ser associados aos itens de trabalho e terem suas alocação organizada de acordo com a distribuição de tempo disponível entre distintos projetos. GPR 16: Sobre o envolvimento das partes interessadas no projeto isto pode ser alcançado na ferramenta de diversas maneiras. Os itens de trabalho têm registro de seus criadores, executores e assinantes. Os interessados podem assinar também resultados de consultas, de construções e eventos de equipes. Estes relacionamentos permitem que a ferramenta notifique por e-mail, rss ou pop up o assinante quando algum evento ou mudança ocorre. Outra funcionalidade que permite o envolvimento da equipe são os painéis customizáveis que permitem a troca de informações, relatórios, indicadores sobre os projetos. Fóruns, chats e comunicação por voz também são possíveis no RTC. 4. Conclusões A qualidade dos profissionais e a solução ferramental adotada em uma implementação do modelo, traz retorno abrangente de qualidade. Especialmente na disciplina de gerência de configuração, o uso de ferramentas se caracteriza como peça fundamental. O RTC mostrou que, além de prover um sistema completo e integrado de gerência de configuração, sua flexibilidade para expansão, seus elementos de conhecimento já embutidos (como modelos de processo e tipos de itens de trabalho) e a arquitetura da plataforma, compõem uma base para outras práticas de engenharia de software. Assim a ferramenta passa de um nível fundamental de uso para 173
outro superior que agrega diferencial técnico, permitindo a institucionalização e a integração com outras disciplinas, como gerência de projetos, gerência de riscos e garantia da qualidade. Foi percebido também que, dado o alto volume de funcionalidades e procedimentos envolvidos, além da capacitação específica na ferramenta e nas disciplinas envolvidas, faz-se necessário a elaboração colaborativa de um guia de uso. Tal guia indica e orienta como, dentre as várias possibilidades, a ferramenta deve ser utilizada para atender aos processos da organização. Um ponto não abordado neste artigo mas que merece atenção futura é a integração do RTC com outras ferramentas de engenharia de software. Esta conexão é propiciada pela plataforma Jazz e permite que uma composição de softwares compartilhem dados e serviços de modo a atender outras disciplinas como requisitos, testes, reuso, solução técnica e gestão de portfólio de forma unificada. Outro trabalho futuro seria, semelhante a gerência de configuração, analizar a ferramenta exclusivamente sob a ótica de gerência de projetos, disciplina atendida pelo RTC de forma abrangente. Referências [IBM, 2011 a] IBM About Jazz, agosto 2011. Disponível em http://jazz.net/about/ [IBM, 2011 b] IBM Team awareness, agosto 2011. Disponível em http://jazz.net/projects/rationalteam-concert/features/team-aware [IBM, 2011 c] IBM Rational Team Concert Features, agosto 2011. Disponível em http://jazz.net/ projects/rational-team-concert/features [IBM, 2011 d] IBM Licensing in the Rational solution for Collaborative Lifecycle Management (CLM) 2011, agosto 2011. Disponível em https://jazz.net/library/article/548 [SOFTEX, 2011] ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO SOFTEX. MPS.BR Guia Geral:2011, junho 2011. Disponível em www.softex.br 174