Pojedyncze polecenie kontra przepływ agenta: jak wybrać
Pojedyncze polecenie kontra przepływ agenta — dowiedz się, kiedy wystarczy jedno polecenie, a kiedy warto podzielić pracę na planowanie, kodowanie, testowanie i refaktoryzację.

Co możesz wybrać
Pojedyncze polecenie to jedno duże polecenie, które dajesz modelowi, prosząc o pełny wynik od razu. Opisujesz cel, ograniczenia i format, i oczekujesz kompletnego rezultatu: planu, kodu, tekstu lub rozwiązania.
Przepływ pracy (często nazywany przepływem agenta) dzieli to samo zadanie na mniejsze kroki. Jeden krok planuje, inny pisze kod, jeszcze inny sprawdza go, a kolejny refaktoryzuje lub naprawia problemy. Praca nadal jest wykonywana przez AI, ale jest etapowana, dzięki czemu możesz przeglądać i kierować nią po drodze.
Prawdziwa decyzja nie dotyczy „lepszego AI”. Chodzi o kompromis, jaki chcesz między szybkością, niezawodnością i kontrolą.
Pojedyncze polecenie jest zwykle najszybsze. Pasuje, gdy możesz szybko ocenić wynik, a koszt drobnego błędu jest niski. Jeśli coś pominie, uruchamiasz ponownie z jaśniejszym poleceniem.
Przepływ etapowy jest wolniejszy na jedną rundę, ale często wygrywa, gdy błędy są kosztowne lub trudne do zauważenia. Podzielenie pracy na kroki ułatwia wychwycenie braków, potwierdzenie założeń i utrzymanie zgodności z zasadami.
Prosty sposób porównania:
- Szybkość: jedno duże polecenie jest zwykle najszybsze.
- Niezawodność: kroki etapowe redukują ciche błędy.
- Kontrola: punkty kontrolne dają więcej okazji do kierowania.
- Powtarzalność: przepływy łatwiej ponownie wykorzystać w zadaniach i w zespole.
To ma największe znaczenie dla budujących i zespołów wprowadzających funkcje. Jeśli piszesz kod produkcyjny, zmieniasz bazę danych lub dotykasz uwierzytelniania i płatności, dodatkowa weryfikacja z przepływu zazwyczaj się opłaca.
Jeśli korzystasz z platformy vibe-coding takiej jak Koder.ai, ten podział staje się praktyczny: możesz najpierw zaplanować, wygenerować zmiany w React i Go, a potem zrobić skoncentrowany przegląd lub refaktoryzację przed eksportem lub wdrożeniem.
Kiedy pojedyncze polecenie działa dobrze
Pojedyncze polecenie jest najszybszą opcją, gdy zadanie jest małe, zasady są jasne, a wynik można szybko ocenić.
Sprawdza się, gdy chcesz jednego czystego rezultatu, nie procesu. Pomyśl o „solidnym szkicu z drobnymi poprawkami”, gdzie błędy są tanie.
Dobre dopasowania to krótkie zadania pisarskie (email, krótki opis produktu, streszczenie spotkania), małe zadania generowania pomysłów (nazwy, kilka testów jednostkowych dla funkcji, pytania FAQ), lub transformacje tekstu (przepisanie, streszczenie, zmiana tonu). Działa też dla małych fragmentów kodu, które możesz ocenić wzrokowo, jak regex czy mała funkcja pomocnicza.
Pojedyncze polecenie działa też, gdy możesz podać cały kontekst z góry: wejścia, wymagany format i jeden lub dwa przykłady. Model nie musi zgadywać.
Gdzie zawodzi, też jest przewidywalne. Jedno duże polecenie może ukryć założenia: jakie typy są dozwolone, co robić przy błędach, co oznacza „bezpieczne”, co uważasz za „gotowe”. Może pominąć przypadki brzegowe, bo próbuje zadowolić wszystko naraz. A gdy wynik jest nieprawidłowy, trudniej go debugować, bo nie wiesz, która część polecenia spowodowała błąd.
Prawdopodobnie przeciążasz pojedyncze polecenie, jeśli ciągle dodajesz klauzule „także” i „nie zapomnij”, jeśli wynik wymaga dokładnych testów (nie tylko przeczytania), lub jeśli musisz prosić o przeróbkę dwa lub trzy razy.
Jako praktyczny przykład: poproszenie o „stronę logowania w React” często wystarcza w jednym poleceniu. Poproszenie o „stronę logowania z walidacją, ograniczeniem częstotliwości, dostępnością, testami i planem rollbacku” to sygnał, że chcesz oddzielnych kroków lub ról.
Kiedy przepływ pracy jest lepszym wyborem
Przepływ zwykle lepiej się sprawdza, gdy potrzebujesz nie tylko odpowiedzi, lecz pracy, której możesz zaufać. Jeśli zadanie ma wiele ruchomych części, jednoetapowe polecenie może rozmyć intencję i ukryć błędy aż do końca.
Jest najsilniejsze, gdy wynik musi być poprawny, spójny i łatwy do przeglądu. Podzielenie pracy na role sprawia, że jasne jest, co oznacza „gotowe” na każdym etapie, więc możesz wyłapywać problemy wcześnie zamiast przepisywać wszystko później.
Co zyskujesz przez rozdzielenie
Każdy krok ma mniejszy cel, więc AI może się na nim skupić. Masz też punkty kontrolne, które łatwo przejrzeć.
- Plan: definiuje zakres, ograniczenia i kryteria akceptacji.
- Build: wprowadza najmniejszy zestaw zmian spełniający plan.
- Test: sprawdza zachowanie względem kryteriów, w tym przypadki brzegowe i regresje.
- Refactor: poprawia nazewnictwo i strukturę bez zmiany zachowania.
Prosty przykład: chcesz dodać „zaproszenie współpracownika” do aplikacji. Plan wymusza decyzje (kto może zapraszać, zasady e-maili, co się dzieje, jeśli użytkownik już istnieje). Budowa implementuje to. Testowanie weryfikuje uprawnienia i przypadki błędów. Refaktoryzacja sprawia, że kod jest czytelny dla następnej zmiany.
Kompromis (i dlaczego często się opłaca)
Przepływ wymaga więcej kroków, ale zwykle mniej przeróbek. Poświęcasz trochę czasu na początku na jasność i kontrole, a zyskujesz czas, który inaczej straciłbyś na gonienie błędów później.
Narzędzia wspierające planowanie i bezpieczne punkty kontrolne mogą sprawić, że to będzie lżejsze. Na przykład Koder.ai oferuje tryb planowania oraz migawki/rollback, co pomaga przeglądać zmiany etapami i szybko przywracać, jeśli coś pójdzie źle.
Proste ramy decyzyjne (złożoność, ryzyko, weryfikacja)
Nie zaczynaj od narzędzia. Zacznij od kształtu zadania. Te czynniki zwykle mówią, co zadziała przy najmniejszym bólu.
1) Złożoność i tempo zmian
Złożoność to ile ruchomych części masz: ekrany, stany, integracje, przypadki brzegowe i reguły „jeśli to, to tamto”. Jeśli wymagania zmieniają się w trakcie zadania, trudność rośnie, bo zarządzasz też zmianami.
Pojedyncze polecenie działa najlepiej, gdy zadanie jest wąskie i stabilne. Przepływ się opłaca, gdy potrzebujesz najpierw planowania, potem wdrożenia, potem poprawek.
2) Ryzyko i weryfikacja
Ryzyko to co się stanie, jeśli wynik jest błędny: pieniądze, bezpieczeństwo, dane użytkownika, dostępność usługi i reputacja. Weryfikacja to jak łatwo możesz udowodnić, że wynik jest poprawny.
Wysokie ryzyko plus trudna weryfikacja to najsilniejszy sygnał, by podzielić pracę na kroki.
Jeśli możesz sprawdzić wynik w kilka minut (krótki email, slogan, mała funkcja pomocnicza), jedno polecenie często wystarczy. Jeśli potrzebujesz testów, przeglądu lub dokładnego rozumowania, bezpieczniej jest wykonać wieloetapowy przepływ.
Szybka ścieżka decyzyjna:
- Ile komponentów lub systemów to dotyka?
- Jaki jest najgorszy skutek, jeśli to będzie błędne?
- Czy mogę to szybko zweryfikować, czy potrzebuję testów i logów?
- Jak często będę zmieniać zdanie podczas budowy?
- Potrzebuję teraz szybkości, czy mniej poprawek później?
Wygenerowanie prostego emaila do resetu hasła jest niskim ryzykiem i łatwe do weryfikacji. Zbudowanie funkcji resetu hasła to inna sprawa: wygaśnięcie tokenów, limity częstotliwości, logowanie audytowe i przypadki brzegowe mają znaczenie.
Krok po kroku: jak wybrać dla następnego zadania
Zacznij od tego, by „gotowe” było konkretne, potem oceń, ile niepewności zostało.
Prosta metoda 5 kroków
-
Napisz cel w jednym zdaniu, potem opisz, jak wygląda „gotowe” (plik, ekran UI, przechodzący test).
-
Wypisz wejścia i ograniczenia. Wejścia to to, co już masz (notatki, dokumentacja API, dane przykładowe). Ograniczenia to czego nie możesz zmienić (termin, stack, ton, zasady prywatności). Dodaj kilka rzeczy, które NIE są celem, żeby model się nie rozpraszał.
-
Wybierz podejście. Jeśli jest małe, niskie ryzyko i łatwe do zweryfikowania przez inspekcję, spróbuj jednego polecenia. Jeśli obejmuje wiele części (zmiany danych, przypadki brzegowe, testy), podziel na etapy.
-
Uruchom mały pierwszy przebieg. Poproś o minimalny użyteczny wycinek, potem rozszerzaj. Najpierw „tylko happy path”, potem walidacja i błędy.
-
Dodaj kontrole zanim zaufasz. Zdefiniuj kryteria akceptacji, a potem wymagaj dowodu: testów, przykładowych wejść/wyjść lub krótkiego planu testów ręcznych.
Przykład: „Dodaj przełącznik ustawień” do aplikacji webowej. Jeśli to tylko tekst i układ, jedno polecenie często wystarczy. Jeśli wymaga zmian w bazie danych, aktualizacji API i stanu UI, bezpieczniej jest etapowy przepływ.
Jeśli pracujesz w Koder.ai, to ładnie się mapuje: uzgodnij zakres w trybie planowania, zaimplementuj małymi krokami (React, Go, PostgreSQL), a potem zweryfikuj. Migawki i rollbacky pomagają eksperymentować bez utraty postępu.
Nawyk, który zapobiega złym przekazaniom: zanim zaakceptujesz ostateczny wynik, wymagaj krótkiej listy kontrolnej typu „Co się zmieniło?”, „Jak to przetestować?” i „Co może się zepsuć?”.
Jak role wyglądają w praktyce
Wielorolowy sposób nie jest biurokracją. Oddziela typy myślenia, które często się mieszają.
Praktyczny zestaw ról:
- Planner: zamienia nieostre żądanie w kryteria akceptacji, wskazuje przypadki brzegowe i definiuje, co jest poza zakresem.
- Coder: wprowadza najmniejszą zmianę, która posuwa funkcję naprzód, dbając o czytelność diffu.
- Tester: próbuje złamać funkcję, obejmując happy path i kilka przypadków błędów.
- Refactorer: czyści nazwy i strukturę, usuwa duplikację i standaryzuje obsługę błędów.
- Reviewer (opcjonalny): porównuje wynik z kryteriami i zgłasza luki lub ryzykowne założenia.
Przykład: „Użytkownicy mogą zaktualizować swoje zdjęcie profilowe.” Planner potwierdza dozwolone typy plików, limity rozmiaru, gdzie jest wyświetlane zdjęcie i co się dzieje w razie nieudanego uploadu. Coder implementuje przesyłanie i zapis URL. Tester sprawdza zbyt duże pliki, nieprawidłowe formaty i awarie sieci. Refactorer wyciąga powtarzającą się logikę i ujednolica komunikaty o błędach.
Realistyczny przykład: mała funkcja aplikacji od początku do końca
Powiedzmy, że potrzebujesz formularza rezerwacji, który zbiera imię, email, datę i notatki. Po wysłaniu użytkownik widzi potwierdzenie. Strona admina pokazuje listę rezerwacji.
Próba jednorazowa
Jedno polecenie często szybko tworzy happy path: komponent formularza, endpoint POST i tabelę admina. Wygląda na skończone, dopóki ktoś tego faktycznie nie użyje.
Zwykle brakuje nudnych rzeczy, które czynią funkcję prawdziwą: walidacji (złe maile, brak daty, data w przeszłości), stanów błędu (timeouty, błędy serwera, podwójne wysłanie), stanów pustych (brak rezerwacji), podstawowego bezpieczeństwa (kto może zobaczyć listę admina) i detali danych (strefa czasowa, format daty, przycinanie inputu).
Możesz to załatać kolejnymi poleceniami, ale często kończy się to reakcją na problemy zamiast ich zapobiegania.
Próba etapowa
Podziel pracę na role: planuj, buduj, testuj, refaktoruj.
Plan ustala reguły pól, dostęp admina, przypadki brzegowe i jasną definicję „gotowe”. Build implementuje formularz React i endpoint w Go z PostgreSQL. Test sprawdza złe wejścia i weryfikuje listę admina przy pustej tabeli. Refactor oczyszcza nazwy i usuwa duplikacje.
Potem produkt prosi: „Dodaj dropdown dla typu usługi i wyślij email potwierdzający.” W jednoetapowym przepływie możesz dorzucić pole i zapomnieć zaktualizować bazę, listę admina i walidację. W przepływie etapowym najpierw aktualizujesz plan, potem każdy krok dotyka swoich obszarów, więc zmiana ląduje czysto.
Typowe błędy i pułapki
Najczęstszy błąd to próba zmieszczenia wszystkiego w jednym poleceniu: zaplanuj funkcję, napisz kod, przetestuj, popraw i wytłumacz. Model zwykle dobrze robi jedne części i "ulagodzi" inne, a ty zauważasz to dopiero po uruchomieniu.
Inna pułapka to niejasna definicja gotowości. Jeśli celem jest „ulepszyć”, możesz wpaść w nieskończone poprawki, gdzie każda zmiana tworzy nową pracę. Jasne kryteria akceptacji zamieniają nieostre uwagi w proste kontrole.
Błędy powodujące najwięcej przeróbek:
- Mieszanie planowania, budowy i weryfikacji w jednej rundzie, więc błędy chowają się do końca.
- Wysyłanie bez kryteriów akceptacji, potem kłótnie z wynikiem zamiast testowania.
- Odkładanie testów na koniec, potem gonienie błędów, które mały test złapałby wcześnie.
- Zmiana wymagań w trakcie bez aktualizacji planu lub rozbicia zadania.
- Prośba o „kod gotowy do produkcji” bez określenia ograniczeń (bezpieczeństwo, wydajność, zasady danych, przypadki brzegowe).
Konkretne: prosisz o „stronę logowania z walidacją” i dostajesz ładny UI React, ale brak jasnych reguł dotyczących długości hasła, komunikatów błędów czy kryteriów sukcesu. Jeśli potem dodasz „również ograniczenie częstotliwości” bez zmiany planu, prawdopodobnie dostaniesz niespójne UI i backend.
Jeśli używasz Koder.ai, traktuj tryb planowania, generowanie kodu i testowanie jako oddzielne punkty kontrolne. Migawki i rollbacky pomagają, ale nie zastąpią jasnych kryteriów i wczesnej weryfikacji.
Szybka lista kontrolna przed startem
Zanim wybierzesz podejście, oceń zadanie kilkoma praktycznymi pytaniami. To zapobiega typowemu błędowi: wybieraniu „szybkiego” wariantu i potem spędzaniu więcej czasu na poprawkach niż gdyby się zaplanowało.
Jeśli na większość pierwszych pytań odpowiesz „tak”, jedno polecenie często wystarczy. Jeśli na większość ostatnich pytań odpowiesz „tak”, przepływ zwykle oszczędza czas.
- Czy potrafisz opisać zadanie jasno w 5–8 punktach, bez dużych luk?
- Czy możesz zweryfikować wynik szybko i obiektywnie (nie tylko „wygląda dobrze”)?
- Czy masz kryteria akceptacji i kilka przypadków testowych lub przykładowych wejść/wyjść?
- Czy błędna odpowiedź byłaby kosztowna, kompromitująca lub trudna do cofnięcia?
- Czy praca dotknie wielu plików, ekranów lub integracji (auth, płatności, email, baza danych, API)?
Jeśli nie jesteś pewny weryfikacji, traktuj to jako ostrzeżenie. Zadania „trudne do weryfikacji” (logika cenowa, uprawnienia, migracje) zwykle zyskują na rozdzieleniu kroków: plan, build, test, refactor.
Prosty trik: jeśli nie potrafisz napisać dwóch lub trzech jasnych kryteriów akceptacji, napisz je najpierw. Potem wybierz najlżejsze podejście, które pozwala potwierdzić wynik.
Jak utrzymać przepływ szybkim, a nie ciężkim
Przepływy wydają się wolne, gdy próbują rozwiązać cały problem w jednym maratonie. Utrzymaj szybkość, każdemu krokowi dając powód: planuj tylko tyle, ile trzeba, buduj małymi kawałkami i weryfikuj po drodze.
Zacznij od cienkiego plasterka. Planuj tylko pierwszą historyjkę użytkownika, która daje widoczną wartość, np. „użytkownik może zapisać notatkę”, a nie „aplikacja notatek z tagami, wyszukiwaniem, udostępnianiem i trybem offline”.
Dodaj strażnice wcześnie, aby nie płacić za przeróbki potem. Proste ograniczenia jak zasady nazewnictwa, oczekiwana obsługa błędów i „brak łamania istniejących endpointów” zatrzymują pracę przed błądzeniem.
Lekkie reguły, które utrzymują tempo:
- Ogranicz planowanie do jednej strony, potem buduj.
- Trzymaj wyniki małe: jeden komponent, jeden endpoint lub jedna migracja na krok.
- Zapisuj punkty bezpieczeństwa: twórz migawki przed ryzykownymi edycjami, by móc szybko wrócić.
- Wymagaj dowodu, nie eseju: testy, przykłady wejść/wyjść lub krótki plan testów ręcznych.
- Zdecyduj, kiedy przestać: zrób końcowy przegląd względem kryteriów i zakończ pętlę, gdy przejdzie.
Punkty bezpieczeństwa są ważniejsze niż idealne polecenia. Jeśli refaktoring pójdzie źle, cofnięcie jest szybsze niż debatowanie, co agent „miał na myśli”.
Następne kroki: wybierz podejście i przeprowadź mały eksperyment
Złożoność i ryzyko powinny decydować bardziej niż preferencje. Jeśli zadanie jest małe, niskostawkowe i łatwe do oceny wzrokowego, pojedyncze polecenie zwykle wygrywa. Jeśli praca może coś zepsuć, dotyczy użytkowników lub wymaga dowodu działania, rozdzielenie kroków zaczyna się spłacać.
Dobry domyślny wybór: używaj jednego polecenia do szkiców i eksploracji, a ról przy wdrażaniu. Szkice to konspekty, surowe teksty, szybkie pomysły i prototypy, które można wyrzucić. Wysyłanie to zmiany dotykające auth, płatności, migracji, niezawodności lub czegokolwiek, czym będziesz zarządzać.
Mały eksperyment na ten tydzień:
- Wybierz jedną funkcję mieszczącą się w pół dnia.
- Zrób krótki przebieg planowania: kryteria akceptacji, przypadki brzegowe i co oznacza „gotowe”.
- Zrób przebieg budowy: zaimplementuj tylko to, co mówi plan.
- Zrób przebieg testów: spróbuj przypadków błędów i potwierdź kryteria.
- Zrób przebieg refaktoryzacji: czytelne nazwy, usuwanie duplikacji, krótkie notatki.
Trzymaj zakres ścisły, żeby uczyć się przepływu, a nie walczyć z zakresem. „Dodaj filtr wyszukiwania do listy” jest lepszym testem niż „zbuduj całą stronę listy”.
Jeśli już pracujesz w Koder.ai, użyj trybu planowania do passy planowania, rób migawki jako punkty kontrolne i swobodnie cofnij, gdy eksperyment się nie powiedzie. Jeśli wynik będzie dobry, możesz wyeksportować kod źródłowy i kontynuować w swoich narzędziach.
Po eksperymencie zadaj dwa pytania: czy złapałeś problemy wcześniej i czy czułeś się pewniej przy wypuszczeniu? Jeśli tak, zachowaj role dla podobnych zadań. Jeśli nie, wróć do pojedynczego polecenia i zostaw strukturę dla zadań wyższego ryzyka.
Często zadawane pytania
Kiedy powinienem użyć pojedynczego polecenia zamiast przepływu?
Użyj pojedynczego polecenia, gdy zadanie jest małe, zasady są jasne, a wynik można zweryfikować przez przeczytanie.
Dobre przykłady:
- Krótkie teksty (email, opis, streszczenie)
- Proste przeróbki/podsumowania
- Małe fragmenty kodu, które możesz szybko przejrzeć
Kiedy przepływ agenta jest wart dodatkowych kroków?
Wybierz przepływ, gdy błędy są kosztowne lub trudno je dostrzec dopiero później.
Lepsze dopasowanie dla:
- Funkcji dotykających uwierzytelniania, płatności lub uprawnień
- Zmian w bazie danych i migracji
- Wszystkiego, co wymaga testów, logów lub dokładnej weryfikacji
Czy przepływ zawsze jest wolniejszy niż jednoetapowe polecenie?
Szybkość pochodzi z mniejszej liczby iteracji, ale niezawodność z punktów kontrolnych.
Praktyczna zasada: jeśli spodziewasz się uruchomić pojedyncze polecenie dwukrotnie lub trzykrotnie, aby uzyskać poprawny wynik, przepływ często jest szybszy w efekcie, bo zmniejsza ilość poprawek.
Jak mam rozpoznać, że przeciążam pojedyncze polecenie?
Szukaj sygnałów, że polecenie robi za dużo:
- Ciągle dodajesz „również” i „nie zapomnij”
- Wynik wymaga testów, a nie tylko przeczytania
- Nie wiesz, która część zawiodła, gdy coś jest nie tak
- Zadanie dotyka wielu plików, ekranów lub systemów
Czym są kryteria akceptacji i dlaczego tu są ważne?
Zapisz 2–5 kryteriów akceptacji, które możesz sprawdzić.
Przykłady:
- „Wysłanie nieprawidłowego e-maila pokazuje jasny komunikat o błędzie”
- „Użytkownicy niebędący adminami nie mają dostępu do endpointu listy admina”
- „Daty z przeszłości są odrzucane”
Jeśli nie potrafisz jasno sformułować kryteriów, zrób najpierw krok planowania.
Jaki jest prosty przepływ, którego mogę używać dla większości funkcji?
Lekki domyślny przepływ to:
- Plan: zakres, ograniczenia, przypadki brzegowe i definicja „gotowe”
- Build: zaimplementuj najmniejszy wycinek spełniający plan
- Test: zweryfikuj happy path + kilka przypadków błędów
- Refactor: uporządkuj strukturę bez zmiany zachowania
To utrzymuje każdy krok skoncentrowany i łatwiejszy do przeglądu.
Jakie błędy przepływ łapie, a których jednoetapowe polecenie często nie uwzględnia?
Plan najpierw happy path, potem dodaj najpewniejsze błędy.
Typowe przypadki porażek:
- Brakujące/nieprawidłowe dane wejściowe
- Duplikaty (podwójne wysłanie)
- Sprawdzenia uprawnień
- Timeouty i błędy serwera
- Stany puste (brak danych)
Przepływy pomagają, bo explicite testujesz te przypadki zamiast liczyć, że model je pokryje.
Jak zespoły powinny decydować między szybkością a niezawodnością?
Użyj tych samych pytań dotyczących złożoności/ryzyka, ale utrzymuj wynik mniejszy.
Dobra praktyka:
- Jedno polecenie dla szybkiego szkicu lub prototypu
- Potem przepływ, aby to uczynić gotowym do wdrożenia (zasady, przypadki brzegowe, testy, porządki)
Daje to szybkość na początku i kontrolę przed wypuszczeniem.
Jak platforma vibe-coding taka jak Koder.ai pasuje do tej decyzji?
Tak. Platformy takie jak Koder.ai czynią przepływ praktycznym, bo możesz:
- Najpierw zaplanować w dedykowanym trybie planowania
- Wprowadzać zmiany frontendowe i backendowe w małych krokach
- Używać migawek i przywracania jako bezpiecznych punktów kontrolnych
- Eksportować lub wdrażać dopiero po skupionym przeglądzie
Główna korzyść to bezpieczniejsza iteracja, nie tylko szybsze generowanie.
Jak zapobiec, by przepływ nie zamienił się w zbędne zajęcie?
Utrzymuj to lekkie:
- Zadbaj o limit czasu planowania (np. jedna strona lub 15 minut)
- Buduj w cienkich plasterkach (po jednym komponencie/endpoint/migracji na krok)
- Wymagaj dowodu, nie esejów (testy, przykłady wejść/wyjść, krótki plan testów ręcznych)
- Zakończ, gdy kryteria akceptacji są spełnione
Celem jest mniej niespodzianek na końcu, nie długi proces.