Gerência - Metodologias e Processos

Vantagem do Visual Studio 2005 Team System diante do CMM

Esse artigo é baseado no produto Visual Studio 2005 Team System e creio que será util para fins de gerência de desenvolvimento sistemas.

por Thiago Cruz



1) Introdução

Os desafios de projetar os sistemas distribuídos que projetam e desdobram em macro processos processo razoavelmente complicados tornou-se cada vez mais um obstáculos para as fábricas de softwares. Visualizar o projeto dos sistemas distribuídos como um inteiro torna-se cada vez mais difícil, impactando no processo fragmentado e estruturado.

As empresas têm tipicamente muitos sistemas diferentes que acumularam o tempo excedente enquanto os departamentos compram, desenvolvem, ou adquirem uma variedade das aplicações. Porque os sistemas individuais usaram todo o número de tecnologias de programação, tornando difícil compartilhar funcionalidades e dados entre eles. Para permitir a interoperabilidade, os colaboradores e os arquitetos são requisitados cada vez mais a projetar interação entre os sistemas. Manter o projeto e o código sincronizados com a documentação do projeto do sistema, montar uma comunicação entre arquitetos e colaboradores.

2) CMM

O Capability Maturity Model for Software (SW CMM) é um modelo de referência para a avaliação da capacidade e maturidade dos processos de uma organização para a produção de software. Por uma questão de simplificação.

Com as avaliações CMM, você consegue identificar e definir o status atual do desenvolvimento, ou seja, o nível da maturidade que deseja alcançar, estabelecendo-o como meta e tomar ações para reduzir a distância entre o status atual e o almejado. Antes de melhorar alguma coisa, devemos primeiro conhece-la. Uma empresa pode ter várias maneiras de executar uma mesma tarefa, como desenvolver e manter software. Cada uma delas representa um processo.

Pode existir um processo para os sistemas corporativos, outro para os departamentais e um terceiro para desenvolver sistemas de pequeno porte. Mais de uma metodologia pode estar sendo empregada ou nenhuma! Pode haver controle total das bibliotecas de programas no mainframe, nas aplicações cliente/servidor, tudo feito de maneira totalmente artesanal.

Níveis do CMM

2.1) Nível – 1 – Inicial

As principais características das organizações de nível 1 são os problemas de gerencia (e não os de ordem técnica). Mudando-se as pessoas, a qualidade do software produzido pode mudar. Nesse nível, o processo de desenvolvimento é, para o gerente, uma caixa preta onde entram os requisitos e sai o software.

2.2) Nível – 2 – Repetível

A partir desse nível, os processos de gerência de software são documentados e acompanhados. Políticas organizacionais orientam os projetos estabelecendo processos de gerenciamento. Práticas bem sucedidas podem ser repetidas em novos projetos. No nível 2 existe um sistema de gerenciamento em vigor que garante o cumprimento de custos e prazos em projetos similares já desenvolvidos anteriormente. Este nível possui as seguintes áreas chaves:

  • Gerencia de requisitos;
  • Planejamento de projeto de software;
  • Acompanhamento de projeto de software;
  • Gerenciamento da configuração de software;
  • Gerenciamento da qualidade de software;
  • Gerenciamento de subcontratos de software.

    2.3) Nível – 3 – Definido

    No nível 3 as organizações possuem um processo de desenvolvimento de software definido, documentado e compreendido. O processo passa a ser padronizado para toda a organização, podendo ser customizado para cada projeto. As áreas-chave deste nível são:

  • Foco no processo da organização;
  • Definição do processo da organização;
  • Programa de treinamento;
  • Gerenciamento interligado de software;
  • Engenharia de produto de software;
  • Coordenação entre grupos de desenvolvimento;
  • Revisões.

    2.4) Nível – 4 – Gerenciado

    As organizações que possuem o nível 4 já possuem bases objetivas para a tomada de decisão pois o processo é medido e gerenciado quantitativamente. É possível prever o desempenho dentro de limites quantificados. O nível 4 possui as seguintes áreas-chave:

  • Gerenciamento quantitativo do processo;
  • Gerenciamento da qualidade de software.

    2.5) Nível – 5 - Otimizado

    O foco do nível 5 é na melhoria contínua do processo, onde a mudança de tecnologia e as mudanças no próprio processo são gerenciadas de forma a não causarem impacto na qualidade do produto. Neste nível possui as seguintes áreas-chave:

  • Prevenção de defeitos;
  • Gerenciamento da mudança tecnológica;
  • Gerenciamento da mudança de processos.

    Referências para a implantação do CMM:
  • Technical Report CMU/SEI-93-TR-024- “Capability Maturity Model for Software – Version 1.1”;
  • Technical Report CMU/SEI-93-TR-025- “Key Practices of the Capability Maturity Model, Version 1.1”;
  • Special Report CMU/SEI-93-SR-007- “A Software Process Framework for the SEI Capability Maturity Model: Repeatable Level”.

    3) Realidade de hoje

    Considere um exemplo simples de planejar um sistema, desenvolvê-lo, conseguindo desdobrá-lo para todas as áreas de interesse e ainda as mesmas integrando informações entre elas. A desconexão entre o desenvolvimento e a operação proporciona freqüentes reorganizações durante o desenvolvimento do projeto tendo grandes problemas no resultado final, podendo ainda gerar incompatibilidade com o datacenter e a rentabilidade da empresa acaba indo para o “buraco”, colocando os lucros do projeto nas correções de problemas.

    4) Visual Studio Team System na integração da equipe

    Quando você tem povos diferentes em papéis diferentes, você tem que comunicar-se e interagir. Isto é padrão em aplicações da empresa; entretanto, por causa do número dos povos em papéis diferentes, não está surpreendendo que as aberturas ocorrem na comunicação, que por sua vez pode conduzir às aberturas em um projeto.

    As equipes hoje possuem membros diferentes, que trabalham em papéis diferentes. Cada um faz coisas diferentes com ferramentas diferentes. Com o Visual Studio Team System, a Microsoft está indo de um foco do colaborador a um foco do desenvolvimento, conforme a figura 1. O foco é facilitar uma comunicação na busca de melhorias para fornecer confiabilidade durante o projeto.


    fig. 1.: Equipe integrada

    O diagrama de conexão da aplicação mostra as aplicações definidas dentro do Visual Studio Team System. O diagrama pode ser criado adicionando cada aplicação do toolbox, ou pode ser reverso projetado de uma solução existente ou dos projetos existentes, conforme a figura 2.


    fig. 2.: Diagrama de uma aplicação

    Uma aplicação visualiza referências a outros sistemas que necessitarão ser gerenciados durante a distribuição. Cada aplicação é descrita como uma caixa, com as formas menores que representam pontos da conexão.

    Se a aplicação for criada pela engenharia reversa através de um projeto ou uma solução existente, considera-se ser executado será sincronizado automaticamente. A abilidade de adiar a execução permite que os arquitetos e os desenvolvedores de aplicação concentrem no projeto funcional e na validação do sistema.

    O Application Connection Designer (ACD) auxilia o arquiteto lógico do Datacenter (LDD) a criar diagramas dos usuários lógicos interconectados que representam a estrutura lógica de um datacenter. Estes diagramas lógicos do datacenter comunicam a informação importante ao colaborador sobre o ambiente da aplicação. Usando este “desenhador”, os arquitetos das operações podem especificar e configurar os tipos de usuários no datacenter, os tipos de comunicações permitidas, e tipos de serviços permitidos, conforme a figura 3. Os diagramas lógicos do datacenter tipicamente serão criados e possuídos por analistas das operações, mas serão usados por colaboradores.


    fig. 3.: Diagrama de várias aplicações

    5) Conclusão

    A cada dia tem se falado de aplicações como BI (Business Intelligence, ERP’s, aplicações de gestão financeira e etc..). Para a gerencia, desenvolvimento e integração dessas aplicações é necessário estruturar uma equipe composta com várias funcionalidades. Com essa equipe “mista” é necessário uma integração da mesma, estruturando uma “base” com o foco em “um” só projeto, assim o interesse no desenvolvimento do artigo e também no Visual Studio Team System.

    OBS: Esse artigo é baseado no produto Visual Studio 2005 Team System e creio que será util para fins de gerência de desenvolvimento sistemas.

  • Thiago Cruz

    Thiago Cruz - Arquiteto de Projetos na FórumAccess, já atuou como professor de Graduação e Pós-Graduação em tecnologias .NET e Administração de banco de dados. Atualmente vem desenvolvendo projetos de Frameworks e realizando consultorias em multinacionais. Ministrou palestras em conceituados eventos como Tech Ed Brasil 2005, Community Days e Road Show Ineta 2006.
    É Bacharel em Administração de Sistemas de Informação, possui um MBA em Gestão Estratégica de Negócios. Participa da coordenação de Marketing do INETA BRASIL, é um dos líderes da comunidade ".Net Raptors" (
    www.dotnetraptors.com.br), responsável pela edição de vídeos on-line do portal Linha de Código.
    Pode ser encontrado no e-mail: thiago.cruz@dotnetraptors.com.br.