Alfa, Beta e, às vezes, Gama

Ao iniciarmos a versão beta privada do Stack Overflow no final desta semana, fiquei pensando: onde os termos de software alfa e beta? E por que nunca usamos gamma?

caráter alfa personagem beta

Alfa e beta são os dois primeiros caracteres do alfabeto grego. Presumivelmente, esses caracteres foram escolhidos porque se referem à primeira e à segunda rodadas de testes de software, respectivamente.

Mas qual é a origem desses termos? Existe um seção não citada da Wikipédia que afirma que os apelidos alfa e beta vieram, como tantas outras coisas, do os dias dourados da IBM:

O termo teste beta vem de um Teste de produto de hardware da IBM que remonta às máquinas de tabulação e classificação de cartões perfurados. O hardware passava primeiro por um teste alfa para verificar a funcionalidade preliminar e a viabilidade de fabricação em pequena escala. Em seguida, vinha um teste beta, realizado por pessoas ou grupos que não eram os desenvolvedores, para verificar se o hardware desempenhava corretamente as funções que deveria desempenhar e se poderia ser fabricado nas escalas necessárias para o mercado. E, finalmente, um teste c para verificar a segurança final. Com o advento dos computadores programáveis e dos primeiros programas de software compartilháveis, a IBM usou a mesma terminologia para testar o software. À medida que outras empresas começaram a desenvolver software para uso próprio e para distribuição a outros, a terminologia se fixou e agora faz parte do nosso vocabulário comum.

Com base no ciclo de vida de lançamento de software e a minha experiência pessoal, eis como eu caracterizaria cada fase do desenvolvimento de software:

  1. Pré-Alfa

    O software ainda está em desenvolvimento ativo e não possui recursos completos nem está pronto para ser consumido por qualquer pessoa que não seja desenvolvedor de software. Pode haver marcos durante a fase pré-alfa, que fornecem conjuntos específicos de funcionalidade, e compilações noturnas para outros desenvolvedores ou usuários que se sentem confortáveis em viver no limite absoluto.

  2. Alfa

    O software é suficientemente completo para interno interno. Normalmente, isso é feito por pessoas que não são os engenheiros de software que o escreveram, mas ainda dentro da mesma organização ou comunidade que desenvolveu o software.

  3. Beta

    O software é completo o suficiente para externo ou seja, por grupos fora da organização ou da comunidade que desenvolveu o software. O software beta geralmente tem recursos completos, mas pode ter limitações ou bugs conhecidos. Os betas são fechados (privados) e limitados a um conjunto específico de usuários, ou podem ser abertos ao público em geral.

  4. Candidato à versão (também conhecido como gamma ou delta)

    O software está quase pronto para o lançamento final. Não há desenvolvimento de recursos nem aprimoramento do software; as correções de bugs de escopo restrito são o único código que o senhor tem permissão para escrever nessa fase e, mesmo assim somente para os bugs mais hediondos e debilitantes. Um dos mais experientes Os desenvolvedores de software mais experientes com quem já trabalhei caracterizaram a fase de desenvolvimento do candidato a lançamento da seguinte forma: “Será que esse bug mata crianças pequenas?”

  5. Ouro

    O software está finalizado e, por finalizado, queremos dizer que não há bugs que possam matar crianças pequenas. Que nós saibamos. Provavelmente há vários bugs de menor prioridade triados em na próxima versão pontual ou service pack, também.

Todas essas fases me parecem perfeitamente familiares, embora existam duas tendências claras:

  • A definição de beta se torna mais abrangente e elástica a cada ano.
  • Estamos muito ansiosos para jogar o código de qualidade alfa por cima do muro para usuários e testadores externos.

No admirável mundo novo da web 2.0, as designações alfa e beta não significam exatamente as mesmas coisas que costumavam significar. Talvez a tendência mais preocupante seja a do beta perpétuo. Tantos sites permanecem em beta perpétuo que isso quase se tornou uma piada. O GMail, por exemplo, é ainda em versão beta depois de mais de quatro anos!

Embora eu tenha visto muitos candidatos a lançamento em minha vida, raramente vi um “gamma” ou “delta”. Aparentemente, o Flickr usou esse termo por um tempo em seu logotipo, depois de heroicamente ter saído da versão beta:

flickr: beta, gamma, love

“loves you” certamente é mais divertido do que “gold”, mas não sei se é igual a feito. Talvez seja assim que deva ser.