O contexto
Uma editora fornece soluções de televisão e vídeo a pedido a operadores de telecomunicações em vários países. Cada operador quer a sua aplicação, com a sua marca, o seu catálogo e as suas particularidades locais — mas nenhum quer pagar o desenvolvimento completo de uma aplicação de raiz.
O desafio
É um problema clássico e raramente bem resolvido: como servir N clientes com uma só base de código sem que cada novo cliente parta os anteriores?
Os dois fracassos habituais são conhecidos. Ou se duplica o projeto por operador, e ao fim de quatro declinações já ninguém sabe que correção foi aplicada onde. Ou se empilham condições num tronco comum, e o código torna-se ilegível.
A isto acrescia uma restrição de terreno: estas aplicações correm em redes e aparelhos que não se parecem com os da Europa Ocidental. Largura de banda variável, parque de aparelhos antigo, restrições de custo de dados do lado do utilizador.
O que fizemos
- Uma biblioteca partilhada que reúne o que não muda de um operador para o outro: leitura dos fluxos, navegação no catálogo, gestão de sessão, componentes de interface comuns.
- Aplicações por operador construídas sobre essa biblioteca, contendo apenas o que lhes é realmente próprio — identidade visual, catálogo, particularidades locais.
- Uma medição de audiência auto-alojada, em vez de um serviço de terceiros. Neste tipo de produto, saber o que é visto é estratégico para o operador: os dados ficam com ele.
- Versões para televisão ligada, com as restrições próprias desse suporte: navegação por comando à distância, legibilidade a três metros, sem introdução de texto confortável.
O resultado
Várias aplicações de operadores entregues a partir de uma base comum, mantidas em paralelo ao longo de três anos.
A lição deste tipo de projeto é fácil de enunciar e difícil de cumprir: a fronteira entre a base e a declinação tem de ser decidida cedo e defendida depois. Sempre que uma particularidade de um operador sobe ao tronco comum «só desta vez», é a base que paga a fatura nos anos seguintes.
Imagens
Cliente abrangido por um acordo de confidencialidade