Comunique-se e Colabore com o
Visual Studio Team System 2008
White Paper
Maio de 2008
Para obter as últimas informações, visite o site www.microsoft.com/teamsystem
As informações contidas neste documento representam a visão
atual da Microsoft Corporation sobre os temas discutidos na data da
publicação. Como a Microsoft deve responder às mudanças das
condições de mercado, este documento não deve ser interpretado
como um compromisso da parte da Microsoft, e a Microsoft não
pode assegurar a exatidão de qualquer informação apresentada
após a data da publicação.
Este white paper destina-se a fins informativos apenas. A
MICROSOFT
NÃO
FORNECE
NENHUMA
GARANTIA,
EXPRESSA, IMPLÍCITA ou ESTATUTÁRIA, QUANTO ÀS
INFORMAÇÕES NESTE DOCUMENTO.
O cumprimento de todas as leis pertinentes de direitos autorais é de
responsabilidade do usuário. Sem limitar os direitos sob o direito
autoral, nenhuma parte deste documento pode ser reproduzida,
armazenada em, ou inserida em um sistema de recuperação de
dados, ou transmitido de qualquer forma ou por qualquer meio
(eletrônico, mecânico, fotocópia, gravação ou outro) ou para
qualquer fim, sem a permissão expressa por escrito da Microsoft
Corporation.
A Microsoft pode deter as patentes, as solicitações de patentes, as
marcas comerciais, os direitos autorais ou outras propriedades
intelectuais pertinentes ao objeto deste documento. Salvo
expressamente disposto em qualquer contrato de licença escrito da
Microsoft, o fornecimento deste documento não confere a você
qualquer licença em relação a essas patentes, marcas comerciais,
direitos autorais ou outras propriedades intelectuais.
© 2008 Microsoft Corporation. Todos os direitos reservados.
Microsoft, Visual Studio e SharePoint são marcas registradas do
grupo de empresas da Microsoft
Todas as outras marcas registradas são propriedade de seus
respectivos proprietários.
SUMÁRIO
Introdução ................................................................................................ 1
Desafios de Comunicação ...................................................................... 2
Visual Studio Team System 2008 Team Foundation Server ............... 3
Relacionamentos ..................................................................................... 7
Conclusão ................................................................................................ 9
Sobre o Autor......................................................................................... 10
INTRODUÇÃO
Você se lembra do jogo ―Telefone Sem Fio‖? Você diz algo a segunda
pessoa, que diz algo a terceira pessoa e assim por diante até a mensagem
voltar para você. A mensagem nunca é aquela que você disse originalmente
a segunda pessoa. Em algum ponto do jogo alguém ouviu o que você disse
de maneira diferente ou transmitiu diferentemente. O desenvolvimento de
software é muito parecido com isso.
Projetos fracassam (ou são desafiados) a um índice altíssimo. As razões
para essas falhas podem ser ligadas a muitas coisas — requisitos
insuficientes, qualidade insatisfatória, mudanças no escopo, questões de
usabilidade ou outras. A causa subjacente da maioria dessas questões é
que as equipes não se comunicam bem e não têm a mesma compreensão
das questões, o que dificulta para elas trabalharem bem umas com as
outras. Em quase todos os casos, essas são questões que surgem entre a
equipe de desenvolvimento e os clientes.
Seja você um gerente de projeto, arquiteto, desenvolvedor, usuário final,
®
®
testador ou outro participante interessado, o Microsoft Visual Studio Team
System 2008 ajuda a melhorar o trabalho de desenvolver software. Isso é
feito através de um fluxo de informações livre e aberto entre todos os
envolvidos em uma equipe de desenvolvimento.
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
1
DESAFIOS DE COMUNICAÇÃO
Processo de Desenvolvimento
O processo de desenvolver um sistema começa com o proprietário de uma
empresa identificando requisitos de alto nível. Depois um perito no assunto
conversa com um analista, que identifica os requisitos detalhados e os
documenta. O perito no tema pode ou não ser alguém que vai usar o
sistema. Um arquiteto projeta o sistema com base em tecnologia, requisitos
do usuário e requisitos não-funcionais e fornece a arquitetura aos
desenvolvedores. O analista cria uma especificação funcional (uma tradução
do requisito em algo que um desenvolvedor possa implementar) e a entrega
ao desenvolvedor. O desenvolvedor trabalha nos requisitos. Caso tenha um
problema, o desenvolvedor conversa com o analista, que conversa com o
perito no assunto para obter uma resposta. Quando o desenvolvedor
termina, o código é entregue a um testador para testes. Depois do
lançamento, a aplicação é entregue a Operações para gerenciá-la. Todos
comunicam o status ao gerente de projeto, e este faz relatórios através da
cadeia de gerenciamento. A Figura 1 mostra um exemplo simples da
comunicação da equipe.
Figura 1 – Equipe de desenvolvimento
Como qualquer pessoa que já participou de uma equipe de desenvolvimento
pode atestar, informações podem tornar-se inexatas ou obsoletas quando
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
2
atingem o destinatário pretendido — se chegarem àquela pessoa. Tentar
comunicar status se torna uma tarefa de tempo integral em si mesma já que
muita gente trabalha em coisas diferentes e pessoas que queiram rastrear
questões específicas têm dificuldades nisso. É aí que o Team System entra
e se destaca.
Tempo Perdido
Não só esse processo inteiro leva tempo, mas as pessoas demoram muito
tentando comunicar informações de forma eficiente. Veja o Gerente de
Projeto — todas as semanas ele precisa do status daquilo em que os
desenvolvedores estão trabalhando, quanto tempo trabalharam naquilo (ou
quanto falta até a conclusão), se já terminaram e se há algo os impedindo.
Desenvolvedores normalmente não oferecem essas informações
voluntariamente — o Gerente de Projeto tem de rastreá-las e, pior, criar uma
®
planilha de Microsoft Excel para cada um deles, enviar por e-mail e esperar
uma resposta.
Ou, imagine o desenvolvedor que começa a trabalhar em um requisito
apenas para descobrir que houve mudanças, mas ninguém o informou! Isso
acontece frequentemente. O desenvolvedor deve corrigir ou alterar trabalho
provocando uma alteração em uma grande porção do cronograma do projeto
porque alguém não falou com outro alguém.
E o gerente que quer o status do projeto neste momento? Ele rastreia o
Gerente de Projeto, que então tem de rastrear todo o resto da equipe para
um relatório de status improvisado, o que pode levar um bom tempo,
dependendo da equipe. Isso desperdiça o tempo do Gerente de Projeto,
além do de todos os desenvolvedores que têm de parar de trabalhar para
calcular seu status. E nem pense nas reuniões de status semanais. Essas
coisas podem levar uma hora de preparação por desenvolvedor, além de
uma reunião que demora uma hora. Assim, em uma equipe de oito pessoas
isso significa oito horas de preparação mais oito horas na reunião (8
pessoas X 1 hora) para um total de 16 horas perdidas por semana em
reuniões de status!
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
3
VISUAL STUDIO TEAM SYSTEM 2008 TEAM
FOUNDATION SERVER
Visão Geral
Você não pode ter um desenvolvimento de software bem-sucedido sem
comunicação efetiva entre participantes e membros da equipe de
desenvolvimento. A Microsoft criou o Team System para lidar com muitas
dessas lacunas de comunicação na maneira como muitos dos participantes
de um projeto de desenvolvimento de software trabalham — a Microsoft o
construiu para a equipe inteira, não apenas para os desenvolvedores. Isso
significa que o Team System não se impõe a você, ele trabalha com você.
A Microsoft projetou o Team System para resolver vários problemas com o
processo de desenvolvimento de software. Eles incluem controle de versão,
questões de qualidade e de integração e um local central para armazenar
informações. Resolver esses problemas individuais não tem sentido sem
capacidades de colaboração e comunicação eficientes. Através de um site
®
®
do Microsoft SharePoint para colaboração e compartilhamento, o Team
System Web Access para acesso rápido a informações detalhadas do Visual
Studio Team System 2008 Team Foundation Server, o fluxo de trabalho
fornecido pelo Team Foundation Server e os relatórios fornecidos pelo
Microsoft SQL Server™ Reporting Services, o Team System atende e
supera a meta de comunicação aberta e transparente.
Acessando Informações
Uma das dificuldades com outras ferramentas de gerenciamento de projeto
é poder acessar informações. Algumas ferramentas armazenam uma grande
quantidade de informações, mas não há como se acessar aquelas
informações facilmente — é necessária uma grande quantidade de trabalho
personalizado. Imediatamente, o Team Foundation Server expõe
informações através de vários mecanismos para permitir a membros da
equipe e outros interessados acessar os dados que desejarem quando
quiserem. Desenvolvedores usarão primariamente o Team Explorer, que é
um suplemento da IDE do Visual Studio. Através do Team Explorer eles
podem criar e consultar itens de trabalho, incluir, editar e exibir documentos
armazenados no SharePoint e exibir relatórios do SQL Server Reporting
Services.
Gerentes de projeto podem usar diretamente o site do SharePoint, que
contém documentos e relatórios ou podem usar ferramentas com que ficam
®
confortáveis, como o Microsoft Excel e o Microsoft Project . Com o Excel e o
Project, o gerente de projeto pode incluir e consultar itens de trabalho, exibir
seu status e criar uma estrutura de divisão de trabalho com base nos itens
de trabalho no Team Foundation Server. Além disso, ele pode atualizar
dados de forma dimensional entre o Team Foundation Server e o Excel ou
Project. Agora imagine que em vez de ser designado a um projeto, um
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
4
gerente de projeto seja designado a três! Por causa dos ganhos de
eficiência você não precisa necessariamente de uma relação de um para um
entre gerentes de projeto e projetos.
Analistas, usuários e outros participantes provavelmente obterão suas
informações a partir de dois locais — SharePoint e/ou Team System Web
Access. O site do Team System Web Access é projetado para imitar a
funcionalidade do Team Explorer no navegador. Isso significa que usuários
podem rastrear questões que lhes são importantes e obter um status
atualizado sem ter de escrever e–mails e esperar resposta do gerente de
projeto ou desenvolvedor.
Além disso, você pode usar os recursos do Team Foundation Server,
SharePoint e do SQL Server Reporting Services para obter atualizações
automáticas quando documentos e itens de trabalho mudarem. Você pode
fazer o Team System executar relatórios com base em programação ou
quando dados mudarem! O Team Foundation Server também suporta
―alertas‖, que enviam um e-mail a um usuário (ou serviço da Web) com
informações sobre mudanças em itens de trabalho, compilações ou outras
informações. Os alertas podem ser filtrados para envio e atualização quando
eventos específicos ocorrerem. Por exemplo, você pode receber um e-mail
sempre que alguém atribuir um item de trabalho a você ou os testadores
podem ser notificados quando um item de trabalho estiver pronto para teste.
Isso ajuda você a comunicar status importante rápida e eficientemente às
pessoas que precisam dele. Com essas ferramentas em vigor, acessar,
compartilhar e atualizar dados é mais fácil que nunca e ajuda a facilitar o
fluxo de informações. E, se quiser e nenhum dos métodos acima funcionar
para você, pode escrever sua aplicação para recuperar dados na API cliente
totalmente acessível, camada de servidor ou usar uma das várias
ferramentas de terceiros do mercado.
Itens de Trabalho
No âmago de todas as comunicações dentro do Team System está o item
de trabalho. Itens de trabalho contêm informações que podem ser
relacionadas com outras. As outras informações podem tomar a forma de
código, documentos vinculados ou anexados, páginas da Web, notas ou
outros itens de trabalho. Itens de trabalho também são associados com
estados — isto é, podem mover-se de um estado a outro (ao longo de um
caminho definido) que permite a você passar trabalho de uma pessoa ou
grupo para outro (consulte a Figura 3 para um exemplo). A Figura 2 mostra
uma lista de itens de trabalho e um único item de trabalho selecionado na
lista. Itens de trabalho podem ser qualquer coisa e dependem muito do
Modelo de Processo que você seleciona como a base para sua metodologia.
Alguns dos tipos padrão de itens de trabalho disponíveis incluem: Requisito,
Tarefa, Bug, Solicitação de Mudança, Risco e outros. Você também pode
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
5
usar o Editor de Modelo de Processo para criar tipos de item de trabalho
personalizados.
Figura 2 – Itens de trabalho
O status do item de trabalho suporta o processo de trabalho pela
identificação de onde no fluxo de trabalho o item de trabalho se encontra. A
Figura 3 mostra os estados e transições entre estados de Tarefa. Os
estados são mostrados em ovais azuis e as transições permissíveis são
indicadas pelas setas vermelhas. O texto indica os motivos pelos quais uma
transição pode ocorrer entre dois estados.
Figura 3 – Estado de tarefa e razões de transição
Através desse processo simples, qualquer pessoa pode acompanhar uma
tarefa (os estados e transições são ligeiramente diferentes dependendo do
tipo de item de trabalho, mas todos seguem o mesmo tipo de padrão). Em
qualquer ponto, um membro de equipe pode incluir notas em uma tarefa e
acrescentar motivos detalhados. Cada item de trabalho mantém um histórico
completo, assim todas as mudanças no item de trabalho são rastreadas.
Essas informações são usadas nos relatórios incluídos no Team System ou
você pode criar relatórios personalizados para consultá-las. E os itens de
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
6
trabalho podem ser reatribuídos a usuários diferentes para ajudar a mover o
processo adiante.
Consultando Status
Itens de trabalho são ótimos para transmitir informações, mas como isso se
traduz em fornecer, digamos, status ao gerente do projeto? O gerente do
projeto pode usar o Excel para consultar o Data Warehouse do Team
Foundation Server através de uma interface fácil de usar para recuperar
informações ad-hoc sobre o status do projeto. Por exemplo, ele pode
encontrar tudo em que todos tenham trabalhado durante uma determinada
semana. Junto com isso, o gerente do projeto pode ver o status de todos os
itens de trabalho (requisito, tarefa, bug, etc) sem que os desenvolvedores
tenham de fornecer nenhuma informação adicional!
Para atribuir trabalho, o processo funciona da mesma forma. O gerente de
projeto atribui itens de trabalho aos desenvolvedores, e estes podem
executar os itens Meu Trabalho para entender em que precisam trabalhar e
qual é a prioridade de tudo!
Informações Obsoletas
Como mencionado anteriormente, você pode vincular itens de trabalho —
inclusive hiperlinks que apontem para documentos em um site do
SharePoint, site da Web ou compartilhamento de servidor. Com essa
funcionalidade, usuários e analistas podem trabalhar em documentação e
armazená-la no site do SharePoint para que os desenvolvedores acessem
sempre a versão mais recente. E como o SharePoint armazena o histórico
do documento, você pode exibir as modificações nos documentos, se
necessário.
SharePoint e Acesso à Web
Muito da comunicação se trata de pessoal fazendo o que é natural e fácil
para elas. Se os usuários tiverem de mudar demais seu hábitos para
alcançar um objetivo, é pouco provável que o façam. Por isso, a Microsoft
integrou o SharePoint com o Team System. Diretamente de dentro do Team
Explorer, desenvolvedores podem incluir, exibir e editar documentos no site
da equipe do SharePoint (que é criado para cada novo Projeto em Equipe).
Isso também potencializa a funcionalidade embutida do SharePoint, que
permite às pessoas colaborar em documentos. Vários usuários podem
examinar e editar o mesmo documento ao mesmo tempo. Usuários podem
fazer perguntas e respondê-las em tempo real e fazer as alterações
apropriadas no documento. Todos trabalham com a mesma versão e,
literalmente, na mesma página.
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
7
RELAÇÕES
A comunicação se encontra no centro das relações — com boa
comunicação você pode ter boas relações, com comunicação ruim não há
nem esperança. O Team System ajuda a abrir linhas de comunicação
facilitando o fluxo de informações entre diferentes equipes. Desenvolvedores
e testadores frequentemente têm dificuldade em comunicar-se porque não
fornecem informações úteis uns aos outros. Desenvolvedores e usuários
têm um problema de ―perda na tradução‖ porque as informações que os
usuários fornecem são muito filtradas antes de chegar aos desenvolvedores.
Desenvolvedores e DBAs não conversam até que seja tarde demais no
processo, e então acontecem as discordâncias. Tudo isso é prejudicial para
uma boa equipe de trabalho e o Team System pode ajudar a resolver todas
essas questões.
Desenvolvedores e Testadores
Parece que há uma antipatia natural entre desenvolvedores e testadores. Os
testadores quebram o código dos desenvolvedores e dizem a eles que o
fizeram, mas, muito pouco frequentemente podem fornecer informações
precisas sobre o que ou como quebraram. Os desenvolvedores, então, não
podem reproduzir o problema e ficam frustrados tentando o que quer que
tenha quebrado.
Um ciclo de lançamento típico pode ocorrer parecido com isso: Os
desenvolvedores enviam o código completo aos testadores e dizem:
―Funciona. Terminamos.‖ Os testadores testam o código e, naturalmente,
encontram bugs. Os testadores então devolvem o código aos
desenvolvedores para correção e o processo se repete. Hoje, isso é feito
com e-mail, compartilhamentos de rede, controle de versão, reuniões e
telefonemas.
As
informações
fornecidas
pelos
testadores
ou
desenvolvedores geralmente são incompletas, o que leva a mais frustração.
O que falta é um mecanismo simples para comunicar a natureza do bug,
onde ele está e que teste (e etapa do teste) fez o código falhar.
O Team Foundation Server fornece esse mecanismo de rastreamento e
comunicação. Como os desenvolvedores e testadores podem associar
suítes de teste com um requisito, cada grupo pode examinar os testes do
outro. Quando um teste falha, os resultados podem ser anexados a um item
de trabalho e, em uma etapa, os desenvolvedores sabem a que requisito o
teste é associado, que teste falhou e podem ver os resultados do teste
(inclusive o rastreio de stack). Nenhum telefonema, reunião, e-mail ou
transmissão de arquivos via compartilhamento.
E esse processo funciona nos dois sentidos se os desenvolvedores usarem
testes de unidade.
Os testadores podem exibir a suíte de testes que os desenvolvedores
criaram e entender porque não perceberam o problema (ou não criaram um
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
8
teste ou o teste dos desenvolvedores falhou). De qualquer maneira, esse
mecanismo simples de usar itens de trabalho como o canal de comunicação
fornece informações muito necessárias e melhora as relações de trabalho
entre desenvolvedores e testadores!
Usuários e Desenvolvedores
Usuários e desenvolvedores também podem discordar. Considere o que
acontece quando um usuário relata um bug. Ele espera ver providências a
respeito, mas, dependendo do bug, equipes de projeto podem demorar a
responder às necessidades do usuário. Algumas equipes de projeto não
fornecem feedback de nenhum tipo a menos que seja pedido
especificamente. Um novo recurso do Team System 2008 é a capacidade de
qualquer pessoa sem uma Licença de Acesso para Cliente (CAL) inserir um
item de trabalho e exibir ou editá-lo. Isso significa que qualquer pessoa pode
enviar uma solicitação de bug ou de alteração (através do Team System
Web Access) e observar seu status à medida que ela avança pelo sistema
ou pode descobrir se o bug foi adiado. Ao inscrever-se em eventos – o que
notifica os usuários sobre mudanças de status por e-mail – o Team System
ajuda automaticamente a manter você informado sobre o status atual. Isso
permite aos usuários manter-se atualizados sobre o progresso da equipe de
desenvolvimento e abre o Team System a uma classe inteira de pessoas
que anteriormente não eram licenciadas para usar o Team System.
Administradores de Bancos de Dados e Desenvolvedores
Como com usuários e testadores, existe um desligamento típico entre os
Administradores de Bancos de Dados (DBAs) e desenvolvedores. As
discussões geralmente ocorrem porque os desenvolvedores escrevem
código SQL insatisfatório, enviam-no aos DBAs em um e-mail e pedem que
estes o implementem. Os DBAs apenas registram as mudanças nos scripts
enviados por e-mail. Se vários desenvolvedores estiverem trabalhando em
um projeto, o DBA geralmente tem de agrupar os scripts que recebeu para
fazer com que sejam executados corretamente. Isso leva a inúmeros
problemas, inclusive uma falha quase automática da Sarbanes-Oxley e
outras medidas de conformidade a normas. No caso do Visual Studio Team
System 2008 Database Edition, o uso de itens de trabalho elimina totalmente
esses problemas. Os recursos de controle de versão do Team System
ajudam a gerenciar e entender mudanças — e o Team System ajuda
equipes a comunicar mudanças, especialmente com o Database Edition.
Agora desenvolvedores e DBAs podem trabalhar juntos para entender o
impacto de mudanças e gerar scripts sem precisar de trocas de e-mails ou
que o DBA banque o detetive para descobrir as mudanças que o
desenvolvedor realmente quer.
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
9
CONCLUSÃO
O Visual Studio Team System 2008 traz muitas mudanças desejadas e
resultados positivos ao processo de desenvolvimento. Este documento
discutiu o efeito das ferramentas do Team System no aperfeiçoamento (ou,
na verdade, habilitação) da comunicação entre membros de equipe para
eliminar ineficiências que existem com ambientes atuais. Conforme examina
a variedade de ferramentas de gerenciamento de projetos disponíveis hoje,
como membro de equipes de desenvolvimento ou gerente, você precisa
perguntar-se se as ferramentas que está considerando são integradas e
fáceis de usar. E, caso sejam, se oferecem benefícios suficientes. Nenhuma
outra ferramenta no mercado oferece esse nível de integração — tanto na
ferramenta como para as equipes usando-a. O Team System reúne equipes
através de comunicação aberta e colaboração fácil entre membros de
equipe, o que inclui pessoas no processo, em vez de excluí-las.
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
10
SOBRE O AUTOR
Jeff Levinson é o Lead de Prática de Gerenciamento do Ciclo de Vida da
Aplicação na Northwest Cadence e é especializado no Team System e na
melhoria de processos. Você pode entrar em contato com ele pelo e-mail
[email protected].
Este documento foi desenvolvido em parceria com a A23 Consulting.
White Paper: Comunicação e Colaboração com o Visual Studio Team System 2008
11
Download

Comunique-se e Colabore com o Visual Studio Team