Programatorul nu mai răspunde. Poate a plecat mai departe, poate relația s-a terminat urât, poate pur și simplu a tăcut. Software-ul încă merge, și tocmai asta îi face pe oameni să aștepte mai mult decât ar trebui - funcționează, deci încă nu e o urgență.
Este o urgență. În fiecare săptămână în care aștepți expiră ceva despre care nu știai că e pe numele altcuiva.
Verifică azi aceste cinci lucruri
Nu săptămâna viitoare. Fiecare dintre ele poate fi recuperat cât timp contul e activ și devine o problemă juridică scumpă odată ce a expirat.
- Registrarul de domeniu. Caută-ți domeniul într-un serviciu WHOIS. Dacă titularul nu ești tu sau firma ta, nu-ți controlezi propria adresă. Ăsta e cel care închide firme.
- DNS-ul. Adesea la alt furnizor decât registrarul. Cine controlează DNS-ul controlează unde ajunge e-mailul tău.
- Serverul sau contul de găzduire. Pe cardul cui se facturează? Un card expirat pe contul altcuiva îți șterge site-ul printr-un e-mail automat pe care nu-l citește nimeni.
- Repository-ul de cod. GitHub, GitLab, Bitbucket. Dacă nu l-ai văzut niciodată, presupune că nu-l ai.
- Conturile la terți. Procesatorul de plăți, serviciul de facturare, gateway-ul de SMS, analytics-ul. Fiecare e un cont separat și fiecare poate fi anulat fără tine.
Scrie ce găsești. Lista aia e starea reală a proprietății tale și de obicei e mai proastă decât sugerează contractul.
„Deținem codul” nu e același lucru cu a deține sistemul
Majoritatea contractelor cedează drepturile de autor asupra codului sursă, iar majoritatea clienților citesc asta ca proprietate. E un lucru mai mic decât sună.
Să deții codul înseamnă că îl poți folosi și modifica legal. Nu înseamnă că ai o copie a lui, că îl poate rula cineva, că sunt ale tale conturile cu care vorbește sau că omul care știe de ce a fost construit așa e obligat să explice. Am preluat sisteme în care clientul avea drepturi de autor perfect valabile pe un software pe care nu-l putea pune în producție, pe un server la care nu avea acces, cu chei de API înregistrate pe o adresă de e-mail personală, la o firmă care nu mai exista.
Proprietatea e o listă de verificat, nu o clauză.
Ce se poate salva de obicei
Mai mult decât se tem oamenii. Faptul că nu cunoști codul nu e același lucru cu un cod prost, iar software-ul moștenit are o reputație pe care n-o merită întotdeauna - un sistem scris de altcineva va arăta mereu mai rău decât unul scris de tine, pentru că nu vezi raționamentul din spate.
Ce decide cu adevărat e mai îngust decât calitatea codului:
- Datele sunt intacte și se pot exporta? Asta e singura parte de neînlocuit. Codul poate fi rescris în câteva săptămâni; cinci ani de evidențe ale clienților nu se pot reconstitui deloc.
- Se mai poate face deploy? Un sistem pe care nimeni nu-l mai poate reconstrui din sursă e un sistem care rulează pe o mașină pe care n-ai voie s-o repornești niciodată.
- Dependențele mai sunt susținute? Un framework rămas în urmă cu trei versiuni majore e un buget, nu un blocaj.
- Cheile și parolele se pot recupera? Cheile pot fi reemise. Problema sunt conturile care le țin.
Observă că niciuna dintre ele nu e „e codul elegant?”. Am stabilizat în câte o săptămână sisteme sincer urâte, pentru că datele erau curate și deploy-ul mergea, și am recomandat înlocuirea unora ordonate, unde nu era adevărat niciunul dintre cele două.
Răspunsul onest e adesea „mai puțin decât crezi”
Oamenii vin așteptându-se să audă că totul trebuie refăcut, în parte pentru că asta le-a spus ultimul care le-a dat o ofertă. Uneori e adevărat. Mai des sistemul e solid și ce a cedat a fost tot ce era în jurul lui: nimeni nu putea face deploy, backupurile nu fuseseră testate niciodată și un singur om ținea toate conturile.
Asta înseamnă o săptămână de muncă și o predare, nu o rescriere. Prefer să-ți spun asta și să iau o săptămână de muncă decât să-ți vând șase luni de care n-aveai nevoie - în parte pentru că e adevărat, în parte pentru că clientul căruia i s-a spus adevărul e cel care se întoarce.
Cum să nu mai ajungi aici
Oricine ar fi următorul pe care îl angajezi, insistă pe asta înainte să fie scrisă prima linie, nu la final: fiecare cont e creat pe numele tău, de tine, iar programatorul e adăugat la el. Nu transferat la predare. Creat al tău de la început.
Nu costă nimic, durează o după-amiază și e toată diferența dintre o schimbare de furnizor și o criză. Dacă un programator se opune, ai aflat devreme ceva valoros, cât timp e încă ieftin de aflat.
Restul standardului de predare - documentație, teste, un deploy pe care îl poate rula propria ta echipă - e pe pagina de servicii, iar motivul pentru care țin atât de mult la el e în nota despre cine folosește de fapt software-ul tău.