O programador deixou de responder. Talvez tenha seguido outro caminho, talvez a relação tenha acabado mal, talvez simplesmente tenha ficado calado. O software continua a funcionar, e é essa a parte que faz as pessoas esperar mais do que deviam - funciona, por isso ainda não é uma emergência.
É uma emergência. Todas as semanas que esperas caduca alguma coisa que não sabias que estava em nome de outra pessoa.
Verifica estas cinco coisas hoje
Não para a semana. Cada uma delas pode ser recuperada enquanto a conta ainda está viva e torna-se um problema legal caro assim que expira.
- O registrar do domínio. Procura o teu domínio num serviço WHOIS. Se o titular não és tu nem a tua empresa, não controlas o teu próprio endereço. É esta a coisa que fecha empresas.
- O DNS. Muitas vezes está num fornecedor diferente do registrar. Quem controla o DNS controla para onde vai o teu e-mail.
- O servidor ou a conta de alojamento. A que cartão é debitada? Um cartão caducado na conta de outra pessoa apaga-te o site com um e-mail automático que ninguém lê.
- O repositório de código. GitHub, GitLab, Bitbucket. Se nunca o viste, parte do princípio de que não o tens.
- As contas de terceiros. O serviço de pagamentos, o de faturação, o gateway de SMS, a analítica. Cada um é um acesso separado e cada um pode ser cancelado sem ti.
Escreve o que encontrares. Essa lista é o estado real da tua propriedade, e costuma ser pior do que o contrato sugere.
«O código é nosso» não é o mesmo que ser dono do sistema
Quase todos os contratos cedem os direitos de autor sobre o código-fonte, e quase todos os clientes leem isso como propriedade. É uma coisa mais pequena do que parece.
Ser dono do código significa que o podes usar e alterar legalmente. Não significa que tens uma cópia dele, que alguém o consiga pôr a correr, que as contas com que ele fala sejam tuas, ou que a pessoa que sabe porque foi construído assim seja obrigada a explicar. Já herdei sistemas em que o cliente tinha direitos de autor perfeitamente válidos sobre software de que não conseguia fazer deploy, num servidor a que não conseguia aceder, com chaves de API registadas num endereço de e-mail pessoal de uma empresa que já não existia.
A propriedade é uma lista de verificação, não uma cláusula.
O que costuma ser recuperável
Mais do que as pessoas receiam. O código ser desconhecido não é o mesmo que o código ser mau, e o software herdado tem uma fama que nem sempre merece - um sistema escrito por outra pessoa parece sempre pior do que um escrito por ti, porque não consegues ver o raciocínio.
O que decide mesmo é mais estreito do que a qualidade do código:
- Os dados estão intactos e podem ser exportados? É a única parte insubstituível. O código pode ser reescrito em semanas; cinco anos de registos de clientes não podem ser reconstruídos de todo.
- Ainda se consegue fazer deploy? Um sistema que ninguém consegue reconstruir a partir do código-fonte é um sistema a correr numa máquina que nunca podes reiniciar.
- As dependências ainda têm suporte? Uma framework três versões principais atrás é uma despesa, não um impedimento.
- As credenciais podem ser recuperadas? As chaves podem voltar a ser emitidas. O problema são as contas que as guardam.
Repara que nenhuma destas é «o código é elegante». Já estabilizei numa semana sistemas genuinamente feios porque os dados estavam limpos e o deploy funcionava, e já recomendei substituir sistemas arrumados onde nenhuma das duas coisas era verdade.
A resposta honesta é muitas vezes «menos do que pensas»
As pessoas chegam à espera de ouvir que é preciso refazer tudo, em parte porque foi isso que lhes disse quem fez o último orçamento. Às vezes é verdade. Mais vezes o sistema está sólido e o que falhou foi tudo à volta dele: ninguém conseguia fazer deploy, os backups nunca foram testados e uma única pessoa tinha todas as contas.
Isso é uma semana de trabalho e uma entrega, não uma reescrita. Prefiro dizer-te isso e ficar com uma semana de trabalho do que vender-te seis meses de que não precisavas - em parte porque é verdade, e em parte porque o cliente a quem foi dita a verdade é o que volta.
Como não voltares a estar aqui
Seja quem for que contratares a seguir, exige isto antes de ser escrita a primeira linha, e não no fim: todas as contas são criadas em teu nome, por ti, e o programador é adicionado a elas. Não transferidas na entrega. Criadas tuas desde o início.
Não custa nada, demora uma tarde, e é toda a diferença entre uma mudança de fornecedor e uma crise. Se um programador resistir a isto, aprendeste cedo uma coisa valiosa, enquanto aprendê-la ainda é barato.
O resto do padrão de entrega - documentação, testes, um deploy que a tua própria equipa consiga executar - está na minha página de serviços, e a razão por que me importo tanto com isto está na nota sobre quem usa realmente o teu software.