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