Medindo a escala de uma versão

Obrigado por todos os comentários que temos recebido. É muito agradável constatar que na maioria eles são positivos. Eu tenho respondido aos e-mails da melhor maneira possível e, juntamente com os membros da equipe, temos discutido todos os comentários. Todos têm contribuído bastante compartilhando suas opiniões sobre detalhes específicos e solicitações. Eu adoro receber estes emails e ler os comentários. É fantástico. Eu apenas gostaria que todos soubessem que é impossível respondê-los um por um! O que vamos fazer é observar os emails e os comentários como uma forma de sugestão dos artigos que devemos escrever. Toda a equipe aprecia muito a recepção animada de todos aqueles que se juntaram a nós – sabemos que temos muitas discussões interessantes esperando por nós e estamos muito felizes em iniciá-las.

Com este artigo, espero continuar o diálogo da maneira como pensamos “dentro a equipe Win7” por assim dizer — de certa forma este processo amplia a nossa equipe e coloca você praticamente dentro das discussões sobre o planejamento de uma nova versão. Essa conversa sobre versões maiores ou menores é muito similar àquelas que tenho com o meu chefe quando iniciamos o processo de planejamento :-)

Quando começamos a planejar esta versão, a primeira coisa que alguns podem pensar que tivemos que decidir era se o Windows 7 (cliente) seria uma “versão principal” ou não. Coloco isto entre aspas, pois na realidade não é algo que decidimos ou que tenha apenas uma resposta. A magnitude de uma nova versão depende muito da sua perspectiva sobre os recursos propostos, bem como bem como das características destes recursos. Alguns poderiam perguntar se ser considerada uma versão principal pode ser considerado um elogio ou não. Na condição de engenheiros planejando um novo produto, decidimos antecipadamente o percentual da nossa equipe de desenvolvimento que trabalhará na nova versão e a qual será amplitude do nosso calendário ocupado com o projeto – mas na verdade, apenas com o resultado nas mãos é que cada cliente poderá julgar por si próprio se o lançamento pode ser considerado “principal” ou não, mas é claro que gostamos de ter a nossa opinião. No blog de servidores falamos sobre o nosso calendário e também compartilhamos a nossa opinião sobre a escala do Windows 7 cliente e servidor.

O nosso objetivo é lançar uma versão do Windows 7 que seja fantástica.

Entre todos os tipos de clientes, sempre há uma impressão de que uma versão “principal” é aquela que traz os recursos que são realmente importantes para mim. Uma versão de menor impacto é aquela que não traz nada ou pouca coisa para mim. Deveria ser bastante simples planejar uma versão “principal” — só temos que incluir exatamente os recursos certos para todos (levando em consideração o foco no desempenho, não pode haver nenhum recurso extra, mesmo se outras pessoas quiserem)! Como engenheiros, todos nós sabemos que um processo de design como este é realmente impossível, especialmente porque não é raro encontrar dois clientes desejando recursos exatamente opostos. Na verdade, enquanto estou digitando este artigo, recebi uma seqüência de emails, um dizendo “Ninguém se importa com esta coisa sem sentido de tela sensível ao toque” e outro dizendo “[O Windows 7 precisa] ter recursos de “toque” mais avançados/robustos. Quando recebemos opiniões espontâneas e não estruturadas é possível notar estes opostos com certa freqüência. Tenho certeza de que vocês têm percebido isto nos comentários do blog.

Vamos explorar o espectro de magnitudes de versões entre alguns tipos de clientes (mas não todos): usuários finais, desenvolvedores, parceiros, profissionais de TI e influenciadores.

Os usuários finais são geralmente os mais práticos no processo de julgamento de uma nova versão. Para um usuário final, uma nova versão é realmente impactante se ele se dispuser a ir até uma loja para comprar uma atualização ou um novo PC que traga a nova versão pré-instalada. Quando isto acontece, podemos dizer que o usuário final considera esta uma versão “principal”. Parece bastante simples, e uma versão impactante é boa para todos os usuários. Por outro lado, muitas pessoas podem até achar que uma nova versão é muito legal e estarem loucas para comprá-la, mas elas podem querer utilizar seus PCs existentes. Mas pode acontecer que a nova versão requeira mais memória e drivers atualizados que podem não estar disponíveis, ou talvez algum hardware específico para aproveitar todos os novos recursos. Parece que toda versão “principal” começa com uma imagem muito positiva e depois perde um pouco do seu brilho, sendo de certa forma mal-interpretada. É claro todos nós sabemos que o que as pessoas desejam é que todas as coisas que elas querem sejam compatíveis com o hardware que gostam ou que estão acostumadas, aí sim este pode ser considerado um grande produto (pouco importa se é considerada uma versão “principal” ou não).

Os desenvolvedores vêem uma nova versão por com um olhar diferente. Obviamente, para os desenvolvedores uma versão pode ser considerada grande se trouxer novas APIs e recursos que adicionem valor no seu aplicativo — novamente que seja simples o suficiente. Também pode ser o caso que uma versão anterior tenha trazido uma séria de novas APIs e as pessoas estão apenas começando a se familiarizar com o seu uso e, portanto, o que elas realmente desejam é harmonizar as APIs e talvez melhorar o desempenho. Portanto, seria possível concluir que a primeira versão é a versão “principal” e as subseqüentes podem ser consideradas como secundárias. Mas se revisitarmos a história do software são geralmente essas versões “secundárias” que são lembradas como as principais – Windows 3.1, Office 4.2 ou até mesmo o Windows XP SP2. Em cada um desses casos, para os desenvolvedores elas eram versões “secundárias”, mas aos olhos do mercado elas foram consideradas como as “principais”. O principal motivo para os desenvolvedores desejarem utilizar uma nova API é diferenciar o seu produto ou concentrar suas energias nas áreas em que podem realmente fazer a diferença, não apenas chamar novas APIs apenas por chamá-las. Neste sentido, uma versão pode ser considerada grande se por acaso liberar tempo suficiente de um ISV para que ele possa apostar nas novas APIs, pois eles podem dedicar o seu tempo e dedicação a algumas áreas mais representativas.

Parceiros representam o conjunto mais amplo de empresas, que criam computadores, hardware, e a infra-estrutura que é considerada o ecossistema do qual o Windows faz parte. Parceiros tendem a pensar sobre uma nova versão em termos da oportunidade que ela gera e, portanto, uma versão “principal” provavelmente teria que trazer muitas mudanças, propiciando a oportunidade de fornecimento de novo hardware e infra-estrutura para os clientes. Por outro lado, incompatibilidades com o passado podem ser menos positivas se significarem a necessidade de interrupção do ritmo de trabalho para revisão dos últimos serviços executados e verificação da compatibilidade da nova versão do Windows com o ambiente existente. Se eles escolherem não participar destes esforços, por qualquer tipo de razão, o lançamento pode ser considerado como secundário devido à falta de suporte do ecossistema. Então, novamente, vemos que grandes mudanças podem ser vistas tanto com as lentes de uma versão “principal”, quanto “secundária”.

Profissionais de TI normalmente são caracterizados como conservadores por natureza e, portanto, têm um ponto de vista conservador sobre as mudanças. Devido à natureza comercial da função, a avaliação de qualquer software ocorre no contexto de retorno sobre o investimento. Portanto, para um profissional de TI uma versão “principal” seria aquela que oferece um valor comercial significativo. Esse valor comercial pode ser definido como um investimento importante na implantação e gerenciamento do software, por exemplo. Ainda que para os usuários finais ou desenvolvedores, esses mesmos recursos possam não ter importância alguma para definir se uma versão é “principal” ou “secundária”.

Influenciadoressão todas as pessoas que estão no negócio de fornecimento de conselhos, análises e pontos de vista sobre os softwares que desenvolvemos. Essas pessoas freqüentemente examinam as versões medindo a quantidade de “mudança”. Grandes alterações significam uma versão “principal”. Uma grande alteração pode ser uma mudança total de arquitetura, como vimos na transição do Windows 9x para o Windows 2000 — mesmo que esses produtos tivessem uma interface muito similar, havia toneladas de mudanças “embaixo do capô”. Portanto, para os analistas estas foram, definitivamente, versões “principais”. Grandes alterações também podem ser grandes mudanças na interface de usuário, pois estas levantam bastante discussão e é fácil mostrar todas elas. Ainda assim, para cada um deles, essa definição de versão “principal” também pode vista como não muito positiva. Mudança de arquitetura significa possíveis incompatibilidades. Uma nova interface para o usuário pode significar necessidade de aprendizado extra e mudanças de hábito.

Nós temos lido muitos comentários e emails citando a mudança de arquitetura Windows como um bom símbolo para que uma nova versão seja considerada como “principal”. Nós também recebemos várias opiniões afirmando que uma versão “principal” é aquela que quebra o ciclo de suporte com o passado. Se eu pudesse generalizar, as pessoas consideram que se fizermos as coisas dessa maneira, automaticamente outros importantes benefícios virão — para a maioria das pessoas, a mudança de arquitetura resulta em melhor desempenho, e a quebra com o passado em menor uso de memória. É sempre complicado debater esses pontos, pois estamos comparando uma realidade conhecida com um estado em que sabemos o que deve ser corrigido, porém no qual não sabemos o que introduziremos de novidades, o que falhará e o que, caso contrário, não será corrigido. Portanto, em vez de definir uma versão principal em relação à sua implementação, eu acho que faz sentido definir o sucesso da versão em relação aos benefícios trazidos por sua implementação, independente de qual tenha sido escolhida. Definitivamente, continuaremos a revisitar esta discussão, pois ainda há muitas oportunidades de diálogo.

O fator mais importante é manter equilíbrio: podemos ter grandes alterações para todos os tipos de clientes se conseguirmos preparar todas as pessoas necessárias para suportá-los durante a transição. Também podemos ter pequenas alterações causando um impacto enorme, e se estas forem certeiras e introduzidas no tempo certo, estas versões serão as lembradas como “principais”.

Falamos sobre o intervalo e a maneira que nós estruturamos a equipe, para que você tenha uma noção dos “inputs” no projeto. Caso tenhamos escutado bem e focalizado nossos esforços corretamente durante o processo, cada tipo de cliente descobrirá novos recursos que farão com que o produto valha a pena. E se fizermos um trabalho eficiente comunicando sobre o produto, então até mesmo os pontos que poderiam representar “problemas” serão vistos em um contexto mais amplo de um ecossistema onde todos recebem os benefícios coletivamente, enquanto menos pessoas recebem benefícios mais significativos.

Na nossa perspectiva, nós dedicamos toda a nossa equipe de engenharia e uma quantidade de tempo significativo para a criação do Windows 7 (cliente). Apenas estes motivos o tornam um grande projeto por definição. A nossa intenção é que o Windows 7 seja um lançamento muito especial.

Eu espero que este artigo tenha ajudado na compreensão de que a perspectiva é muito importante no processo de decisão de quão significativa será uma versão para cada tipo de cliente.

--Steven