A pista era o disco e não a autenticação

Os primeiros relatos surgiram por volta das 23:10 da costa leste dos Estados Unidos a 26 de julho, segundo o registo da própria Microsoft, e na manhã de segunda-feira a página de estado da Xbox assinalava quatro áreas de serviço como falha grave: conta e perfil, loja e subscrições, jogos, e aplicações e móvel. O Xbox Support indicou no canal oficial que os utilizadores encontravam erros ao tentar entrar na conta, ver a biblioteca de jogos ou iniciar jogos, e que os engenheiros trabalhavam ativamente para atenuar o problema. Às 9:43 da costa leste a empresa declarou ter identificado a causa nas quatro áreas, com a resolução ainda pendente.

O Downdetector colocou o pico em 3.296 relatos perto da meia-noite, a descer para cerca de 700 às nove da manhã, com 67 por cento das queixas a mencionar expressamente o arranque dos jogos e não a autenticação nem a loja. Essa distribuição é a primeira pista. Se tivesse sido uma simples falha de rede ou de autenticação, a entrada na conta teria dominado os relatos.

O detalhe decisivo é o que mais deixou de funcionar. Os jogadores afetados não conseguiam iniciar títulos descarregados e também não conseguiam jogar jogos em disco nem títulos retrocompatíveis. Um disco na gaveta é o que o software pode ter de mais local. Falhou porque os servidores não conseguiam concluir a verificação de licença que um disco exige antes de arrancar. Não foi uma falha de rede que por acaso incomodou jogadores. Foi uma falha do serviço de direitos de uso, e o disco é a prova.

A sua disponibilidade é a menor de duas cifras

Todo o produto que verifica uma licença no arranque herda a disponibilidade de quem faz a verificação. Isso deixa-lhe uma disponibilidade efetiva igual ao mínimo de dois números: a da sua aplicação e a do seu serviço de direitos de uso. É aritmética simples e quase nunca aparece num painel, porque a lógica de direitos é normalmente construída uma vez, cedo, por uma equipa pequena, e depois tratada como canalização.

O padrão vai muito além das consolas. Software de computador com uma chamada de ativação, sistemas instalados em casa que consultam o número de licenças, equipamentos integrados que validam ao ligar, máquinas industriais com funções atrás de uma subscrição, e qualquer produto cujo caminho de autenticação dependa de um serviço de licenças separado: têm todos a mesma forma. O cliente tem os ficheiros. O que lhe falta, durante uma falha, é a permissão para os executar.

O modo de falha é além disso especialmente nocivo para a confiança, porque contradiz aquilo que o cliente acredita ter comprado. Uma paragem num serviço de transmissão contínua é irritante mas compreensível. Não conseguir iniciar um jogo a partir de um disco que é seu, numa consola que está à sua frente, parece mais uma promessa quebrada. Essa reação não é irracional e, na Europa, não é apenas uma reação.

Na União Europeia, uma interrupção que se repete deixa de ser um incómodo

A diretiva europeia sobre contratos de fornecimento de conteúdos e serviços digitais fixa aqui a norma, e é mais exigente do que a maioria das equipas de produto supõe. Quando um contrato prevê um fornecimento contínuo ao longo de um período, o conteúdo ou o serviço digital tem de estar em conformidade durante todo esse período. O profissional responde por qualquer falta de conformidade que surja durante o período de fornecimento e não apenas pelo estado no momento da venda.

A diretiva trata depois as falhas de frente. As interrupções curtas do fornecimento devem ser tratadas como casos de falta de conformidade quando essas interrupções não são insignificantes ou quando se repetem. Leia essa cláusula com este fim de semana em mente: foi a segunda falha da Xbox em dois dias, e poucos dias antes tinha havido uma falha na PlayStation Network. O limiar não depende apenas da duração de um incidente isolado. A repetição é uma via autónoma para a mesma conclusão, e é precisamente a armadilha de um serviço com oscilações curtas e frequentes em vez de uma falha longa.

Estabelecida a falta de conformidade, o consumidor tem direito a que o serviço seja posto em conformidade e, se isso não acontecer, a uma redução proporcional do preço ou à resolução do contrato. Saber se uma falha concreta atravessa essa linha é uma questão de facto ligada às circunstâncias, e uma grande plataforma absorve-a. O que conta para um operador mais pequeno é que essa análise existe, e que é a sua receita de subscrições que está exposta a ela.

O teste a fazer esta semana no seu próprio produto

Comece por um inventário e não por um debate de arquitetura. Enumere cada ponto do seu produto em que uma ação do cliente espera por uma chamada à sua infra-estrutura para obter uma permissão e não um dado: ativação, validação de postos, interruptores de funcionalidade, atualização de direitos, pulsação de licença. Para cada um, escreva em linguagem simples o que o cliente vê quando essa chamada falha. As equipas ficam frequentemente surpreendidas, porque o caminho de erro foi escrito há anos por alguém que já saiu.

Depois corrija as duas coisas que são baratas de corrigir. Dê a cada verificação de licença um período de tolerância sem ligação, para que uma falha passageira degrade num atraso e não num bloqueio, e faça esse período suficientemente longo para cobrir uma noite má e não um minuto mau. Em segundo lugar, vigie o serviço de direitos de uso como uma dependência própria e visível para o cliente, com alerta próprio, e publique o seu estado onde os clientes o possam ver, porque durante uma falha é a ausência de informação que converte irritação em cancelamentos.

A Microsoft recupera disto antes do almoço e não perde nada de duradouro. Uma empresa portuguesa de software de dimensão média, com base de subscritores e uma verificação no arranque, não tem essa almofada. A lição de arquitetura sai de graça esta semana, que é a maneira mais económica de a aprender.