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ęp | Czym grozi jego brak | Na czyim koncie powinien być |
|---|---|---|
| Domena i DNS | po wygaśnięciu przestają działać strona i poczta | firmy, a wykonawca dostaje dodatkowe uprawnienia |
| Hosting lub serwer | nie wgrasz poprawki ani nie zrobisz kopii | firmy, z płatnością z firmowej karty lub na fakturę |
| Repozytorium kodu | zostaje tylko to, co leży na serwerze, bez historii zmian | konta organizacji firmy, na przykład w GitHubie |
| Baza danych | brak kopii i brak możliwości przeniesienia danych | firmy, z osobnym kontem dla każdego wykonawcy |
| Konta w App Store i Google Play | nie opublikujesz nowej wersji aplikacji mobilnej | firmy jako wydawcy aplikacji |
| Klucze API i usługi zewnętrzne | maile transakcyjne, mapy albo SMS-y stają po zamknięciu cudzego konta | firmy, a klucze wymieniam po przejęciu |
| Bramka płatności | wpłaty i zwroty zależą od konta, do którego nie masz wglądu | zawsze 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
- Kopiuję kod i bazę na środowisko testowe, oddzielone od tego, z którego korzystają klienci.
- Odtwarzam zmienne środowiskowe i konfigurację, a brakujące wartości ustalam z paneli usług.
- Uruchamiam projekt i notuję każdy potrzebny krok. Z notatek powstaje instrukcja uruchomienia i jednostronicowy opis tego, co z czym się łączy.
- 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.