Artigo recomendado para Visual Studio Team System

O desenvolvimento de software evoluiu muito ao longo dos últimos 30 anos. Nos deparamos com diversas tecnologias e plataformas que elevaram o desenvolvedor a um patamar estável na codificação de suas aplicações. Dentro das empresas, tem-se formado cada vez mais grupos de desenvolvedores trabalhando em conjunto no mesmo projeto e até com mesmo código fonte. Forçado pela natureza de qualquer negócio do mercado atual, o ciclo de desenvolvimento de software teve que se adequar ao modelo fabril para a produção em escala ocasionando diversos problemas e novas necessidades de controle para garantir a produção e padrão de qualidade exigido por um mercado maduro e competitivo.
Em um passeio pela pela história, desde a Revolução Industrial até a produção de veículos em escala proposto por
Henry Ford, nos colocamos neste mesmo cenário respeitando as devidas escalas dentro da área de tecnologia. As disciplinas de engenharia de software também tem acompanhado esse novo modelo de desenvolvimento trazendo maturidade e tornando-se um segundo aliado. Podemos separar em duas principais frentes: Modelo Ágil liderados pelo movimento Ágil e Modelo formal liderados pelo SEI, além de complementos como disciplinas e práticas no gerenciamento de projeto baseada no PMI.

Como já comentamos anteriormente, codificar tornou-se uma tarefa fácil, mas fazer isso em grupo e alinhado com as necessidades do negócio torna-se um grande desafio para os mais variados tipos de cenários.

A grande questão envolvida no desenvolvimento de software é que esse modelo é totalmente diferente, por exemplo, da construção civil onde você pode enxergar a construção de cada etapa da obra parede por parede. Nesse caso você tem como ver e acompanhar o que está sendo feito, podendo rapidamente cobrar um atraso e corrigir as primeiras falhas aparentes.

Ainda dentro do cenário atual, vale ressaltar os diversos estudos realizados pelo
Standish Group relacionados a falhas em projetos de software com índices alarmantes e comuns mesmo para a realidade do Brasil onde cerca de apenas 30% dos projetos são classificados como sucesso o restante acabam atrasando ou estourando orçamento previsto ou cancelados.

Baseado nas informações já expostas, entra nesse cenário o Visual Studio Team system (VSTS) como solução integrada  de
Application Life Cycle Management (ALM) destinada ao completo gerenciamento do ciclo de vida das aplicações em  projetos de software. Com o VSTS, você vai alinhar uma metodologia e poderosas ferramentas integradas que seguem um workflow de comunicação desde o início da tarefa no Microsoft Project a codificação no Visual Studio e testes até o controle de código fonte e relatórios gerenciais para acompanhamento. Seja você um Gerente de Projeto, Arquiteto de Solução, Desenvolvedor, Testador ou Patrocinador do projeto. Cada um terá sua versão cliente especifica que conectada ao Team Foundation Server (TFS) vai permitir integração ao workflow realizando mapeamento de todas as atividades. Confira a Figura 01.





Figura 01 - Visual Studio Team System

Para melhor entender a estratégia do Visual Studio Team é importante conhecer sua arquitetura principal que está dividida em cliente e servidor conforme Figura 02.


Figura 02 - Edições do Visual Studio Team System

- Team Foundation Server (TFS)
É o servidor da solução de Team System. Funciona como o coração de toda comunicação no projeto. Nesse repositório é armazenado as informações coletadas no cliente. A comunicação do WorkFlow é realizada por meio de itens de trabalho (WorkItems) que criados pelo MS Project, Excel ou diretamente no Visual Studio consiste nas tarefas a serem executadas dentro do projeto. É o provedor de relatórios para acompanhamento do projeto. Controla o código fonte de forma integrada trazendo novos conceitos além do simples armazenar, pois ele contém políticas de controle que permitem uma integração do código fonte ao ciclo de desenvolvimento. Tais políticas permitem por exemplo garantir que todo o código enviado está relacionado a uma tarefa criada no MS Project. Destaca-se também pelo armazenamento de código dentro do SQLServer usando transações atômicas evitando qualquer perda de código e permitindo desenvolvimento remoto.
 
- Visual Studio Team Suite
Compreende todas as funcionalidades abordadas nas versões versões específicas e é indicado para projetos onde um membro participa de vários papéis.

- Visual Studio Team System Architecture Edition
Esta é uma edição direcionada especificamente para arquitetos onde traz recursos para a criação de diagramas e modelagens das aplicações com recursos, por exemplo, para validar se uma aplicação pode ser implementada em uma determinada infra estrutura.

- Microsoft Visual Studio Team System Development Edition
Esta é uma edição direcionada para desenvolvedores onde traz recursos avançados  indo além da codificação em sua linguagem de programação preferida como: Code Analysis (Revisão automática de código ou code review), Peformance Tuning (Verificação de problemas de peformace), Security Analysis, Code Metrics (Complexidade de manutenção do código) e outros.

- Microsoft Visual Studio Team System Test Edition
Esta é uma edição direcionada para profissionais encarregados da criação de testes provendo uma poderosa infra estrutura para controle de qualidade. Você pode criar e gerenciar os mais variados tipos de testes: Unit Test (Teste Unitário), Code Coverage (Cobertura de código), Web Test (Incluindo Ajax), Load Test(Para carga), Manual Test.

- Microsoft Visual Studio Database Edition
Esta é uma edição direcionada para profissionais que desempenham o papel  de DBA (Administrador de banco de dados) possibilitando diversos recursos para gerenciamento de banco de dados como: Suporte a edição usando T-SQL , Unit Test,Data Compare ,Schema Compare, Rename refactoring,Schema reporting e T-SQL Static Code Analysis (Revisão de código T-SQL para verificar qualidade e segurança).

- Visual Studio Team System 2008 Test Load Agent
O Load Agent tem o objetivo de ampliar o cenário de testes com um maior número de servidores simulando um grande volume de carga. Você vai conseguir  medir com eficiência usando um grande parque de maquinas por exemplo o tempo de reposta em um determinado cenário.

- Team Build
Esse servidor permite automação na criação de BUILD viabilizando a implementação de integração continua agendamento de builds até de hora em hora a depender do porte do projeto e garantindo a realização de diversas ações durante a criação da release: Unit Test, Code Analysis, Code Coverage.

Por onde começar?

O VSTS atende desde os projetos ágeis até os projetos formais e para isso traz já como metodologia padrão o Microsoft Solutions Framework (MSF) 4.2 que se divide em MSF for Agile e  MSN for CMMi não impedindo que você customize qualquer um desses modelos tal como utilize outra metodologia que esteja adaptada para o Team System.

A principal diferença de uma implantação de Visual Studio Team System para outro Software Microsoft é que o Team System conforme Figura 02 está atrelado a uma metodologia de trabalho que funciona como apoio ao ciclo de desenvolvimento da aplicação (ALM). Por isso é muito importante planejar o modelo de implantação baseada nas características do time de desenvolvimento levando em consideração o tamanho, o tipo de projeto desenvolvido, o grau de maturidade atual de forma a reduzir riscos e impactos.

O Diferencial ?

Um conjunto de ferramentas integradas vai lhe permitir de imediato redução dos custos de integração como acontece com outros fornecedores do mercado, possibilitando o início em projetos ágeis e posteriormente migração para modelos  formais baseados no CMMi.

Calculando o Resultado ?

Aumento da previsibilidade nos projetos, melhoria da comunicação, acompanhamento das atividades desenvolvidas, aumento da qualidade e controle efetivo do código desenvolvido além de permitir implementação do ciclo produtivo "Fábrica de Software" controlado por ferramentas especializadas no gerenciamento do projeto que coletam informações de todos os clientes "desenvolvedores" e sumarizaram estrategicamente para que decisões importantes sejam tomadas em tempo real, além de acompanhamento remoto do projeto e integração com ferramentas consolidadas como MS Project e MS Excel.

Quem pode se conectar ao Team Foundation Server ?

Além das versões Team Editions, MS Project e MS Excel, você pode utilizar o próprio Visual Studio Professional, ou para cenários mais customizados, você pode usar outras soluções usando um conector MSSCCI Provider que vai permitir acesso usando as seguintes aplicações: Visual Studio .NET 2003, Visual C++ 6 SP6, Visual Visual Basic 6 SP6, Visual FoxPro 9 SP1, Microsoft Access 2003 SP2, SQL Server Management Studio, Sybase PowerBuilder 10.5, Toad for SQL Server 2.0.

Você também pode usar conectores de terceiros como o Team Prise que permite os seguintes acessos: Eclipse/Websphere integration, Unix, Linux, Mac OS clients.

Os conectores garantem acesso ao servidor de código fonte e integração aos WorkItems.

Como ter acesso as informações dos projeto ?

Para cada projeto criado, você terá acesso ao portal do projeto que é baseado no Sharepoint e criado automaticamente para cada projeto ou por meio da ferramenta Visual Studio Team System Web Access Confira Figura 03.


Figura 03 - Visual  Studio Team System Web Access.

Como controlar o código fonte de forma integrada ?

Diferente do Source Safe o Team Foundation Version Control  disponibiliza um controle de código fonte integrado ao ciclo de desenvolvimento armazenando dentro do SQLServer oferecendo políticas agressivas de checkin obrigando por exemplo um desenvolvedor a sempre informar qual WorkItem (Tarefa criada MS Project) que solicitou o desenvolvimento daquele código ou obrigar o desenvolvedor a comentar todos métodos antes de fazer checkin ou a rodar o analisador de código (Code Analysis). Está presente também todas estratégias modernas como: Checkin,Checkout, Label, Branch, Merge, Shelve.

Como é feito o acompanhamento?

Os gerentes de projetos continuaram a utilizar o seus cronogramas no MS Project que se integraram ao Team Foundation Server fazendo com que as tarefas sejam entregues diretamente no Visual Studio do desenvolvedor por meio de WorkItems garantindo a comunicação e o acompanhamento a medida que os WorkItems são finalizados conforme Figura 04.


Figura 04 - Tela do Microsoft Project 2007 integrada ao TFS.

O mesmo gerente de projeto pode completar suas analises com os relatórios disponibilizados no portal do projeto como os modelos das Figuras 05 e 06 onde tratam sobre as atividades pendentes e indicadores de qualidade que trazem informações estratégicas para qualquer projeto de software.



Figura 05 - Relatório que apresenta o trabalhando pendente.

Numa rápida avaliação no formato de gráfico você já terá informações estratégicas sobre os principais status dos WorkItems: Ativo (Backlog), Resolvido (Ainda não testado), Closed (Finalizado).



Figura 06 - Relatório com indicadores de qualidade.

No gráfico da Figura 06 estamos avaliando quantos testes estão sendo realizados, quantos bugs foram encontrados. Quantos bugs estão ativos. Quanto do código está sendo coberto pelos testes (Code Coverage) e por fim quantas linhas foram modificadas e/ou inseridas desde os últimos testes. Um índice importante que se for crescente indica aumento do risco de novos bugs sendo inseridos.

Conclusão

O Visual Studio Team System é a plataforma definitiva para Application Lifecycle Management cobrindo todo eco sistema envolvido no desenvolvimento das aplicações e completou o elo faltante para potencializar o desenvolvimento de software profissional em modo fabril aliando-se com uso de modernas metodologias trouxe uma nova realidade que agora pode ser alcançada até por pequenas empresas desenvolvedoras de software (
Independent Software Vendor) que junto aos programas de parceria oferecidos pela Microsoft tornou-se amplamente viável sua adoção. 

 

 Referência:
-
Gerenciando projetos de software com Visual Studio Team System

- Qualidade de software com Visual Studio Team System
-
MSDN Visual Studio Team System

- WorkShop Visual Studio Team System