Gerência - Ciclo de Vida de Desenvolvimento
Primeiros passos no Visual Studio Team System
Investir em uma plataforma de Application Lifecycle Management como o Visual Studio Team System só vem a potêncializar o desenvolvimento de seus projetos pelo grande número de recursos oferecidos destinados a gestão estratégica e colaboração.
por Ramon DurãesO 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 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 juntos 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 do mercado 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 onde
estamos tendo um índice de satisfação de 100% ou mais se fosse possível registrar.
O grande falto 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 diversas 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. Apartir 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 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 chave 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 clico 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
sumarizados 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 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á ter sido levantado 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 tentamos 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 por que 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 –
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 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 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 potêncializar o desenvolvimento de seus projetos pelo
grande número de recursos oferecidos destinados a gestão estratégica e
colaboração. Com um modelo simplificado de trabalhado você terá a 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/
- Change Management ou a Gestão da MudançaMetodologias e Processos
- Integrando o Sub Version com o Visual StudioCiclo de Vida de Desenvolvimento
- Definição Ágil de User Stories – Toda história deve ter um início felizMetodologias e Processos
- Visual Studio Team System: mais qualidade aos times de desenvolvimento de softwareCiclo de Vida de Desenvolvimento
- EPM (Project Server) + ALM (Team System) = Maior controle em projetosMetodologias e Processos