Igor Abade (T-Shooter)

Microsoft MVP – Visual Studio ALM


Deixe um comentário

Minha palestra no Seminário Paranaense de Qualidade de Software

imageOntem estive em Curitiba, a convite dos nossos amigos da PrimeControl, para palestrar no 1o. Seminário Paranaense de Qualidade de Software.

A Lambda3 foi um dos patrocinadores do evento, que ocorreu na ESIC Business Marketing School.

O tema da minha palestra foi “Scrum em Team Foundation Server: Qualidade ao longo do ciclo de vida da aplicação”:

Empresas no mundo inteiro têm cada vez mais dificuldade para desenvolver e entregar software de qualidade. Os desafios são vários, tais como gerenciar as expectativas do usuário e as mudanças constantes de requisitos, bem como garantir a coesão e o foco do time. Venha ver como o desenvolvimento ágil de aplicações, apoiado sobre o Scrum e o Team Foundation Server 2012, pode ajudar times de desenvolvimento a melhorar seu dia-a-dia de trabalho para entregar software de qualidade a seus clientes.

É sempre bem interessante pôr este tema em discussão. Isso nos dá a oportunidade de lembrar quão danoso pode ser o modelo de “test-last development” (onde o teste é deixado para o final do projeto). Infelizmente tratar qualidade como um afterthought (e achar que testes, por si só, garantem a qualidade do software) infelizmente ainda são atitudes muito comuns nas empresas. De certa forma, estendemos a discussão que começou na minha palestra do ALM Summit Brasil (“O testador está morto. Longa vida ao desenvolvedor!”).

O evento foi bem legal e suscitou discussões bem bacanas. Espero que todos tenham curtido!

Palestrando no 1o. Seminário Paranaense de Qualidade de Software  Cantinho da Lambda3

 

Para os que me pediram durante o evento: minha apresentação está disponível para download no SlideShare:

 

Em tempo: Queria agradecer mais uma vez o convite da PrimeControl. Nos vemos no ano que vem!

 

Um abraço,
    Igor


2 Comentários

O que é o treinamento Professional Scrum Developer para mim

imageNesta semana de 04 a 08 de março estou em Chicago fazendo algo que chamam de PSD TTT (Professional Scrum Developer Train The Trainer). É um curso restrito da Scrum.org para formar e selecionar potenciais novos instrutores para o curso de Professional Scrum Developer.

Hoje, depois de voltar do terceiro dia de curso, peguei-me refletindo sobre toda a bagagem de informação que recebi nestes três primeiros dias – e, em especial, sobre o que me trouxe até aqui.

Provavelmente a maioria dos leitores deste blog não deve ter a menor ideia disto, mas já ministro treinamentos há quase 20 anos. Aliás, é bem engraçado lembrar que meus primeiros treinamentos de ferramentas de desenvolvimento foram os cursos de dBASE e Clipper na SOS Computadores em 1994… Smile

O fato é que, apesar de ministrar treinamento há tanto tempo, nunca fui formalmente um instrutor/professor “profissional”. Minha profissão, no sentido estrito da palavra, sempre foi a de programador (que já virou analista programador, desenvolvedor, engenheiro de software… nem sei mais do que chamamos hoje em dia Open-mouthed smile). Lecionar, para mim, sempre foi muito mais uma paixão –  um hobby remunerado  – do que um trabalho, visto que nunca foi minha atividade principal.

Assim, o melhor dos mundos para mim sempre foi juntar minhas duas paixões – desenvolver sistemas e  lecionar – em uma só: treinar pessoas a se tornarem (melhores) desenvolvedores. Certamente foi essa a motivação que me levou a começar a estudar ALM (que, em 2005, ainda chamávamos de SDLC) e TFS. A ideia de compartilhar experiências com as pessoas ao meu redor, dividindo o pouco que eu sei e aprendendo ainda mais no processo de ensinar sempre me fascinou.

Entretanto, quando me tornei efetivamente um consultor de ALM, ajudando times e empresas a melhorar seu ferramental de suporte ao processo de desenvolvimento, ficou óbvio que havia uma peça ausente no quebra-cabeças. Não fazia o menor sentido melhorar o ferramental à disposição do time se eles não sabiam como usa-lo. E não fazia o menor sentido ensiná-los a usar o ferramental se eles não fossem capazes de transcender a ferramenta para chegar ao que realmente interessa: entregar software de qualidade (no sentido mais amplo da palavra qualidade).

Durante todo meu tempo como programador sempre tive o infortúnio de atuar em times disfuncionais. Não quero, com isso, desmerecer as pessoas com quem trabalhei – pelo contrário! Trabalhei com alguns caras realmente brilhantes. Mas talentos individuais não fazem, necessariamente, um bom time. E mesmo um bom time, por sua vez, não consegue ir muito longe se a cultura que o cerca não faz nada além de sufocá-lo.

Foi na busca por alternativas que me deparei com as Práticas Ágeis (ou aquilo que chamamos simplisticamente de Agile). Foi óbvio que essa era a peça que estava faltando. De nada adiantavam os processos e as ferramentas de ALM (que são úteis, claro!) se não dermos a devida atenção às pessoas e as interações entre elas.

Depois dessa epifania, que pode soar até idiota agora mas que estava longe de ser óbvia, ficou claro que de nada adiantaria ajudar meus clientes a adotar o ferramental de ALM sem trazer junto as práticas de engenharia de software do XP (Extreme Programming) e as práticas de gestão de projetos do Scrum para acabar com os (aparentemente insolúveis) problemas de desenvolvimento de projetos/produtos complexos. Ou seja, o “mundo perfeito” seria um time capaz de utilizar as melhores práticas de engenharia de software, amparadas por valores fundamentais como Transparência, Inspeção e Adaptação (tendo por trás o devido suporte do ferramental que diminui o trabalho braçal e garante a consistência e previsibilidade do resultado) para entregar valor de maneira contínua a seus clientes.

Como resolver isso, então? Como colocar um time no caminho correto, vendo seus projetos de maneira mais ampla e não apenas focando num pedaço da solução?

A resposta à essa pergunta para mim, hoje, é:

“O curso Professional Scrum Developer é o primeiro, e com isso talvez o mais importante, passo na direção correta.”

Extraído do site da Scrum.org, o curso de Professional Scrum Developer é:

The Professional Scrum Developer course teaches students how to work in a team, using modern software engineering practices and your specific technology platform to develop an increment of potentially releasable functionality. All of this is done as iterative incremental development within the Scrum framework.

O curso Professional Developer Scrum ensina os alunos a trabalhar em equipe, usando práticas modernas de engenharia de software e sua plataforma de tecnologia específica para desenvolver um incremento de funcionalidade potencialmente entregável. Tudo isso é feito como desenvolvimento iterativo incremental dentro do framework Scrum.

Note que a proposta do curso é mostrar tudo de maneira integrada, exatamente como deveria acontecer na vida real: as práticas de engenharia (como TDD, CI, Refatoração, ATDD…) suportadas pelo ferramental (que no caso do PSD.NET é o Visual Studio e o TFS) e guiados pelo Scrum.

Estar aqui em Chicago, participando deste TTT, é uma oportunidade única para mim de poder também ministrar esse treinamento no Brasil (hoje só o Giovanni Bassi o tem ministrado).

Dividir um pouco das minhas experiências, poder aprender ainda mais com as experiências dos alunos – e ainda por cima poder ajudar essas pessoas a melhorar seu dia-a-dia em suas empresas para entregar mais software de qualidade e principalmente melhorar sua qualidade de vida. Não vejo a hora!!!

 

Um abraço,
Igor


Deixe um comentário

Como navegar rapidamente no Visual Studio

Se você é como eu e prefere usar o teclado ao invés do mouse, certamente vai curtir muito esta dica:

Para navegar entre os diversos elementos de uma solução (solution) do Visual Studio, pressione a tecla de atalho Ctrl+, (a tecla Control e a tecla “vírgula”) para acessar a caixa de diálogo Navigate To. Daí, é só começar a digitar um pedaço do nome do item que você quer acessar. Pode ser um arquivo, método, classe… Qualquer parte da solution pode ser facilmente acessada dessa maneira!

Caixa de diálogo Navigate To

 

Um abraço
    Igor


1 Comentário

Não é permitido instalar software MSDN na nuvem

 

Com o uso cada vez maior da “nuvem” (seja Azure, Amazon ou qualquer outro provedor), surge a necessidade de estender nossos ambientes de desenvolvimento e testes para lá. Ou seja, pode ser que eu queira:

  1. Montar algumas máquinas virtuais no Azure para instalar uma farm de SharePoint e assim ter um ambiente para testar minhas customizações; ou
  2. Criar uma VM na Amazon com o SQL Server Analysis Services e o SQL Server Reporting Services para testar os novos relatórios que estão sendo criados; ou mesmo
  3. Instalar o Visual Studio Ultimate Load Test Agent em várias VMs para criar um teste de carga distribuído.

Normalmente, a preocupação seria “como eu licencio esses softwares que quero pôr na nuvem?” E aí vem um dos maiores benefícios oferecidos pela Assinatura MSDN.

Quando você compra um Visual Studio com uma Assinatura MSDN, recebe o direito de utilizar softwares Microsoft (como Windows, SQL Server, SharePoint e outros) para fins de desenvolvimento e testes. Você pode instalar esse software em quantos computadores você quiser, desde que:

  1. Seja apenas para desenvolvimento e testes. Não pode ser usado em ambientes de produção, nem para o trabalho do dia-a-dia que não esteja ligado com desenvolvimento de aplicações; e
  2. Apenas pessoas com licenças MSDN acessem esse ambiente. Ou seja, você pode montar uma máquina virtual e instalar nela uma versão do seu site. Outras pessoas podem acessar essa máquina virtual, desde que elas também tenham assinaturas MSDN (*).

O problema (e a origem da minha surpresa) é que não é possível instalar softwares MSDN em cloud providers.

Devo confessar que isso é novidade para mim. E para evitar que você, sua empresa ou seus clientes fiquem com problemas de licenciamento por acidente, vamos esclarecer algumas coisas. A primeira é que a fonte definitiva do que pode – ou não pode – ser feito com suas licenças de Visual Studio, suas Assinaturas MSDN e afins, é o Visual Studio 2012 and MSDN Whitepaper. Extraído direto da página 12, vem o seguinte trecho:

SNAGHTML11e7dfbd

Portanto, fique atento nisso. Use no Azure (ou na Amazon) apenas softwares licenciados especificamente para esse fim e não use softwares MSDN lá.

Um abraço,
    Igor


Deixe um comentário

Como instalar o Windows 8 a partir do USB num sistema com UEFI

Recentemente peguei meu novo notebook (um Ultrabook Dell XPS 14 – aliás, uma excelente máquina!) e, como a máquina já vem com UEFI (uma evolução do antigo BIOS que existe desde os tempos dos primeiros IBM-PC), decidi tirar proveito do fato de que o Windows 8 é otimizado para sistemas com UEFI.

Agora, cá entre nós: se essa instalação tivesse sido fácil você não acha que teria virado um post, né?  Smile

Bem, vamos lá. Mas antes, um aviso…

Works on my machine AVISO: Execute os comandos abaixo por sua conta e risco! Não me responsabilizo por quaisquer problemas que isso possa causar no seu computador, nas suas máquinas virtuais ou até mesmo no seu forno de microondas, na sua tevê ou sua samambaia! Open-mouthed smile

1. Habilitar UEFI

Essa etapa varia, naturalmente, de computador para computador. A maioria dos novos computadores (sejam notebooks, desktops ou servidores) vêm com os dois sistemas – BIOS e UEFI. E, por padrão, vêm com o BIOS habilitado para garantir compatibilidade com sistemas operacionais que ainda não suportem o novo UEFI.

No caso no meu XPS 14 o procedimento foi o seguinte: ao acessar o Setup do notebook, desabilitei a opção “Legacy ROM” (também conhecida como BIOS) para forçar o sistema a entrar apenas com UEFI:

image

Depois disso, eu inocentemente achei que era apenas esperar meu indefectível pen drive com a instalação do Windows 8. E é lógico que não ia ser tão fácil assim… Winking smile

2. Preparar o pen drive USB

Depois de muito quebrar a cabeça e pesquisar mais ainda na internet, veio a explicação (que, agora, soa bem óbvia): pen drives, por padrão, são formatados usando o padrão MBR, que é o formato de partições usado e reconhecido pelo BIOS. Sistemas UEFI, por outro lado, usam o formato GPT. Logo, o “truque” é reformatar o pen drive no formato GPT.

Para isso, conecte seu pen drive e abra um prompt de comando elevado (os exemplos abaixo foram feitos num sistema já com Windows 8, mas funcionam também numa máquina com Windows 7).

  1. Digite diskpart e depois digite list volume para localizar seu pen drive:
    Diskpart, comando List Volume, para localizar o pen drive
    Essa etapa é bem importante. Preste muita atenção no número do volume do pen drive (no meu exemplo acima, é o número 5). Se você anotar o número errado, pode apagar seu HD!
  2. Agora apague o volume do pen drive. Sem isso, não é possível reformatá-lo como GPT. Execute, na sequência, select volume <volume-do-seu-pen-drive> e então delete volume override para apagar o volume.
    Diskpart: Select volume e Delete volume
  3. Agora, para podermos criar nossa partição GPT, é preciso primeiramente converter o disco. Execute o comando convert gpt:
    SNAGHTML412733
  4. Agora podemos criar nossa partição. Ela deve ser primária e formatada como FAT32. Para isso, execute os comandos create partition primary e format fs=fat32 label=”Windows 8″ quick:
    SNAGHTML4e80fc
  5. Agora seu pen drive está pronto! Copie o conteúdo da imagem ISO do Windows 8 para dentro de seu pen drive, dê o boot e divirta-se com seu novo computador!

3. Copiar o Windows para dentro do pen drive USB

Agora seu pen drive está pronto! Copie o conteúdo da imagem ISO do Windows 8 para dentro de seu pen drive (sim, é só copiar; não precisa fazer nada de especial), dê o boot e divirta-se com seu novo computador!

 

Um abraço,
  Igor


2 Comentários

Boas práticas para Contas de Serviço do Team Foundation Server 2012

O Team Foundation Server, como  qualquer outro produto de servidor, tem suas particularidades de instalação e também um conjunto de boas práticas que facilitam tanto a instalação quanto a posterior manutenção do ambiente.

Dentre as diversas boas práticas, uma das mais úteis refere-se à configuração das contas de usuário e serviço para o TFS. Use as contas listadas abaixo quando você for instalar seu TFS.

Contas de usuários interativos

As contas interativas são apenas com que você faz logon no Windows. Atualmente o TFS precisa apenas de uma conta interativa: a TFSSETUP.

Conta

Finalidade

TFSSETUP

Conta usada para o processo de configuração do TFS

Contas de serviço

As contas de serviço são usadas para cada um dos componentes de servidor do TFS que rodam como um processo independente. Entram nessa categoria os serviços Windows e os App Pools do IIS.

Conta

Finalidade

TFSSERVICE

Conta de serviço do TFS

TFSREPORTS

Conta do Reporting Services e do TFS Project Portal no SharePoint

TFSBUILD

Conta do servidor de build

SPSSERVICE

Conta de serviço da Farm (Central Admin etc.) do SharePoint

SPSSEARCH

Conta do serviço de busca do SharePoint

TFSLAB

Conta de serviço para o recurso de Lab Management

TFSTEST

Conta de serviço do controlador de testes

Dicas

  1. Os nomes de contas listados acima são apenas uma sugestão de nome. Você pode usar o nome que bem quiser; entretanto, se puder usar os nomes acima fica mais fácil de se achar na documentação depois;
  2. As contas podem ser tanto locais (criadas no próprio servidor do TFS) quanto de domínio. Porém, você só pode usar contas locais em instalações do tipo single server. Instalações dual-server ou em cluster exigem a utilização de contas de domínio;
  3. Depois que você terminar a instalação do TFS, adicione os administradores do TFS e desabilite a conta TFSSETUP no Windows (conta local) ou no Active Directory (conta de domínio). Resista à tentação de usar a conta TFSSETUP no dia-a-dia, pois ela tem privilégios demais e pode expor seu ambiente a um risco desnecessário. Quando precisar fazer alguma manutenção no ambiente – por exemplo, instalar um service pack no TFS – reabilite a conta, faça o trabalho necessário de depois a desabilite de novo.

Para saber mais

Para mais detalhes, consulte a documentação do TFS aqui:
http://msdn.microsoft.com/en-us/library/ms253149.aspx

 

Um abraço,
  Igor

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.