Przejdź do treści

Przejęcie projektu po innym programiście: dostępy, kod i ryzyka

Wykonawca przestał odbierać telefony albo zakończył współpracę. Aplikacja lub sklep dalej działa, ale nikt w firmie nie wie, gdzie leży kod, kto płaci za serwer i jak wprowadzić najmniejszą zmianę.

Autor: Szymon Łakomy. Aktualizacja:

Sytuacje, w których przejmuję projekt

Typowa sytuacja: freelancer zbudował aplikację albo sklep, rozliczył się i przestał odpowiadać na maile. System działa, dopóki nic się nie zepsuje, a pierwsza awaria albo wygasła domena pokazuje, że firma nie ma do niego kluczy. Nie oceniam poprzedniego wykonawcy, tylko sprawdzam, co da się odzyskać i w jakim stanie jest kod.

Dostępy, które trzeba odzyskać najpierw

DostępCzym grozi jego brakNa czyim koncie powinien być
Domena i DNSpo wygaśnięciu przestają działać strona i pocztafirmy, a wykonawca dostaje dodatkowe uprawnienia
Hosting lub serwernie wgrasz poprawki ani nie zrobisz kopiifirmy, z płatnością z firmowej karty lub na fakturę
Repozytorium koduzostaje tylko to, co leży na serwerze, bez historii zmiankonta organizacji firmy, na przykład w GitHubie
Baza danychbrak kopii i brak możliwości przeniesienia danychfirmy, z osobnym kontem dla każdego wykonawcy
Konta w App Store i Google Playnie opublikujesz nowej wersji aplikacji mobilnejfirmy jako wydawcy aplikacji
Klucze API i usługi zewnętrznemaile transakcyjne, mapy albo SMS-y stają po zamknięciu cudzego kontafirmy, a klucze wymieniam po przejęciu
Bramka płatnościwpłaty i zwroty zależą od konta, do którego nie masz wgląduzawsze firmy, nigdy wykonawcy

Przenoszenie aplikacji i domen między kontami ma własne procedury, które sprawdzam w dokumentacji usługi.

Hasła zbieram w jednym sejfie, a nie w arkuszu czy w mailu. Jak ułożyć to w zespole, opisuję w poradniku o firmowym menedżerze haseł.

Czy repozytorium zgadza się z serwerem

To pytanie zadaję zawsze, bo odpowiedź często brzmi „nie do końca”. Poprzedni programista mógł poprawiać pliki prosto na serwerze, trzymać część zmian u siebie albo wdrażać z niescalonej gałęzi. Porównuję więc pliki z serwera z ostatnią wersją w repozytorium, zestawiam strukturę bazy z migracjami w kodzie i szukam ustawień, które istnieją tylko na produkcji.

  • Kod się zgadza. Mogę od razu przejść do uruchomienia projektu u siebie.
  • Są różnice. Przenoszę zmiany z serwera do repozytorium, żeby nie zniknęły przy pierwszym wdrożeniu.
  • Repozytorium nie ma. Zabezpieczam pliki i bazę z serwera, zakładam nowe repozytorium i od tej kopii zaczynam pracę.

Uruchomienie u siebie i spis zależności

  1. Kopiuję kod i bazę na środowisko testowe, oddzielone od tego, z którego korzystają klienci.
  2. Odtwarzam zmienne środowiskowe i konfigurację, a brakujące wartości ustalam z paneli usług.
  3. Uruchamiam projekt i notuję każdy potrzebny krok. Z notatek powstaje instrukcja uruchomienia i jednostronicowy opis tego, co z czym się łączy.
  4. Spisuję zależności: framework, biblioteki, wersję języka i bazy oraz usługi zewnętrzne, z zaznaczeniem tych bez bieżących poprawek bezpieczeństwa.

Lista ryzyk i pierwsze tygodnie po przejęciu

Na start

Kopia kodu i bazy z próbą jej odtworzenia, zmiana haseł i kluczy znanych poprzedniemu wykonawcy, przepięcie płatności za domenę i serwer na firmę.

Kolejne tygodnie

Lista ryzyk od krytycznych: luki bezpieczeństwa, przestarzałe biblioteki, brak monitoringu. Poprawki w tej kolejności i powtarzalny sposób wdrażania zmian.

Dalej

Dopiero teraz nowe funkcje. Zmiana w kodzie, którego nikt jeszcze nie zna, łatwo psuje coś, co działało.

Kto ma prawa do kodu i kiedy to inny przypadek

Przy przejęciu ustal, czy firma może zmieniać kod i zlecać jego rozwój komuś innemu. Zależy to od umowy z poprzednim wykonawcą. Piszę o tym ogólnie, to nie jest porada prawna, a umowę pokaż prawnikowi. Tematy do spisania przy kolejnym zleceniu zebrałem w tekście o tym, co zapisać w umowie na wykonanie oprogramowania.

Program rozwijany latami, na przykład w Accessie albo Delphi, to raczej modernizacja starego oprogramowania. Aplikacja zbudowana w Lovable, Bolt czy Cursorze wymaga innego przeglądu, który opisuję w poradniku naprawa aplikacji napisanej przez AI.

Najczęstsze pytania

Co jeśli poprzedni wykonawca w ogóle nie odpowiada?

Zaczynam od faktur za domenę i hosting, bo wskazują, u kogo są usługi. Dostawcy zwykle mają procedurę odzyskania dostępu przez abonenta, którą sprawdzam u każdego z nich. Kod zabezpieczam z serwera, jeśli repozytorium jest niedostępne.

Czy poprzedni programista musi brać udział w przekazaniu?

Nie musi, ale godzina rozmowy z nim oszczędza sporo zgadywania. Przygotowuję wtedy listę konkretnych pytań: jak wdraża zmiany, gdzie trzyma kopie i które ustawienia istnieją tylko na serwerze.

Ile kosztuje przejęcie projektu?

Wycena po rozmowie. Najpierw przeglądam dostępy i kod, potem dostajesz listę ryzyk z propozycją kolejnych kroków. Dalsze prace zlecasz według tej listy, a nie w ciemno.

Czy przejmujesz też sklepy internetowe?

Tak, na gotowych platformach i pisane od podstaw. Przy sklepie dochodzą integracje z płatnościami, kurierami i programem do faktur, więc sprawdzam, na czyje konta je zarejestrowano i kto je utrzymuje.

Powiązane strony

Zostałeś z projektem bez wykonawcy?

Napisz, co to za system i do czego masz dziś dostęp. Odpowiem, od czego zacząć przejęcie.