quinta-feira, agosto 07, 2008

Como atualizar o Team System 2008

Uma pergunta bastante freqüente, principalmente para quem está começando com o Team System e avaliando o produto é "Posso migrar o TFS 2008 Workgroup para o TFS 2008 Standard ?".

Sim é possível, mas é importante esclarecer alguns pontos antes:
  • A única diferença entre o TFS Workgroup e o TFS Standard é a limitação de usuários. O acesso ao TFS Workgroup está limitado em 5 usuários.
  • Você não precisa obrigatoriamente colocar o TFS no domínio para tê-lo em sua versão Standard.

Vamos aos procedimentos de migração então:

- Se você quer apenas migrar para a versão Standard sem precisar colocar a máquina no domínio, bastaria você digitar a product key do TFS no Add/Remove Programs, no entanto, há um bug que deixará os campos da product key desabilitados. Isso é facilmente contornado, rodando o setup.exe do CD. Ele cairá na mesma tela que o Add/Remove Programs, porém desta vez os campos estarão habilitados.

- Se você quer adicionar um TFS no domínio, basta seguir os passos descritos nesse blog http://blogs.msdn.com/tolong/archive/2007/01/25/promote-team-foundation-server-from-workgroup-to-domain.aspx. Eu não testei esse procedimento, no entanto, o autor descreve vários passos descritos no guia da Microsoft que ensina como migrar o TFS de um server para outro. Então, é bem provável que funcione.

No início do ano, escrevi um post relatando como foi a nossa migração do TFS 2005 Single Server, para TFS 2008 Multi Server integrado com Sharepoint Server 2007. Pra quem está com esse cenário, vale a pena a leitura.

Para mais informações consulte Team Foundation Server Upgrade Types e também How to: Upgrade from Team Foundation Server Workgroup Edition.

Abraços
André Dias

segunda-feira, agosto 04, 2008

Migrando para o Visual Studio Team System

Vamos imaginar a seguinte situação, você é um dos responsáveis pela área de TI de sua empresa, você acabou de sair de uma palestra sobre Team System e ficou fascinado com a ferramenta. Você viu o novo Source Control e sentiu vontade de jogar o seu controlador de versão atual no lixo, adorou a integração com o Sharepoint através do Portal do Projeto, ficou muito interessado no gerenciamento de work items e quando viu as dezenas de relatórios apresentando diversas métricas do seu projeto, pensou: “É tudo o que eu sempre quis!”.

Esse é o sentimento da maioria das pessoas quando conhecem o Team System pela primeira vez. O segundo sentimento e a pergunta que sempre o acompanha é “Na minha empresa eu uso Java, Eclipse, CVS, VB6, Source Safe, ClearQuest, ferramentas proprietárias, etc. Como faço pra substituir tudo isso pelo Team System? É possível?”.

Bom, se não fosse possível ou se o produto não fosse tão bom, eu não estaria fazendo toda essa propaganda, não é mesmo? Vamos ver abaixo então alguns cenários e como resolvê-los.

Cenário 1: Migrando Work Items do ClearQuest para o Team System
Existe uma ferramenta que vem com o próprio Team System chamada CQConverter. Essa ferramenta permite fazer a conversão do ClearQuest schema, defeitos e controle de mudança para o Team System. Há um documento bem detalhado chamado Migrating Source Control and Defect or Change Tracking to Team Foundation que mostra o todo o processo de migração além de guias passo a passo mostrando como executá-lo.

Cenário 2: Migrando Work Items de uma ferramenta proprietária para o Team System
Para migrar os dados de uma ferramenta proprietária, você terá um pouco mais de trabalho, já que terá que “meter a mão na massa”, mas nada muito complexo. O Team Foundation Server oferece um SDK bastante completo que te permite fazer praticamente tudo através de código .Net.

Basicamente, você precisará escrever um programa que fará a leitura do Data Source de sua ferramenta proprietária e copiar esses dados para o Team System usando o SDK. Veja abaixo um exemplo de como criar Work Item através do C#.

//Adicionar essas referencias
Microsoft.TeamFoundation.Client;
Microsoft.TeamFoundation.WorkItemTracking.Client


//TFS
NetworkCredential teamFoundationCredential = new NetworkCredential(”sUserName”, “sPassword”);
TeamFoundationServer tfs = new TeamFoundationServer(”http://yourServer:8080″, teamFoundationCredential);
tfs.EnsureAuthenticated();

WorkItemStore workItemStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
Project tfsProject = workItemStore.Projects[sProjectName];
WorkItemType wiType = tfsProject.WorkItemTypes[”Requirement”];

WorkItem workItem = new WorkItem(wiType);
workItem.Title = “Title”;
workItem.Description = “Desc”;
workItem.Fields[”Requirement Type”].Value = “functional”;
workItem.State = “Proposed”;
workItem.Reason = “New”;
workItem.Fields[”Triage”].Value = “triaged”;
workItem.Fields[”Assigned to”].Value = “production”;
workItem.Links.Add(new Hyperlink(@”C:\bla.txt”));
workItem.Save();

Cenário 3: Migrando Código Fonte do Source Safe para o Team System
No cenário 1, vimos que o Team System já vem com uma ferramenta nativa para efetuar a migração de Work Items do ClearQuest. Ele traz também outro conversor chamado VSSConverter que permite fazer a migração de arquivos do Source Safe para o Team System. Todo o procedimento pode ser visto neste artigo http://msdn.microsoft.com/en-us/library/ms253186.aspx

Cenário 4: Migrando Código Fonte do StarTeam / CVS para o Team System
Uma empresa parceira da Microsoft criou recentemente uma ferramenta de migração chamada Timely Migration. Essa ferramenta te ajudará a migrar projetos do CVS ou StarTeam para o Team System.

De acordo com o site do produto, ele é capaz de migrar Branches, Labels e todo o histórico sem perda nenhuma de dados.

Cenário 5: Utilizando o Eclipse com o Team System
Já fiz um post sobre isso, mas acho interessante referenciá-lo aqui novamente apenas para termos a cobertura de vários cenários de migração e integração. Confiram em http://andrediasbr.blogspot.com/2008/07/utilizando-team-system-com-eclipse.html

Cenário 6: Utilizando VB6, Visual C++ 6.0, Enterprise Architect 6.1 e outros com o Team System
Mais uma vez, um cenário que eu já tinha abordado aqui no blog. O único detalhe é que o post comenta sobre o plug-in para se conectar ao VSTS 2005. Para utilizar esses clients com o VSTS 2008 acesse Visual Studio Team System 2008 Team Foundation Server MSSCCI Provider.

Bom, acredito que esses 6 cenários cobrem a maioria das necessidades das empresas, mas se você tiver algum outro, entre em contato que tentaremos achar outras soluções.

Abraços
André Dias

sexta-feira, agosto 01, 2008

Promo Code: TS: Windows Essential Business Server 2008, Configuring

Mais um promo code disponível pra quem tiver interesse em tirar uma certificação Microsoft "na faixa". Dessa vez é para o Windows Essential Business Server 2008. Confira os detalhes abaixo:

Preparation Guide: http://www.microsoft.com/learning/en/us/exams/70-654.mspx
Exam Code: 71-654
Exam Name: TS: Windows Essential Business Server 2008, Configuring
Credit: MCTS: Windows Essential Business Server 2008, Configuration
Registration: http://www.prometric.com
Promo Code: EBS08

Abraços
André Dias

quinta-feira, julho 31, 2008

O Custo de um Bug

Quem já não ouviu do gerente de projetos que tempo no cronograma para testes é bobagem? Teste unitário então? “Ah, isso é coisa daquele povo da eXtreme Programming, não precisamos disso! Vai consumir mais tempo e encarecer nosso projeto.”.

É! Eu já ouvi isso, e ouvi pessoas dizendo que ferramentas de ALM (Application Lifecycle Management) são bobagens também. Que tal perguntarem o que a Dell acha disso? Isso mesmo, a Dell! Ela conseguiu um ROI de “apenas” 225% em “apenas” 6 meses de implantação do Team System . Quem quiser consultar mais detalhes desse caso de sucesso acesse ROI CASE STUDY MICROSOFT VISUAL STUDIO TEAM SYSTEM DELL

Bom, já vimos que há pessoas que acham que testes são caros, ferramentas, como o Team System, são caras, vamos tentar entender quanto custa um simples bug no seu sistema. Vamos lá.

Cenário 1 : Bug encontrado durante o desenvolvimento
Este cenário é o ideal. O desenvolvedor escreve o código, cria os testes unitários, verifica que alguns métodos estão com erros, os corrige e pronto. Desde que ele termine dentro do prazo, o meu custo adicional é zero.

Cenário 2 : Bug encontrado durante a fase de homologação
Desta vez o desenvolvedor também foi cuidadoso, no entanto, ele não testou uma integração do código que ele acabou de desenvolver com outro código já existente. Isso vai gerar erro de integração. O testador vai identificar o erro, registrá-lo, colocar os passos para reprodução e outras informações necessárias, esse bug será triado por um team leader, que encaminhará para um programador que precisará entender o que é esse bug, tentará reproduzi-lo para depois corrigir e só então gerar uma nova build para ser publicada. Ah, o testador terá que verificar se o bug foi realmente corrigido.

Bom, estimando isso em horas, podemos colocar 2 horas para o testador, mais 3 horas do desenvolvedor e do team leader. Se assumirmos uma valor médio de R$ 40,00 por hora, já temos um prejuízo de R$ 200,00 com apenas um bug.

Você deve estar pensando naquela sua planilha lotada deles né? Acertei? Que coisa!

Cenário 3 : Bug encontrado em produção
Dessa vez vamos falar do pior cenário, o cliente achou o bug. Primeiro que você vai ouvir um monte de abobrinha do cliente, e com razão. Você vai ter que dar um suporte telefônico pra ele, tentar entender o que ele está dizendo, dificilmente você terá um cenário igual ao dele, você perderá tempo montando o cenário, depois que conseguir reproduzir o bug irá registrá-lo, o programador terá que entender, corrigir, gerar uma build, ir pra teste, publicar no cliente, testar novamente. Ufa!!! Nessa brincadeira, você perdeu tempo do gerente do projeto, analista de negócio, team leader, programador, testador e do implantador.

Assumindo duas horas pra cada recurso, que ainda é pouco, e um valor médio, dessa vez ,de R$ 50,00 por hora, afinal gerente e analista ganham bem :-) A brincadeira ficou R$ 600,00. Bugzinho caro né?


Vamos fazer uma continha simples agora. 15 bugs por mês no cenário 2, mais 2 bugs do cenário 3 e no final de um ano temos um gasto com bugs em apenas um projeto de R$ 50.400,00.

Resumindo:
Bugs em um ano de projeto: R$ 50.400,00
Licença do Team System: Menos de US$ 15.000,00 (se for parceiro, pode ser até free)
Ver seu cliente feliz com o sistema sem bugs e renovando contratos: não tem preço

Impressionante como a implantação do Team System e os testes unitários no cronograma ficaram baratos de repente.

Um grande abraço
André Dias

quarta-feira, julho 30, 2008

Como fazer Backup do Team System

Vamos imaginar o seguinte cenário: Você passa algumas horas lendo o Installation Guide do Team System, cria os usuários do Team System no AD, instala o Windows 2003, SQL Server 2005, aplica os patches direitinho, configura o Sharepoint finalmente instala o Team Foundation Server.

Você fica todo feliz, começa a migrar todos os projetos da empresa pro Team System, configura build daqui, customiza um processo ali e depois de um mês, com toda a empresa dependendo do Team System, o servidor resolve "capotar".

É um cenário meio catastrófico, mas confesso que já aconteceu comigo. Aí o gerente olha pra você e fala: "me coloca esse servidor no ar o mais rápido possível, pois estou com o time todo parado, e se fosse o antigo Source Safe eu já tinha restaurado o .dat e estava tudo bem".

Realmente, nesse ponto ele tinha razão, o processo de backup / restore do Team System é um pouquinho mais difícil que o do Source Safe, mas porque estou contando toda essa histórinha? Na verdade, é só pra te comover um pouco e pra você se lembrar que caso não tenha planejado o Backup do seu Team System, já passou da hora de fazer. Vamos ver como:

Por trabalhar de forma integrada com Sharepoint e com Reporting Services o processo de Backup do Team System requer que todos os bancos de dados sejam "backupeados" ao mesmo tempo. Se o backup dos bancos forem executados de forma separada, poderá haver inconsistências nos seus dados, então sugiro que você leia a receitinha de bolo da Microsoft dizendo passo a passo o que você deve fazer para ter um backup íntegro do seu Team System.

O procedimento de backup pode ser acessado nesta URL http://msdn.microsoft.com/en-us/library/ms253070(vs.80).aspx e recentemente foi publicado um vídeo muito bom executando o procedimento e mostrando como fazer isso na prática. Vale a pena a visita em http://msdn.microsoft.com/en-us/vsts2008/cc770261.aspx.

Uma última dica pra finalizar que não está nos procedimentos da Microsoft: Considere o uso de máquinas virtuais para o seu Team System. Nós conseguimos reduzir o tempo de restore do Team System no caso de crash total da máquina de 6 horas para 30 minutos usando essa abordagem.

Um abraço
André Dias

terça-feira, julho 29, 2008

Novidades do Team System Rosario

O VSTS 2008 (conhecido como Orcas), nem tinha sido lançado e a Microsoft já estava trabalhando na próxima versão do produto, o Visual Studio Team System “Rosario”.

Enquanto o VSTS 2008 não trouxe muitas novidades em relação ao seu antecessor, o Visual Studio Team System “Rosario” está prometendo uma verdadeira revolução no produto. Muitas das features solicitadas pelo pessoal que trabalha com o Team System está presente na especificação do novo produto, entre elas: gerenciamento de portfólios de projetos e integração com o Project Server nativa, rastreabilidade e análise de impacto, diversas melhorias nas ferramentas de testes e muito mais.

Confira as principais novidades do Team System “Rosario” abaixo:

  1. Priorização e gerenciamento de projetos de TI compartilhado com o Project Server através de integração direta. (Hoje, isso é feito através de um plug-in chamado PsTfsConnector )

  2. Gerenciamento de portfólios de projetos para permitir um gerenciamento de recursos balanceado de acordo com as necessidades de negócios.

  3. Rastreabilidade completa (ex. work items hierárquicos) para permitir rastrear artefatos contra requisitos de negócio e possibilidade de realizar análises de impacto rapidamente de acordo com requisições de mudanças.

  4. Métricas e Dashboards para visão compartilhada de status e progresso do projeto em relação aos artefatos previstos para as entregas.

  5. Novos recursos poderosos para permitir que desenvolvedores e testadores possam rapidamente identificar, comunicar, priorizar, diagnosticar e resolver bugs.

  6. Gerenciamento de test case integrado para criar, organizar e gerenciar test cases com os times de desenvolvimento e testes.

  7. Automação de testes e guias para ajudar desenvolvedores e testadores a focarem em testes de negócio ao invés de tarefas repetitivas e manuais.

  8. Métricas de qualidade para decisões de release no formato “vai/não vai” se uma aplicação está pronta para produção e se foi totalmente testada contra os requisitos de negócio.

  9. Rápida integração de times remotos, distribuídos e desconectados no processo de desenvolvimento.

  10. Fácil customização de processos e guias da Microsoft e de parceiros para ajustar a forma que o seu time trabalha.

  11. Suporte integrado para construção de setups usando Windows Installer XML technology

  12. Melhorias na build, no controlador de versão (Source Control) e na administração multi-server.

Pra quem se interessou, há uma máquina virtual completinha disponível com o produto para download, é uma versão de abril/08 e possui pouco mais de 8 GB, então além de paciência recomendo um bom gerenciar do downloads. O endereço para baixá-la é http://www.microsoft.com/downloads/details.aspx?familyid=65d0e3bd-9df3-421a-804f-8f01bd90f0b4&displaylang=en&tm

Abraços
André Dias

segunda-feira, julho 28, 2008

Team System : Um caminho mais curto para obter o CMMi

Que o Team System é um produto para ALM (Application Lifecycle Management – Gerenciamento de Ciclo de Vida de Aplicações) todo mundo está cansado de saber. O que algumas pessoas talvez não saibam é que o Team System pode facilitar, e muito, a vida da sua empresa na obtenção do CMMi nível 3. Vamos entender por que.

O CMMi pede que você tenha Gerenciamento de Configuração, Medição e Análise, Monitoramento e Controle de Projeto, Planejamento do Projeto, Garantia de Qualidade do Produto e do Processo, Gerenciamento de Requisitos e Gerenciamento de Fornecedores, isso só pra citar as Áreas de Processos do nível de maturidade 2.

O Team System consegue endereçar todos esses requisitos oferecendo versionamento de artefatos, utilizando o Source Control para controle de código fonte e o SharePoint para gerenciamento dos demais artefatos. Oferece também um gerenciamento muito bom de work items que te permite não só gerenciar requisitos, mas também ter planejamento, controle e monitoramento de projetos.

Se você achar que ainda falta alguma coisa, é só fazer a integração com o Project Server, que aí consultor nenhum de CMMi vai colocar defeito. De quebra ele traz também mais de 20 relatórios para você realizar medição e acompanhar a qualidade do seu produto e possui também diversas ferramentas de testes integradas para te auxiliar na qualidade. E por último e muito importante também, traz todo o processo descrito no portal do projeto.

Legal! Existem algumas ferramentas no mercado que também fazem isso. Talvez não tão integradas como o Team System, mas fazem. E então qual é o grande diferencial do Team System?

O Team System foi desenhado para se moldar a qualquer tipo de processo e a Microsoft fez um trabalho fantástico para desenhar um template de processo que fosse aderente ao CMMi, mas que não tivesse toda aquela burocracia que muitos acham necessário, ela criou o MSF for CMMI® Process Improvement.

Enquanto um processo CMMi típico tem em torno de 400 artefatos para estar aderente ao nível 3, o MSF for CMMI® Process Improvement, possui apenas 59. Uma redução considerável de 85%. Tudo isso é possível graças à integração da ferramenta com o template de processo e principalmente da aderência do template de processo ao manifesto ágil que é:
  • Colaboração com o Cliente sobre Negociação de Contratos
  • Responder as mudanças sobre Seguir o Planejamento
  • Pessoas e Iterações sobre Processos e Ferramentas
  • Software Funcionamento sobre Documentação Abrangente
Trazendo toda essa teoria pro lado prático e analisando um pouco da experiência que já tive. Dificilmente, você conseguirá seguir 100% o template de processo MSF for CMMI® Process Improvement, no entanto, é muuuito mais simples customizar um template com 59 artefatos desenhados para trabalhar de forma integrada com uma ferramenta que vai te dar todo o apoio na implantação e manutenção do processo do que criar um processo do zero tendo como meta uns 400 artefatos e ter várias ferramentas que não se conversam.

E tem gente que ainda pergunta por que eu gosto desse esse tal de Team System :-)

Abraços
André Dias