Desenvolvedor Cinco Estrelas
Se eu tivesse twitter com certeza essa seria uma “twitada”, mas como não tenho vai através do blog: o programa Desenvolvedor Cinco Estrelas está de volta.
T+
Se eu tivesse twitter com certeza essa seria uma “twitada”, mas como não tenho vai através do blog: o programa Desenvolvedor Cinco Estrelas está de volta.
T+
Joel Spolsky é um dos maiores nomes na área de desenvolvimento de software. Simplesmente uma referência, seja pela sua experiência profissional na Microsoft ou pela sua extensa contribuição à comunidade técnica. Em 09 de agosto de 2000 ele escreveu um teste chamado The Joel Test: 12 Steps to Better Code (O teste do Joel: 12 passos para ter um código melhor). O propósito dele era estabelecer uma lista de perguntas simples e rápidas para medir o quão bom um time de desenvolvimento de software é. Confira:
Enquanto o Software Engineering Institute da Universidade Carnegie Mellon tentou chegar à mesma resposta através de inúmeras teorias, o Joel foi preciso o suficiente nas suas perguntas para que as resposta fossem “sim” ou “não”. São 12 questões e cada “sim” corresponde um ponto a mais. Depois de responder todas perguntas do teste você poderá obter algumas conclusões com base no total de pontos atingido:
É fácil perceber que o autor é exigente: ou o time é bom ou não. Não existe meio termo. Isto parece preciosismo demais, mas não é o foco do post, portanto não será discutido aqui. Outro fato importante é que, segundo o autor, grande parte das empresas existentes atingem no máximo 2 ou 3 pontos no teste, enquanto que empresas como a Microsoft chegam nos 12 pontos durante todo o processo de desenvolvimento.
O Visual Studio Team System (VSTS) é uma ferramenta completa para o gerenciamento do ciclo de vida das aplicações, ou no termo original em inglês, Application Lifecycle Management (ALM). Isso significa que um projeto de software pode ser concebido do início ao fim utilizando o VSTS. Em outras palavras, a análise, desenvolvimento, gerenciamento, testes, etc, tudo isso está integrado de alguma forma com o VSTS. Agora que você já conhece alguns conceitos básicos, vamos responder as questões propostas pelo Joel.
O controle de versão é um dos pré-requisitos mais básicos para o sucesso de um projeto. Sem ele os envolvidos não conseguem ver de forma rápida e eficiente quem fez alterações no código e também correm o risco de não conseguirem voltar para uma versão mais antiga do produto, além de diversos outros problemas. Para esta primeira questão a resposta com o VSTS é simples: use o Team Foundation Version Control (TFVC).
O TFVC é um poderoso controle de versão construído totalmente do zero, portanto não tem relacionamento algum com o Source Safe. Ele roda sobre o SQL Server e é integrado com as políticas de segurança do Windows, além de possuir todo o conjunto de requisitos básicos para um controle de versão: check-out, check-in, branches, labels, merges, histórico, changesets, etc.
Um ponto. Faltam só 11.
Nesta questão o Joel não está se referindo à build do projeto através da ferramenta de desenvolvimento, aquela que usamos diversas vezes durante o dia para compilar e testar o código escrito. O que ele quer saber é se você consegue disponibilizar uma nova versão do software para o cliente em apenas um passo. Com o VSTS isso é possível e muito simples e rápido utilizando um Team Build Type.
Conheça mais sobre a geração de builds com o livro Deploying .NET Applications
with MSBuild and ClickOnce disponível na Submarino ou no Buscapé
O Team Build Type é o recurso do VSTS que permite definir novos processos de builds. Para responder a segunda pergunta do teste, deve-se criar um novo Team Build Type de acordo com o contexto atual (projeto em questão, forma de distribuição do software e outras políticas específicas). Desta forma, sempre que for preciso gerar uma build em um único passo você conseguirá iniciar todo o processo rapidamente e o servidor do VSTS junto com o MSBuild farão todo o resto do trabalho.
+1 ponto. Já temos 2.
A geração diária de builds faz parte de um processo conhecido como Integração Contínua. Integrar continuamente significa garantir que todo o código hospedado no controle de versão estará funcionando quando for requisitado. Essa necessidade surgiu a partir do momento que diversos desenvolvedores começaram a trabalhar paralelamente no mesmo projeto. O VSTS responde a questão do Joel através das opções da build disponíveis no Team Build Type.
Saiba mais sobre Integração Contínua com o livro
Continuous Integration disponível na Submarino ou no Buscapé
É possível definir que uma build será executada a cada check-in, semanalmente, a cada intervalo de tempo ou ainda diariamente. Toda esta configuração é visual no VSTS e pode ser feita rapidamente nas opções da build. Além do mais, não existe problema ao agendar duas ou mais builds para um mesmo horário, pois o servidor do VSTS consegue gerenciar todas as requisições.
+ 1 ponto, já são 3!
A única certeza que temos sobre bugs no desenvolvimento de um software é que eles irão existir. Cabe a nós gerenciá-los de maneira eficiente e corrigi-los o quanto antes. Para resolver este problema, o VSTS possui um recurso chamado Work Item, ou em português, Item de Trabalho. Cada item de trabalho possui um tipo, sendo que um dos tipos disponíveis é o Bug. Portanto para registrar e gerenciar bugs, você pode e deve usar os itens de trabalho.
+ 1 ponto, somamos 4 no total.
A maneira mais fácil para que um programador corrija os bugs é fazer com que ele saiba que eles existem. Outro ponto fundamental é fornecer as informações necessárias para a reprodução do erro. Seguindo estes dois pré-requisitos, com certeza os bugs registrados serão corrigidos antes de escrever código novo. Da mesma forma que a questão anterior, neste caso o VSTS possui o Work Item do tipo Bug para gerenciar os erros do software.
+ 1 ponto, temos 5.
Só desenvolver um software não basta, também é preciso entregá-lo e o mais importante: na hora certa. Uma agenda atualizada, segundo o Joel, ajuda você a decidir quais funcionalidades estarão disponíveis ou não na versão final. Em outras palavras, a agenda atualizada fornece informações sobre o vencimento de prazos, portanto você pode decidir por incluir na versão final do software somente os itens mais importantes e indispensáveis, postergando os outros para versões futuras.
Aprenda a gerenciar seus projetos com o livro Microsoft Office
Project 2007: A Bíblia disponível na Submarino ou no Buscapé
O VSTS mais uma vez resolve este problema. Ele trabalha completamente integrado com o Microsoft Project, de tal forma que o desenvolvedor alimenta uma base de dados que também é utilizada pelo Project. Isso significa que o gerente de projetos terá toda a informação necessária disponível e atualizada a qualquer hora do dia, pois a integração é em tempo real e sem burocracias.
+ 1 ponto, estamos na metade, 6.
Todo mundo acredita que escrever especificações é algo excelente, entretanto grande parte das pessoas não faz isso. Por quê? O fato é que muitas ferramentas para especificação de software são incompletas e não são integradas com o ambiente do desenvolvedor. O VSTS resolve justamente estes dois problemas: suporta a especificação de softwares e, quando necessário, também integra com ferramentas de terceiros.
Nas versões 2005 e 2008 do VSTS já estão disponíveis diversos recursos para especificação de software. Um deles é o diagrama de classes, que inclusive pode ser gerado automaticamente a partir do código fonte. O segundo é o Item de Trabalho, que pode armazenar texto e imagens sobre uma determinada tarefa. Além disso, a versão 2010 do VSTS terá suporte para os principais diagramas da UML e mais alguns específicos da ferramenta.
+ 1 ponto, temos 7.
O Joel nesta questão se refere ao espaço físico do ambiente de trabalho. Segundo ele, há um ganho de produtividade muito grande quando as pessoas são posicionadas em lugares adequados, ou seja, com chances menores de interrupção, privacidade, etc. O VSTS não pode interferir nisto diretamente, porém ele traz outros fatores que melhoram as condições de trabalho de todos os envolvidos.
A ferramenta para desenvolvimento de software é integrada com a ajuda online da MSDN. Com alguns cliques o programador consegue as informações que precisa sem interromper outra pessoa. Outro aspecto importante é o foco no negócio e nos resultados, pois quem está envolvido no projeto sabe que existe uma excelente ferramenta dando suporte a todo o ciclo de vida da aplicação.
+ 1 ponto, e agora são 8.
É praticamente impossível desenvolver um sistema moderno sem o auxílio de uma ferramenta poderosa e com recursos avançados. Gerenciamento efetivo, comunicação fácil, agilidade no desenvolvimento e testes automatizados são só alguns exemplos do que é indispensável para ganhar tempo. Neste caso, o VSTS mais uma vez oferece uma solução completa e flexível de acordo com as necessidades do cliente.
O Visual Studio Team Suite, por exemplo, é o componente do VSTS usado por desenvolvedores, arquitetos e testadores. Todas as ferramentas que ele comporta são integradas entre si e simples de usar. No aspecto gerencial, o VSTS possui um grande número de relatórios, além de possibilitar o acesso de diversas informações pela web utilizando o Visual Studio Team System Web Access.
+ 1 ponto, 9 no total.
Segundo o Joel, ignorar a fase de testes é perder dinheiro. Pare e pense: se um programador recebe $ 100 por hora e um testador $ 30, com qual deles o custo é menor para executar os testes? Não ter testadores é uma falsa economia, pena que muitas vezes as pessoas não percebem isso ou acham que é tempo desperdiçado. Com o VSTS e os recursos de testes disponíveis é diferente, pois há mais agilidade no processo e consequentemente o custo é menor ainda.
O testador tem à disposição uma série de maneiras para realizar os testes usando o VSTS. Uma delas é o Web Test, que permite gravar e executar por indeterminadas vezes o acesso a um site, é o que conhecemos como simulação de acesso. Outra maneira é com o Load Test que simula diversos usuários acessando o servidor simultaneamente, também conhecido como Teste de Carga. Tudo isso e muito mais está disponível no Visual Studio Team Suite.
+ 1 ponto, 10! Faltam só 2.
Você contrataria um mágico sem pedir a ele que demonstrasse algum truque? É isso que o Joel quer saber com esta questão. Segundo ele, um número cada vez maior de programadores é contratado com base em entrevistas simples, que dependem somente de uma boa conversa. O pior de tudo é que frequentemente os entrevistadores fazem questionamentos já conhecidos, como aquelas perguntas básicas “por que você escolheu a empresa xyz?” ou “o que te motiva a trabalhar na área de zyx?”.
Descubra como escrever melhores códigos com o livro
Visual C# 2008 disponível na Submarino ou no Buscapé
O VSTS pode ajudar também no processo da entrevista. Se for um candidato a programador, ele pode ser posto à frente do Visual Studio Development Edition e a partir daí deverá resolver uma série de problemas. Se for um aspirante a testador, a versão Visual Studio Test Edition será muito útil para conhecer o perfil investigativo do profissional. O mesmo acontece para arquitetos, DBAs, gerentes, analistas, etc. Todos eles têm um papel bem definido durante o ciclo de vida de uma aplicação e o VSTS possui ferramentas focadas para cada um deles.
+ 1 ponto. 11! Falta só 1.
Jacob Nielsen, uma das maiores referências sobre usabilidade na web, fala e escreve muito sobre um conceito chamado hallway usability testing. Em português a tradução é algo parecida com teste de usabilidade feito por pessoas aleatórias. Segundo ele, cinco pessoas é o número suficiente de testadores aleatórios para garantir que a usabilidade do site esteja em perfeitas condições. E o VSTS pode ajudar você a garantir um ótimo nível de usabilidade em suas aplicações.
Entenda mais sobre usabilidade com o livro
Não Me Faça Pensar disponível na Submarino ou no Buscapé
Para projetos web hoje é indispensável uma interface rica para o usuário. O VSTS oferece recursos como Silverlight, componentes AJAX e bibliotecas Java Script integradas na ferramenta de desenvolvimento. Além disso, possui suporte para edição de código HTML e um editor robusto e flexível para CSS. Todas estas tecnologias unidas proporcionam ao usuário final uma experiência fantástica, pois dão uma base sólida para a criação de um site que utiliza os melhores conceitos de usabilidade.
+1 ponto, chegamos no nível máximo: 12!
O VSTS é uma solução completa para qualificar qualquer time de desenvolvimento de software. Os recursos que ele oferece para desenvolvedores, testadores, gerentes, etc, são excelentes para a criação de qualquer projeto. E o mais importante: tudo em um único conjunto de ferramentas trabalhando de maneira integrada e inteligente para facilitar as tarefas do dia-a-dia.
Durante esta semana recebi um contato da DevMedia para ajudar a divulgar o evento Engenharia de Software Conference. A Kaline, diretora de marketing, gentilmente ofereceu 10 assinaturas digitais da revista Engenharia de Software para presentear os leitores do blog. Portanto fique atento: na próxima semana serão divulgadas as regras para que você possa participar da promoção.
Conheça a revista Engenharia de Software
Divulgação oficial do evento:
Raras são as oportunidades de ter acesso as informações que realmente podem transformar sua carreira. Essa é uma delas. Dias 22 e 23 de maio a DevMedia promove em São Paulo o evento Engenharia de Software Conference. Serão mais de 30 palestras que vão desde o projeto até o último teste de um software, passando pelos mais modernos conceitos de gerenciamento. Com palestrantes renomados e temas pertinentes o evento promete excelentes oportunidades de aprendizado e network.
Em outras palavras, será um evento com duração de 2 dias (sexta e sábado) e com os grandes nomes da área de tecnologia brasileira. Além disso, os temas discutidos são vários que estão em evidência no mercado atual: MPS.BR, Qualidade de Software, SCRUM, eXtreme Programming (XP) e é claro Visual Studio Team System, que com certeza é uma das ferramentas mais completas do mercado para suportar a implantação de todos estes conceitos de desenvolvimento e gerenciamento de software.
Eu vou! E você?
Até +!
Uma web padronizada e muito bem pensada com certeza é o desejo de muitos. Entretanto isso não é o suficiente para que os Web Standards se tornem realidade. Nos dias de hoje o que interessa é dinheiro, grana, money, ou em outras palavras e com um termo muito mais moderno Return on Investment (ROI), que no bom português significa Retorno do Investimento.

Se você falar para um executivo, CIO, CTO, etc que Web Standards é bom porque todo mundo fala, ele com certeza irá te dizer para deixar de escutar os outros e fazer o seu trabalho. O fato é que precisamos de argumentos sólidos e que realmente justifiquem o investimento neste tipo de tecnologia. Foi pensando nisso que eu resolvi escrever este post sobre o artigo Web Standards: Where the ROI is publicado no site do MIX09.
Segundo o artigo, web designers e desenvolvedores falam muito de Web Standards, mas e as pessoas que assinam os contratos de pagam as contas, o que elas pensam disto? Sabem o que é? Será que os padrões web são só mais um item que deve ser pago ou isso agrega algum valor ao projeto? Por que a Microsoft está investindo tão forte neste assunto e tornando seus principais produtos compatíveis com os padrões?
De acordo com Molly Holzschlag a resposta pode ser resumida em seis termos, dos quais três me chamaram a atenção. O primeiro deles é o Future-Proof Your Investment. Neste caso, é importante saber que a web é uma plataforma universal e continuará sendo suportada e mantida durante muito tempo. Ao usar Web Standards, você garante que seu sistema irá sobreviver no futuro, pois continuará sendo compatível com a evolução das tecnologias.
O outro ponto que destaco é o Search Engine Optimization, ou SEO como normalmente é conhecido. Muito provavelmente este é o argumento mais forte para utilizar Web Standards, pois se você usa o HTML, CSS, Java Script, etc de acordo com os padrões, um mundo de oportunidades surge com o SEO. Os sistemas de pesquisa encontram com muito mais facilidade os termos chave do site para que ele seja indexado da maneira correta.
Conheça mais sobre SEO com o livro Google Marketing que
está disponível na Submarino ou no Buscapé
Por último e não menos importante temos o Improved User Experience. Através dos Web Standards os sites conseguem ser efetivos, ou seja, simples e fáceis de usar. Além disso, tornam-se mais rápidos que os sites escritos fora da padronização. O fator positivo é que isso ajuda o usuário a encontrar o ele precisa e, além disso, deixa-o satisfeito com o serviço prestado.
Por hoje é só. Até +.
Foi anunciado ontem no blog Visual Web Developer Tools um hotfix para a correção de diversos bugs do Visual Studio 2008 SP 1. Os erros em geral estão relacionados com a não atualização do aspx após a edição visual de um controle. Além disso, em certos momentos o aspx é atualizado com diversos .
O nome do arquivo é office2007-kb967253-fullfile-x86-glb.exe. Não fique espantado, pois o designer do Visual Studio usa componentes do Office 2007, similar ao Expression Web e o Sharepoint Designer 2007.
Até +!
Uma questão interessante que surgiu na lista de discussão oztfs esta semana foi esta: é possível renomear um projeto no Team Foundation Server (TFS)? Felizmente a lista é repleta de profissionais experts no assunto, inclusive alguns que trabalham na própria Microsoft, e a resposta foi ótima.
Neste caso o Ian Ceicys, Microsoft Global ALM Practice, fez a gentileza de responder detalhadamente a pergunta. Os projetos do TFS não podem ser renomeados. O principal motivo é que na arquitetura utilizada pelo VSTS e outras ferramentas que fazem parte da solução, o nome do projeto é usado como referência em diversos locais.
Por este motivo, imagine que um projeto chamado ProjetoX pudesse ser renomeado para qualquer outro nome e que o ProjetoY assumisse o nome ProjetoX. Haveria uma enorme confusão com as informações armazenadas no TFS. Este é só um exemplo simples, acho que você já pode imaginar outros muito mais complexos.
Uma possível solução é criar outro projeto no TFS e copiar todos os dados (work items, código fonte, etc) do projeto antigo para o novo usando alguma ferramenta de migração. Por enquanto é o que há, mas com certeza essa funcionalidade já está na lista de tarefas da equipe de desenvolvimento do VSTS.
Até +!
O grupo VSTS Rangers lançou esta semana mais dois excelentes documentos sobre o Visual Studio Team System (VSTS). Desta vez o foco é na construção de aplicações Sharepoint com o VSTS. Confira:
Fonte: Ozzie Rules (Guidance for building Sharepoint Applications with Visual Studio Team System)
Uma das funções do Team Foundation Server (TFS) é servir como repositório de código fonte. Por conta disto, os administradores do TFS precisam saber como gerenciar a enorme quantidade de dados que ele armazena. Um dos grandes desafios é a criação e manutenção dos branches.
Para solucionar este problema uma equipe chamada VSTS Rangers criou o TFS Branching Guide, que é um conjunto de documentos com as melhores práticas para trabalhar com branches. Esse material inclui diversos exemplos da vida real e uma série de perguntas e respostas mais frequentes.
Eu já tive a oportunidade de trabalhar como administrador de um TFS e sei o impacto que a criação de um branch tem sobre a equipe de desenvolvimento e o projeto em questão. Portanto recomendo a leitura deste guia a todos que trabalham com a criação de branches no TFS.
Até +
Você quer trabalhar na Microsoft? Então pelo menos precisa fazer com que eles saibam disso. Em outras palavras, você tem que estar visível aos recrutadores para que eles possam encontrá-lo.

We love Microsoft!
A Anne do site Microsoft Jobs Blog publicou uma lista com nove maneiras para um recrutador encontrar você. Abaixo segue um resumo do post:
Fique atento! Os recrutadores sempre estão procurando por maneiras novas para encontrar os melhores profissionais. Apesar de não fazer parte da lista acima, talvez hoje o Twitter já seja uma destas alternativas. Portanto participe da comunidade, você só tem a ganhar com isso.
Até +.
Faz alguns meses que está no ar o portal ArqCast Brasil, um lugar onde você encontra muito conteúdo em vídeo sobre arquitetura de software e tecnologias da Microsoft em geral. Por fazer parte do portal Channel9 o ArqCast segue a mesma idéia, ou seja, learn by listening (aprenda ouvindo).
Waldemir Cambiucci, Otavio Pecego e Markus Christen são só alguns dos grandes nomes que fazem parte deste portal. Outro aspecto muito interessante são os assuntos discutidos que basicamente abrangem o que há de novo na comunidade, como por exemplo SCRUM, Windows Azure, Software como serviço (SaaS), etc.
Já acompanho há muito tempo o blog e as palestras do Waldemir e do Otavio, portanto posso garantir que eles têm muito a dizer sobre arquitetura.
Até +.