Segunda-feira, 10 de novembro de 2008 às 09h30

Primeiros passos no Visual Studio Team System

Faltam -1 dias! Inscreva-se agora! O maior encontro de profissionais web da américa latina.

O desenvolvimento de um produto de software em conjunto já não é mais novidade em nenhum mercado. Falar, hoje em dia, de Rapid Application Development (RAD) e Integrated Development Environment (IDE) também já não traz mais novidade, pois já temos ótimas ferramentas como o Visual Studio 2008 que usa toda a tecnologia para oferecer grande produtividade no desenvolvimento de software e mais precisamente na codificação. Com a plataforma .NET Framework também consolidamos outra dúvida comum que era a escolha da linguagem de programação. Lá no passado eu escutava muito dos amigos a conhecida frase "A minha linguagem de programação é melhor que a sua". Conforme você vem acompanhando o mercado essa também já é uma afirmação bem ultrapassada.

O mercado hoje já está consolidado com os padrões disponíveis que já oferecem ampla segurança do ponto de vista de tecnologia. Agora chegou o momento de usar a tecnologia para facilitar não somente a codificação, mas incorporar todo o ciclo de desenvolvimento, pois só assim será possível alcançar um produto com qualidade no prazo e no tempo exigido pelo mercado desviando dos já conhecidos problemas ligados aos casos de insucesso na entrega de projetos de software tão relatados em diversas pesquisas realizadas pelo Standish Group (www.standishgroup.com) sobre o histórico dos projetos ao longo dos últimos 10 anos, conforme você pode ver na figura 01 onde apenas cerca de 30% dos projetos são considerados sucesso.

Figura 01 - Standish Group, 2004 Third Quarter Research Report, CHAOS Research ResultsFigura 01 - Standish Group, 2004 Third Quarter Research Report, CHAOS Research Results

Conforme você pode observar na figura 01, os números são alarmantes e representam também a nossa realidade, inclusive no Brasil. É um fato claro que está mais barato desenvolver software hoje, no entanto entregar com sucesso tem sido cada vez mais um grande desafio.

Com foco nessa grande demanda do mercado pela profissionalização do ciclo de desenvolvimento que desde 2005 a Microsoft passou a investir no mercado de Application Lifecycle Management (ALM), com o lançamento da plataforma de Visual Studio Team System (VSTS).

A plataforma do Visual Studio Team System (VSTS) é ofertada como uma solução baseada em um conjunto de produtos que trabalham juntos e integrados para proporcionar a gestão do ciclo de vida de uma aplicação, oferecendo suporte para todo o ciclo de desenvolvimento envolvendo todas as áreas e papéis relacionados em um projeto de software tais como:

  • Gestão
  • Negócios
  • Analise
  • Arquitetura (Software / Infra estrutura)
  • Desenvolvimento
  • Banco de dados
  • Qualidade

Com uma solução integrada oferecida pelo Team System você terá os mecanismos necessários para vencer os principais desafios em um projeto de software como: colaboração, qualidade, prazos e acompanhamento.

Com o modelo de gestão para o ciclo de desenvolvimento oferecido pelo Visual Studio Team System que trabalha em conjunto com a sua metodologia de desenvolvimento, você terá mais um grande aliado no seu projeto possibilitando de forma integrada grandes resultados que são muito difíceis de se alcançar de forma manual devido aos diversos desafios no dia a dia desenvolvendo software.

É muito importante você ter em mente que plataforma de Application Lifecycle Management (ALM) não é simplesmente uma ferramenta para salvar seu código fonte como tenho observado alguns clientes que confundem o Visual Studio Team System (VSTS) com o Visual Source Safe (VSS). O simples fato de armazenar o seu código fonte com as ações de Check-In e Check-Out você consegue tranquilamente com as principais ferramentas do mercado de Source Control, e não é essa a proposta de uma solução de ALM.

Para ter resultados numa plataforma de ALM é necessário projetar a implantação pensando em todo o ciclo de desenvolvimento do seu projeto de forma que possa usar a plataforma de forma estratégica e tenha total aderência com as características do seu projeto.

Nos últimos 12 meses tenho tido uma grande oportunidade de conversar com um grande número de clientes e avaliar seu processo de desenvolvimento para alinharmos uma estratégia de implantação do Visual Studio Team System, e estamos tendo um índice de satisfação de 100% ou mais se fosse possível registrar. O grande fato que quero registrar é que o VSTS oferece um modelo sólido para os mais variados tamanhos de projetos permitindo criar uma personalização para atender clientes pequenos, médios e grandes, respeitando as diferenças de cada cliente.

Eu me recordo de um cliente que relatou que conseguimos provocar "lágrimas" nós olhos dele pela tamanha satisfação e alcance de seus objetivos. Comentou ainda que por diversas vezes avaliou várias soluções, mas nenhuma chegou tão próximo do seu modelo de negócio como o Visual Studio Team System.

Esses momentos com os clientes são de grande importância, pois passamos a investir na plataforma desde 2004 internamente. A partir de 2005, com o lançamento oficial para o mercado, começamos a ofertar para os clientes. E nada melhor que trazer esse grande feedback de quem realmente acaba por usar a plataforma no seu dia a dia.

Para você ter uma idéia do potencial oferecido pelo Visual Studio Team System gostaria de lhe convidar a observar a figura 02.

Figura 02 - Visual Studio Team SystemFigura 02 - Visual Studio Team System

Nós temos uma estrutura divida em algumas camadas que poderíamos separar conforme as seguintes visões:

  • Ferramentas que atuam no cliente (Gerente de projeto, Arquiteto, Desenvolvedor, DBA, Tester).
  • Ferramentas que atual no servidor (Portal, Comunicação, Relatórios, Controle de versão).
  • Metodologia.
  • Ferramentas de terceiros que complementam a solução

O principal componente da nossa solução é o Team Foundation Server (TFS), conforme você pode conferir na figura 03, que se encarrega de coletar todas as informações durante o ciclo de desenvolvimento. A comunicação é realizada por meio de itens de trabalho (Work Itens), que são criados pelo MS Project, Excel ou diretamente no Visual Studio. Consiste nas tarefas a serem executadas dentro do projeto. O TFS é o provedor de informações coletando dados e sumarizando para exibir por meio de relatórios estratégicos para acompanhamento do projeto. Tenha em suas mãos o controle sobre o código fonte de forma integrada usando 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 esteja 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 com toda arquitetura baseada em Web Services.

Figura 03 - Visual Studio Team SystemFigura 03 - Visual Studio Team System

Você ainda pode observar na figura 03 os diversos recursos oferecidos por cada versão presente na solução: Achitecture Edition, Development Edition, Test Edition, Database Edition

A idéia é você utilizar a versão do Team Edition de acordo com o seu papel no projeto. E para complemento temos a versão Visual Studio Team Suite que já engloba toda as versões anteriores.

Terceirização de projetos desenvolvimento

Hoje em dia, independente do tamanho da empresa, sendo ela pequena ou média ou grande, em algum momento já deve ter sido levantada a bandeira da terceirização dos projetos de desenvolvimento ou parte deles. Nós temos cenários em clientes que possuem 09 fornecedores para desenvolvimento e o que poderia ser de imediato uma grande facilidade acaba necessitando de uma série de critérios para o devido acompanhamento.

Com a plataforma de Visual Studio Team System você agora tem mecanismos eficientes para gerenciar os fornecedores externos fazendo com eles sigam os padrões de desenvolvimento do seu projeto permitindo acompanhar a qualidade do projeto e todas as entregas.

Modelo único para gerenciamento de todos os projetos

Por mais que tentemos padronizar os processos e tecnologias, acabamos de ter que manter muitos projetos desenvolvidos em plataforma legadas e que ainda demandam muitas ações para manutenção e modificações relacionadas. Você poderá utilizar o Team Foudantion Server para armazenar também esses projetos usando próprio plug-in oferecido pela Microsoft ou conectores oferecidos por terceiros.

Transparência total

Para você que vive o dia a dia desenvolvendo software deve saber muito bem o que é encontrar uma alteração "desconhecida" em um bloco de código. A primeira pergunta básica é quem mudou e logo em seqüência o porquê dessa mudança. Eu posso dizer para você que seus problemas acabaram pois com o Annotate você tem agora essa informação para auditar seu código a qualquer momento com transparência e sem complicações vai identificar a pessoa que mudou, todos os arquivos relacionados a essa mudança e quem fez essa solicitação de mudança conforme pode observar na figura 03.

Figura 04 - AnnotateFigura 04 - Annotate

Qualidade de software é prioridade

Se produzir um produto com qualidade é desejo de todas as empresas do mercado, para o Visual Studio Team System é a uma prioridade. Quem nunca recebeu uma ligação de um cliente reclamando que fez o primeiro teste na aplicação e encontrou um problema? Tenho certeza que você deve ter respondido que na sua maquina funciona. Falando assim até parece que é uma piada, mas é um assunto muito sério que afeta um grande número de projetos. Como pode você pode garantir que os testes realizados estão cobrindo todo o código? Para essa e outras dúvidas que temos todo um conjunto de ferramentas integradas do VSTS com o objetivo de trabalhar em cima da qualidade cobrindo desde registro de bug, realização de testes unitários, funcionais, de carga, manuais, cobertura de código e muito outras ferramentas que possibilitam ao profissional agora ter mecanismos eficientes para atuar na qualidade do projeto. Confira na figura 04 um exemplo de relatório de cobertura de código após a realização de um teste unitário.

Figura 05 - Code CoverageFigura 05 - Code Coverage

Analisando a figura 04 você pode observar na cobertura de código que quando o seu cliente estava reclamando ele realmente tinha razão. Você estava entregando um bloco de código que jamais estava sendo testado conforme indicado pela seta.

Integrando o desenvolvimento do banco de dados

O banco de dados tornou-se um dos maiores parceiros das aplicações. Com a solução de Visual Studio Team System você vai estender a mesma gestão no desenvolvimento do código fonte para o desenvolvedor de banco de dados / DBA que agora trabalharam juntos usando poderosos recursos cobrindo desde controle de versão até qualidade dos objetos do banco de dados. Dentre os principais recursos podemos citar:

  • Reverse-Engineering (Importando a estrutura de um banco de dados existente para dentro do projeto no Visual Studio).
  • Schema Compare (Comparando schemas entre banco de dados diferentes e gerando código T-SQL para o sincronismo das estruturas).
  • Data Compare (Comparando dados entre banco de dados diferentes e gerando código T-SQL para sincronização).
  • Refactoring (Trocando nomes dos objetos no banco de dados respeitando todas as dependências. Esse recurso funciona de forma muito similar ao .NET ).
  • Code Analysis (Utilizando análise estática de código para validar padrões de implementação em código T-SQL).
  • Unit Testing (Criando testes unitários para validação de funcionalidades, schema, segurança e dados garantindo o controle de qualidade).

Próximos passos

Conhecer mais da plataforma do Visual Studio Team System sempre procurando relacionar com as necessidades do dia a dia do seu projeto. É muito importante fazer um levantamento interno em seu projeto de como o mesmo está hoje e quais serão os passos nos próximos anos. Perguntas simples conforme o pequeno questionário abaixo já pode ser o primeiro passo:

  • Utiliza algum controle de código fonte atualmente?
  • Já tem alguma metodologia de desenvolvimento?
  • Quantas pessoas participam do projeto e qual o papel delas nos mesmos?
  • Você já tem uma área de qualidade?
  • Quais linguagens e plataformas são utilizadas nos projetos?
  • Qual seu banco de dados atual?
  • Quais principais projetos atuais?
  • Quais são as principais reclamações nos projetos?
  • Existem planos de novos projetos, migração de projetos antigos e contratação de mais profissionais?

Considerações finais

Investir em uma plataforma de Application Lifecycle Management como o Visual Studio Team System só vem a potencializar o desenvolvimento de seus projetos pelo grande número de recursos oferecidos destinados à gestão estratégica e colaboração. Com um modelo simplificado de trabalhado você terá à disposição grandes resultados e uma aderência do seu modelo de trabalho. Enxergue hoje o VSTS como a plataforma base para todos os projetos de software independente da tecnologia utilizada de forma a permitir um único modelo de gestão em todo seu ciclo de desenvolvimento.

Para Saber Mais

Standish Group Report: There´s Less Development Chaos Today

http://www.sdtimes.com/content/article.aspx?ArticleID=30247

Por que você precisa do Visual Studio Team System

http://blogs.2pc.com.br/ramonduraes/archive/2008/09/02/por-que-voc-precisa-de-visual-studio-team-system.aspx

Workshop Visual Studio Team 2PC Professional Consulting

http://www.2pc.com.br

Gerenciando projetos de software com Visual Studio Team System

http://www.2pc.com.br/mkt/cd/

Nenhum comentário até agora

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Patrocínio:
Sobre o Autor
Ramon Durães é autor da frase “Não tem que ser difícil”. Possui larga experiência em tecnologia Microsoft. É Microsoft Most Valuable Professional (MVP), Trabalha como Software Engineer na 2pc Professional Consulting onde trabalha com empresas ligadas ao desenvolvimento de software fornecendo amplo suporte na migração para .NET, arquitetura de software e adoção de Visual Studio Team System. Realiza palestras e treinamentos nos maiores eventos do Brasil. Entre em contato pelo blog (http://www.2pc.com.br/).
InterCon 2009
3G

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.