De ce codul trebuie să rămână al tău
Dependența de un furnizor rar este rea intenție: vine din felul în care e scris contractul și din cine deține conturile.
Momentul în care îți dai seama că ești legat de un furnizor nu e când lucrurile merg prost. E când merg bine și e nevoie de o modificare: ceri o ofertă, cifra nu se potrivește, te gândești să întrebi pe altcineva și descoperi că nu se poate. Codul stă într-un cont care nu e al tău, domeniul e pe numele lor, iar nimeni nu știe cum e făcută baza de date.
Aproape niciodată nu e o capcană pregătită dinainte. E rezultatul unor alegeri făcute din comoditate, una câte una, fără ca nimeni să le pună pe hârtie.
Cele patru lucruri de cerut înainte de a începe
Repository-ul e al tău. Pe numele firmei tale, cu furnizorul invitat ca colaborator — nu invers. Nu costă nimic în prima zi și devine imposibil de reparat în a suta.
Conturile sunt ale tale. Domeniu, găzduire, bază de date, servicii externe: înregistrate cu e-mailul firmei tale. Că parolele le ține cine lucrează la proiect e în regulă, atâta timp cât proprietarul contului ești tu.
Deciziile sunt documentate. Nu îți trebuie un manual: îți trebuie un fișier care explică cum se pornește proiectul, unde stau variabilele de mediu, de ce s-a ales baza aceea de date și ce se întâmplă când sosește o comandă. O jumătate de zi de muncă ce valorează luni la prima schimbare de furnizor.
Nicio bucată proprietară. Dacă lucrarea se sprijină pe o bibliotecă ce există doar în firma care ți-a construit-o, codul e al tău doar pe hârtie: nimeni altcineva nu poate umbla la el.
Testul de făcut
Unul singur, și se poate face oricând: dacă furnizorul tău ar dispărea mâine, ar reuși alt programator să preia lucrarea citind ce există?
Dacă răspunsul cere un telefon la cine a scris-o, lucrarea nu e terminată. Cunoașterea care stă doar în capul unei persoane nu e un avantaj pentru acea persoană: e un risc pentru tine și o povară pentru ea, pentru că va fi mereu singura care poate lucra la ea.
De ce spun asta ca furnizor
Pare contraintuitiv ca cine scrie software să îți explice cum să îl schimbi fără el. Motivul e practic: un client care rămâne pentru că nu poate pleca nu e un client mulțumit, e un client care pleacă imediat ce poate — iar între timp tratează fiecare ofertă ca pe un abuz.
Prefer ca cine lucrează cu mine să o facă pentru că lucrarea e făcută bine. E și singurul mod în care funcționează recomandarea din om în om, iar așa vin majoritatea proiectelor serioase.
Dacă ești deja înăuntru
Nu trebuie refăcut totul. Se începe cu conturile: deschizi conturi pe numele firmei și transferi domeniul și serviciile, unul câte unul. Apoi ceri o copie a codului și o pui într-un repository al tău — fie și doar ca arhivă. Apoi documentația minimă, care se poate comanda ca lucrare separată.
E genul de punere în ordine pe care nimeni nu o face până nu are nevoie. Făcută cât timp totul funcționează costă a zecea parte.