Jakub Stankowski – programowanie z AI

O autorze

Jakub Stankowski – programista .NET i Angular od 2018 roku. Pracował nad projektami frontendowymi, backendowymi i fullstackowymi, przestrzegając zasad czystego kodu, DRY i stosując CQRS. Ma również doświadczenie jako trener programowania.

Od 2023 roku intensywnie pracuje z Claude AI oraz metodą Spec-Driven Development (SDD) – produkcyjnym workflow do pracy z AI opartym na zasadzie: najpierw specyfikacja, potem implementacja. Na ProgramujZAI.pl dzieli się praktyczną wiedzą o tym, jak programować z AI bez chaosu w kodzie.

Poznaj Jakuba →

Spec Driven Development sprawdza się tam, gdzie liczy się przewidywalność, kontrola nad architekturą i praca w zespole — Vibe Coding tam, gdzie priorytetem jest szybkość eksploracji pomysłu i prototyp, który i tak trafi do kosza. Przy pracy z asystentami AI wybór między tymi metodami nie jest kwestią gustu, tylko etapu projektu, w którym się znajdujesz. Poniżej pokazuję, czym różnią się obie metody w praktyce, kiedy każda z nich zawodzi i jak w realnym projekcie łączyć obie, zamiast wybierać jedną na zawsze.

Najważniejsze informacje:

  • Spec Driven Development (SDD) to metoda, w której specyfikacja funkcjonalna powstaje przed wygenerowaniem kodu — AI implementuje względem gotowego planu, nie improwizuje.
  • Vibe Coding to iteracyjna praca z AI bez formalnej specyfikacji — programista opisuje intencję w naturalnym języku i akceptuje lub odrzuca kolejne propozycje na bieżąco.
  • SDD redukuje ryzyko regresji i długu technicznego, ale wydłuża czas do pierwszego działającego prototypu.
  • Vibe Coding skraca czas eksploracji pomysłu, ale generuje kod trudniejszy do utrzymania i skalowania w zespole.
  • Najskuteczniejsze podejście w realnych projektach to hybryda: Vibe Coding do walidacji koncepcji, SDD do wdrożenia produkcyjnego.

Spis treści

Spec Driven Development to praca od specyfikacji, nie od promptu

Spec Driven Development odwraca kolejność, do której przyzwyczaił nas Vibe Coding: najpierw powstaje pisemna specyfikacja — co ma robić funkcja, jakie są jej warunki brzegowe, jak wygląda kontrakt danych wejściowych i wyjściowych — a dopiero potem AI generuje kod względem tego dokumentu. Specyfikacja pełni rolę kontraktu między programistą a modelem: model nie zgaduje intencji, tylko realizuje zapisany plan.

W mojej praktyce specyfikacja nie musi być rozbudowanym dokumentem wymagań w stylu korporacyjnym. To zwykle plik tekstowy z jasno opisanym zakresem zadania, listą przypadków brzegowych i oczekiwanym zachowaniem systemu — na tyle konkretny, żeby AI nie musiało domyślać się kontekstu, którego nie ma.

Kluczowa różnica względem klasycznego pisania wymagań polega na tym, że specyfikacja w SDD jest tworzona razem z AI, a nie tylko dla niego — model pomaga wychwycić luki logiczne i przypadki brzegowe, zanim jeszcze powstanie pierwsza linijka kodu.

Vibe Coding to iteracja bez formalnego planu

Vibe Coding polega na opisaniu intencji w naturalnym języku i akceptowaniu lub odrzucaniu kolejnych sugestii AI w czasie rzeczywistym, bez wcześniej spisanej specyfikacji. Programista prowadzi rozmowę z modelem, testuje wygenerowany kod natychmiast i koryguje kierunek na bieżąco — proces przypomina bardziej sesję parowania z bardzo szybkim, ale niepamiętającym kontekstu współpracownikiem.

Termin spopularyzował się jako określenie stylu pracy, w którym liczy się tempo i eksploracja, a nie precyzja dokumentacji. To podejście świetnie sprawdza się przy walidacji pomysłu, prototypach jednorazowych i nauce nowego API — sytuacjach, w których koszt błędu jest niski, a koszt formalizowania specyfikacji byłby nieproporcjonalny do wartości efektu.

Problem pojawia się, gdy Vibe Coding zostaje jedyną metodą pracy w projekcie, który ma żyć dłużej niż tydzień — brak specyfikacji oznacza brak wspólnego punktu odniesienia dla całego zespołu, a każda kolejna sesja z AI zaczyna się od zera.

SDD i Vibe Coding różnią się przede wszystkim poziomem kontroli

Poniższa tabela zestawia obie metody względem kryteriów, które w praktyce decydują o wyborze podejścia do konkretnego zadania.

Kryterium Spec Driven Development Vibe Coding
Kontrola nad kodem Wysoka — kod odpowiada spisanej specyfikacji Niska — kod zależy od bieżących decyzji w rozmowie
Szybkość pierwszego efektu Wolniejsza — czas na specyfikację przed kodem Bardzo szybka — kod powstaje od razu
Ryzyko regresji Niskie — zmiany testowane względem kontraktu Wysokie — brak formalnego punktu odniesienia
Skalowalność w zespole Wysoka — specyfikacja jako wspólny dokument Niska — wiedza zostaje w historii czatu jednej osoby
Najlepsze zastosowanie Kod produkcyjny, funkcje długoterminowe Prototypy, eksploracja, nauka narzędzia

Spec Driven Development opłaca się przy pracy zespołowej i kodzie długoterminowym

SDD ma sens wszędzie tam, gdzie kod generowany przez AI trafia bezpośrednio do repozytorium, które będzie utrzymywane przez miesiące lub lata. Specyfikacja staje się wtedy dokumentacją decyzji projektowych — kolejny programista, także ten wspierany przez AI, nie musi odtwarzać kontekstu z historii commitów.

Metoda sprawdza się szczególnie dobrze w trzech sytuacjach:

  • Refaktoryzacja krytycznych modułów — specyfikacja wymusza opisanie obecnego i docelowego zachowania, zanim AI dotknie kodu, co ogranicza ryzyko cichej zmiany logiki biznesowej.
  • Praca zespołowa z wieloma developerami korzystającymi z AI — bez wspólnej specyfikacji każdy programista dostaje inną interpretację tego samego zadania od modelu.
  • Integracje z zewnętrznymi kontraktami danych — API, formaty wymiany danych czy zgodność z regulacjami wymagają precyzji, której rozmowa w stylu Vibe Coding nie gwarantuje.

Vibe Coding wygrywa przy prototypach i niskim koszcie błędu

Vibe Coding sprawdza się tam, gdzie formalizowanie specyfikacji pochłonęłoby więcej czasu niż samo napisanie kodu — a to dotyczy głównie wczesnej fazy projektu, zanim jeszcze wiadomo, czy pomysł ma sens.

  • Walidacja pomysłu (proof of concept) — liczy się odpowiedź na pytanie „czy to w ogóle zadziała”, a nie jakość finalnego kodu.
  • Nauka nowego narzędzia lub biblioteki — eksperymentowanie z API w rozmowie z AI jest szybsze niż czytanie dokumentacji linia po linii.
  • Skrypty jednorazowe — narzędzia pomocnicze, które zostaną użyte raz i nigdy nie trafią do repozytorium produkcyjnego.

Ryzyko pojawia się, gdy prototyp z sesji Vibe Coding zostaje „tymczasowo” wdrożony na produkcję — w mojej praktyce to najczęstsza droga do długu technicznego, którego nikt świadomie nie zaakceptował.

Jak wdrożyć to w praktyce

W realnych projektach obie metody działają najlepiej razem, nie osobno — poniższy proces pokazuje, jak przechodzić między nimi bez utraty tempa pracy.

  1. Zacznij zadanie w trybie Vibe Coding, jeśli nie masz jeszcze pewności co do kształtu rozwiązania — pozwól AI zaproponować kilka podejść w swobodnej rozmowie.
  2. W momencie, gdy kierunek się wyklaruje, zatrzymaj się i spisz specyfikację na bazie tego, co już ustaliłeś z AI — to znacznie szybsze niż pisanie jej od zera, bo model już zna kontekst zadania.
  3. Poproś AI o wskazanie luk i przypadków brzegowych w spisanej specyfikacji, zanim przejdziesz do właściwej implementacji — to krok, który najczęściej ujawnia błędy założeń.
  4. Zaimplementuj kod względem zatwierdzonej specyfikacji, traktując ją jako źródło prawdy — jeśli podczas implementacji pojawia się rozbieżność, aktualizujesz specyfikację, a nie tylko kod.
  5. Przechowuj specyfikację w repozytorium obok kodu, żeby przy kolejnej zmianie AI i zespół mieli wspólny punkt odniesienia zamiast odtwarzać kontekst za każdym razem od nowa.

Jeśli chcesz mieć gotowy, sprawdzony w praktyce szablon takiego workflow — od pierwszej rozmowy z AI po finalną specyfikację gotową do implementacji — przygotowałem darmowy materiał do pobrania: standev.it/ai-workflow-bonus.

FAQ — najczęstsze pytania

Czy Spec Driven Development jest wolniejszy od Vibe Codingu?

Na poziomie pojedynczego zadania — tak, bo czas idzie w przygotowanie specyfikacji zanim powstanie kod. W skali całego projektu jest zwykle szybszy, bo eliminuje cykle poprawek wynikające z błędnej interpretacji intencji przez AI.

Czy można łączyć SDD i Vibe Coding w jednym projekcie?

Tak, i w praktyce to najczęstszy scenariusz — Vibe Coding do eksploracji i prototypowania, SDD do wszystkiego, co trafia na produkcję. Granica przebiega w momencie, w którym kod przestaje być jednorazowy.

Czy Vibe Coding nadaje się do pracy zespołowej?

Słabo, bo kontekst decyzji zostaje w historii rozmowy jednej osoby z AI, a nie w dokumencie dostępnym dla całego zespołu. Przy więcej niż jednym programiście korzystającym z AI nad tym samym modułem SDD staje się praktycznie koniecznością.

Jak zacząć z Spec Driven Development bez nadmiernej biurokracji?

Zacznij od krótkiego pliku tekstowego z opisem zadania, listą przypadków brzegowych i oczekiwanym zachowaniem — specyfikacja nie musi mieć formy formalnego dokumentu wymagań, żeby spełniać swoją funkcję kontraktu z AI.

Podsumowanie

Spec Driven Development i Vibe Coding nie konkurują ze sobą — odpowiadają na różne pytania na różnych etapach projektu. Vibe Coding daje tempo tam, gdzie liczy się eksploracja i niski koszt błędu, a SDD daje kontrolę tam, gdzie kod ma żyć dłużej niż jedna sesja z AI. Świadomy wybór metody względem etapu pracy, a nie przywiązanie do jednej z nich, to realna różnica między szybkim prototypem a kodem, który utrzymasz za pół roku.

Jeśli chcesz zobaczyć więcej materiałów o pracy z AI w programowaniu, zajrzyj na mój kanał YouTube albo pobierz darmowy workflow SDD na standev.it/ai-workflow-bonus.


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *