Oceniasz projekt informatyczny przed transakcją? Poznaj nasz audyt kodu i technical due diligence.

Przeczytaj także: DevSecOps w 2026: jak zintegrować bezpieczeństwo z pipeline’em

Technical due diligence oddziela opinie od faktów. Niezależnie od tego, czy przejmujesz firmę, inwestujesz w startup, wybierasz dostawcę, czy audytujesz wewnętrzny projekt, ta lista kontrolna daje systematyczne ramy oceny fundamentów technicznych. Każda sekcja zawiera konkretne punkty do sprawdzenia oraz wskazówki punktacji, które pozwalają ująć ryzyko w liczbach.

Obszar 1: Jakość kodu

Jakość kodu to najbardziej bezpośredni wskaźnik dyscypliny inżynierskiej. Czysty, dobrze ustrukturyzowany kod łatwiej utrzymać, rozwijać i debugować. Słaba jakość kodu zdradza nagromadzone skróty, których koszt będzie z czasem narastał.

Analiza automatyczna

  • Uruchom narzędzia analizy statycznej (SonarQube, ESLint, Pylint) — jaka jest ogólna ocena jakości?
  • Zmierz pokrycie kodu testami — jaki odsetek kodu obejmują testy automatyczne? (Punkt odniesienia: 60–80% to dobry wynik, poniżej 40% to czerwona flaga)
  • Sprawdź złożoność cyklomatyczną — wysoka złożoność oznacza kod trudny do zrozumienia i przetestowania
  • Wyszukaj duplikację kodu — powyżej 10% duplikacji sugeruje programowanie metodą „kopiuj-wklej”
  • Przeskanuj zależności pod kątem podatności — ile znanych CVE (publicznie zgłoszonych luk bezpieczeństwa) występuje w drzewie zależności?

Ręczny przegląd kodu

  • Oceń konwencje nazewnictwa — czy zmienne, funkcje i klasy mają jasne i spójne nazwy?
  • Oceń separację odpowiedzialności — czy logika biznesowa jest oddzielona od infrastruktury, warstwy prezentacji i dostępu do danych?
  • Sprawdź obsługę błędów — czy błędy są przechwytywane, logowane i obsługiwane w kontrolowany sposób, czy propagują się po cichu?
  • Oceń standardy kodowania — czy styl jest spójny, czy każdy plik wygląda, jakby napisał go ktoś inny?
  • Przejrzyj ostatnie commity — czy opisy commitów są sensowne? Czy pull requesty przechodzą review? Czy historia w gicie jest uporządkowana, czy chaotyczna?

Ocena długu technicznego

  • Zidentyfikuj komentarze TODO/FIXME/HACK — policz je i pogrupuj
  • Oceń backlog długu technologicznego — czy istnieje udokumentowana lista znanych problemów? Rośnie czy maleje?
  • Oceń rozkład wieku kodu — jaki odsetek kodu nie był modyfikowany od 2 lat lub dłużej?
  • Wyszukaj martwy kod — nieużywane funkcje, nieosiągalne gałęzie, zakomentowane bloki

Kod generowany przez AI

  • Ustal pochodzenie kodu — które części bazy kodu wygenerowali asystenci AI i czy takie użycie jest udokumentowane oraz objęte polityką?
  • Sprawdź pokrycie testami modułów wygenerowanych przez AI — czy są przetestowane co najmniej tak dobrze jak kod pisany ręcznie, czy trafiły do repozytorium bez testów?
  • Przejrzyj wygenerowany kod pod kątem „przecieku” licencji — czy może powielać fragmenty projektów open source o niezgodnych licencjach?
  • Przeskanuj wygenerowany kod pod kątem ujawnionych sekretów i niebezpiecznych wzorców — zaszytych na stałe danych logowania, kluczy API, wyłączonej walidacji (zobacz, dlaczego kod z AI tak często zawiera luki bezpieczeństwa)

Wskazówki punktacji:

  • Zielony (niskie ryzyko): pokrycie > 70%, brak krytycznych podatności, spójny styl, dług techniczny pod kontrolą
  • Żółty (umiarkowane ryzyko): pokrycie 40–70%, pojedyncze podatności, niespójny styl, rosnący dług techniczny
  • Czerwony (wysokie ryzyko): pokrycie < 40%, krytyczne podatności, brak standardów, przytłaczający dług techniczny

Obszar 2: Architektura

Architektura decyduje o tym, jak dobrze system może ewoluować, skalować się i integrować z otoczeniem. Dobra architektura sprawia, że zmiany są tanie. Słaba sprawia, że każda zmiana jest kosztowna i ryzykowna.

Projekt systemu

  • Udokumentuj architekturę wysokiego poziomu — czy zespół potrafi ją jasno wyjaśnić? Czy istnieje diagram?
  • Zidentyfikuj wzorzec architektoniczny — monolit, mikroserwisy, modularny monolit, architektura sterowana zdarzeniami? Czy wybór pasuje do złożoności systemu?
  • Oceń sprzężenie (coupling) — jak ściśle powiązane są komponenty? Czy da się zmienić jeden bez wpływu na pozostałe?
  • Oceń spójność (cohesion) — czy każdy komponent ma jedną, jasno określoną odpowiedzialność?
  • Sprawdź dryf architektoniczny — czy faktyczny kod odpowiada udokumentowanej architekturze?

Architektura danych

  • Udokumentuj model danych — czy jest znormalizowany, opisany i spójny?
  • Oceń wybór bazy danych — czy pasuje do charakteru danych (relacyjna, NoSQL, szeregi czasowe)?
  • Sprawdź strategię migracji danych — czy istnieje proces migracji schematu? Czy migracje są wersjonowane?
  • Oceń integralność danych — czy ograniczenia referencyjne są egzekwowane? Czy dane są walidowane na poziomie aplikacji?
  • Oceń kopie zapasowe i odtwarzanie — czy backupy są zautomatyzowane, testowane i możliwe do odtworzenia w zdefiniowanym RTO?

Architektura integracji

  • Zmapuj integracje zewnętrzne — API, usługi firm trzecich, kolejki komunikatów, transfery plików
  • Oceń odporność integracji — co się dzieje, gdy usługa zewnętrzna działa wolno lub jest niedostępna? (Circuit breakery, ponowienia, mechanizmy awaryjne)
  • Sprawdź wersjonowanie API — jak zarządza się zmianami łamiącymi zgodność wobec konsumentów?
  • Oceń przetwarzanie komunikatów — czy komunikaty są przetwarzane dokładnie raz, czy co najmniej raz? Czy zaimplementowano idempotentność?

Wskazówki punktacji:

  • Zielony: czytelna architektura, adekwatne wzorce, niskie sprzężenie, udokumentowany model danych
  • Żółty: częściowa dokumentacja, miejscami silne sprzężenie, niespójności w modelu danych
  • Czerwony: brak dokumentacji architektury, silnie sprzężony monolit, nieudokumentowany model danych

Obszar 3: Bezpieczeństwo

Ocena bezpieczeństwa wskazuje podatności, które mogą doprowadzić do wycieku danych, naruszenia przepisów lub zakłóceń w działaniu.

Bezpieczeństwo aplikacji

  • Przeprowadź skan SAST — ile jest podatności krytycznych i wysokich?
  • Przeprowadź skan DAST — czy w działającej aplikacji są podatności możliwe do wykorzystania?
  • Sprawdź pokrycie OWASP Top 10 — wstrzykiwanie kodu, błędy uwierzytelniania, ujawnianie danych wrażliwych, XXE, błędy kontroli dostępu
  • Oceń implementację uwierzytelniania — algorytm haszowania haseł, zarządzanie sesjami, obsługa MFA
  • Przejrzyj model autoryzacji — czy kontrola dostępu opiera się na rolach czy na atrybutach? Czy uprawnienia są egzekwowane konsekwentnie?
  • Zweryfikuj zobowiązania wynikające z licencji open source — czy w oprogramowaniu dystrybuowanym lub dostarczanym jako SaaS jest kod na licencjach copyleft (GPL, AGPL), które wymuszają udostępnienie kodu źródłowego? Czy zobowiązania licencyjne są śledzone w SBOM (wykazie składników oprogramowania)?

Bezpieczeństwo infrastruktury

  • Przejrzyj architekturę sieci — czy systemy produkcyjne działają w prywatnych podsieciach? Czy ruch przychodzący i wychodzący jest kontrolowany?
  • Sprawdź szyfrowanie danych — czy dane są szyfrowane w spoczynku i w transmisji? Jakie algorytmy i jakie zarządzanie kluczami?
  • Oceń zarządzanie sekretami — czy dane uwierzytelniające są przechowywane w kodzie, w zmiennych środowiskowych, czy w menedżerze sekretów?
  • Przejrzyj kontrolę dostępu — kto ma dostęp do produkcji? Czy dostęp jest logowany? Czy MFA jest wymuszone?
  • Sprawdź monitoring bezpieczeństwa — wykrywanie włamań, analiza logów, alerty o podejrzanej aktywności

Zgodność z regulacjami

  • Zidentyfikuj obowiązujące regulacje (RODO, SOC 2, HIPAA, PCI-DSS)
  • Oceń praktyki prywatności danych — przetwarzanie danych osobowych, zarządzanie zgodami, polityki retencji danych
  • Sprawdź ścieżkę audytu — czy krytyczne działania są logowane z tożsamością użytkownika, znacznikiem czasu i szczegółami operacji?
  • Przejrzyj plan reagowania na incydenty — czy istnieje? Czy był testowany?

Wskazówki punktacji:

  • Zielony: brak krytycznych podatności, silne uwierzytelnianie, szyfrowanie wszędzie, gotowość do audytu zgodności
  • Żółty: pojedyncze podatności (bez krytycznych), częściowe szyfrowanie, luki w zgodności
  • Czerwony: krytyczne podatności, słabe uwierzytelnianie, sekrety otwartym tekstem, brak ram zgodności

Obszar 4: Skalowalność i wydajność

Skalowalność przesądza o tym, czy system udźwignie wzrost bez proporcjonalnego wzrostu kosztów lub przepisywania architektury.

Bieżąca wydajność

  • Przejrzyj metryki wydajności — czasy odpowiedzi (p50, p95, p99), przepustowość, odsetek błędów
  • Sprawdź wykorzystanie zasobów — CPU, pamięć, dysk i sieć przy obecnym obciążeniu
  • Zidentyfikuj wąskie gardła — zapytania do bazy danych, wywołania zewnętrznych API, operacje intensywne obliczeniowo
  • Oceń strategię cache’owania — co, gdzie i jak jest buforowane oraz jak rozwiązano unieważnianie cache’u?

Architektura skalowalności

  • Oceń poziomą skalowalność — czy aplikację da się skalować przez dodawanie instancji, czy wymaga skalowania pionowego?
  • Sprawdź skalowalność bazy danych — repliki do odczytu, pule połączeń, optymalizacja zapytań, gotowość do shardingu
  • Oceń bezstanowość — czy dowolna instancja może obsłużyć dowolne żądanie, czy wymagane jest przypisanie sesji do instancji?
  • Przejrzyj konfigurację autoskalowania — czy system skaluje się automatycznie w zależności od obciążenia?

Testy obciążeniowe i przeciążeniowe

  • Czy przeprowadzono testy obciążeniowe? Jakie były wyniki?
  • Jaka jest maksymalna przetestowana przepustowość? Jak ma się do prognozowanego szczytowego obciążenia?
  • Jak system zachowuje się przy przeciążeniu — degraduje się w kontrolowany sposób czy ulega awarii kaskadowej?
  • Ile trwa powrót do normalnego działania po przeciążeniu?

Wskazówki punktacji:

  • Zielony: skalowanie poziome, przeprowadzone testy obciążeniowe, skonfigurowane autoskalowanie, 3-krotny zapas ponad obecny szczyt
  • Żółty: wyłącznie skalowanie pionowe, ograniczone testy obciążeniowe, ręczne skalowanie, 1,5-krotny zapas
  • Czerwony: brak możliwości skalowania bez przebudowy architektury, brak testów obciążeniowych, system na granicy wydajności

Obszar 5: Zespół i procesy

Technologia jest tak dobra, jak zespół, który ją buduje i utrzymuje. Ocena zespołu pokazuje, czy organizacja jest w stanie utrzymać i rozwijać system.

Skład zespołu

  • Zmapuj zespół — role, poziomy doświadczenia, staż, obszary odpowiedzialności
  • Zidentyfikuj zależność od kluczowych osób — czy krytyczna wiedza jest skupiona w jednej lub dwóch osobach?
  • Policz bus factor dla krytycznych modułów — ile osób musiałoby odejść, żeby nikt nie rozumiał danej części systemu?
  • Oceń stabilność zespołu — rotacja w ciągu ostatnich 12 miesięcy
  • Oceń proces rekrutacji — ile czasu zajmuje obsadzenie wolnego stanowiska?

Proces wytwórczy

  • Oceń dojrzałość CI/CD — zautomatyzowany pipeline budowania, testowania i wdrażania
  • Przejrzyj strategię gałęzi — czy obowiązuje spójny workflow (GitFlow, trunk-based)?
  • Sprawdź praktyki przeglądu kodu — czy każda zmiana jest przeglądana przed scaleniem? Jaka jest jakość tych przeglądów?
  • Oceń proces wydań — jak często trafiają wdrożenia na produkcję? Ile czasu mija od commita do produkcji?

Zarządzanie wiedzą

  • Oceń dokumentację projektową — dokumentacja architektury i API, przewodnik wdrożeniowy dla nowych osób, runbooki
  • Sprawdź dokumentację w kodzie — czy złożone funkcje są opisane? Czy istnieje dokumentacja referencyjna API?
  • Oceń onboarding — ile czasu potrzebuje nowy programista, żeby wnieść pierwszy istotny wkład?
  • Przejrzyj praktyki dzielenia się wiedzą — prezentacje techniczne, kultura dokumentowania, programowanie w parach

Wskazówki punktacji:

  • Zielony: pełny zespół, brak pojedynczych punktów awarii, dojrzałe CI/CD, kompletna dokumentacja
  • Żółty: częściowa zależność od kluczowych osób, podstawowe CI/CD, częściowa dokumentacja
  • Czerwony: silna zależność od kluczowych osób, procesy ręczne, szczątkowa dokumentacja

Szablon podsumowania ocen

ObszarWagaOcena (1–5)Wynik ważonyKluczowe ustalenia
Jakość kodu20%__
Architektura25%__
Bezpieczeństwo20%__
Skalowalność15%__
Zespół i procesy20%__
Razem100%_ / 5,0

Interpretacja:

  • 4,0–5,0: niskie ryzyko — system jest dobrze zbudowany i łatwy w utrzymaniu
  • 3,0–3,9: umiarkowane ryzyko — wybrane obszary wymagają inwestycji, ale nie ma blokerów
  • 2,0–2,9: wysokie ryzyko — znaczący dług techniczny, którego spłata będzie wymagała dużego budżetu
  • Poniżej 2,0: ryzyko krytyczne — fundamentalne problemy, które mogą wymagać przebudowy architektury lub napisania systemu od nowa

Kiedy zlecić audyt zewnętrzny

Część tej listy możesz przejść samodzielnie, ale w kilku sytuacjach niezależna ocena się opłaca:

  • Przed przejęciem lub inwestycją — gdy od wyników zależy decyzja, ocena musi być obiektywna, a oceniający nie mogą mieć interesu w jej wyniku.
  • Gdy zespół miałby oceniać własny kod — wewnętrzne przeglądy rzadko dostrzegają własne słabe punkty, a ich wnioski mają mniejszą wagę dla inwestorów i zarządu.
  • Przed przejęciem systemu od dostawcy — zanim zaakceptujesz przekazanie, musisz znać rzeczywisty stan kodu, bezpieczeństwa i dokumentacji.
  • Gdy w firmie brakuje kompetencji w zakresie architektury, bezpieczeństwa lub DevOps, by przeprowadzić te kontrole z pełnym przekonaniem.

Nasz pakiet Technical Due Diligence obejmuje pełny audyt kodu, a dodatkowo zespół i procesy, skalowalność, licencje open source oraz ryzyka istotne dla inwestora. Trwa 2–3 tygodnie, a jego cena zaczyna się od 35 000 PLN. Jeśli potrzebujesz wyłącznie oceny na poziomie kodu — jakości, bezpieczeństwa i długu technicznego — Audyt kondycji kodu trwa 1–2 tygodnie i kosztuje od 18 000 PLN.

Jak ARDURA Consulting wspiera technical due diligence

Technical due diligence wymaga doświadczonych inżynierów, którzy szybko i obiektywnie ocenią kod, architekturę i praktyki zespołu — a takie kompetencje trudno pozyskać na krótkie zlecenie.

  • Ponad 500 seniorów z obszarów architektury oprogramowania, inżynierii bezpieczeństwa, DevOps i zapewniania jakości — dostępnych w ciągu 2 tygodni
  • Stawki o około 35-55% niższe niż średnia stawka freelancera IT w Niemczech, z elastycznością od jednorazowych ocen po stałe doradztwo techniczne
  • 99% klientów zostaje z nami — inżynierowie dostarczają szczere, praktyczne oceny zamiast ogólników
  • Ponad 211 zrealizowanych projektów — oceniający, którzy widzieli dobre i złe rozwiązania w dziesiątkach stosów technologicznych i branż

Niezależnie od tego, czy potrzebujesz oceny o stałym zakresie w harmonogramie transakcji M&A, czy stałego doradztwa technicznego dla spółek portfelowych, ARDURA Consulting zapewnia inżynierską głębię, która zamienia ustalenia due diligence w świadome decyzje.