Przejdź do głównej zawartości

Metodologia od PRD przez plan do listy zadań

Masz zadanie w Jira, które mówi “Dodaj powiadomienia użytkownika”. Twój PM chce to na piątek. Otwierasz Cursor, Claude Code lub Codex, wklejasz opis zadania i naciskasz enter. AI generuje 400 linii kodu, który wygląda wiarygodnie, ale pomija połowę wymagań, wymyśla schemat tabeli powiadomień kolidujący z twoją istniejącą bazą danych i całkowicie ignoruje konwencje API twojego zespołu.

Problem nie leży w AI. Problem polega na tym, że pominąłeś fazę planowania i poprosiłeś system probabilistyczny o podejmowanie decyzji architektonicznych, do których nie jest uprawniony.

  • Powtarzalny trzyfazowy przepływ pracy (PRD, Plan, Lista zadań), który działa w Cursor, Claude Code i Codex
  • Gotowe do skopiowania prompty na każdą fazę, których możesz użyć przy następnej funkcjonalności
  • Strategia utrzymywania AI skupionego na implementacji, podczas gdy ty odpowiadasz za architekturę
  • Techniki zapisywania planu jako artefaktu wielokrotnego użytku, który przetrwa resety kontekstu

Metodologia od PRD przez plan do listy zadań oddziela myślenie od działania. Inwestujesz 15-20 minut w ustrukturyzowane planowanie, aby zaoszczędzić godziny debugowania i przeróbek.

Każda funkcjonalność zaczyna się od wymagania. Może to być formalny dokument wymagań produktu (PRD), historia użytkownika, wiadomość na Slack od twojego PM lub zgłoszenie błędu. Bez względu na formę, musisz wprowadzić to do narzędzia AI jako fundamentalny kontekst.

Kluczowa zasada: AI czyta wymaganie, ale ty walidujesz jego zrozumienie, zanim napisze choćby jedną linię kodu.

Umieść PRD w repozytorium (np. docs/notifications-prd.md). Otwórz tryb Agent i odwołaj się do niego bezpośrednio:

Read @docs/notifications-prd.md and summarize the key requirements.
List any ambiguities or missing details I should clarify before we plan.
Do not write any code yet.

Agent Cursor przeczyta plik, porówna go z twoją bazą kodu za pomocą wyszukiwania semantycznego i zasygnalizuje pytania, o których możesz nie pomyśleć. Użyj @codebase, żeby pozwolić mu przeskanować istniejące wzorce.

Po zrozumieniu wymagań wspólnie tworzycie plan implementacji. To miejsce, gdzie twoja wiedza architektoniczna ma największe znaczenie. AI proponuje, ty oceniasz i razem udoskonalacie, aż plan będzie solidny.

Pozostań w trybie Agent. Poproś o ustrukturyzowany plan i iteruj nad nim:

Based on the PRD and your analysis of the codebase, create a
high-level implementation plan covering:
1. Database schema changes (migrations)
2. Backend API endpoints (following our existing patterns in src/api/)
3. Frontend components (following our component patterns)
4. Integration points with existing notification systems
Do not write code. Output the plan as a markdown document.

Przejrzyj plan dokładnie. Kwestionuj decyzje architektoniczne:

The plan proposes a new notifications table, but we already have
an events table that could be extended. What are the trade-offs
of each approach? Which aligns better with our existing patterns?

Plan staje się listą kontrolną. Każdy element powinien być na tyle mały, aby można go było zaimplementować i zweryfikować w pojedynczej interakcji z AI. To właśnie sprawia, że metodologia jest niezawodna: zamiast prosić AI o zbudowanie całej funkcjonalności, dajesz mu jedno skupione zadanie na raz.

Convert the implementation plan into a detailed, ordered todo list.
Each task should:
- Be implementable in a single focused session
- Have clear acceptance criteria
- Include the specific files to modify
- Be ordered so each task builds on the previous one
Save this as docs/notifications-todo.md

Cursor natywnie śledzi elementy listy zadań. Możesz odwoływać się do pliku listy zadań przez całą implementację za pomocą @docs/notifications-todo.md i prosić Cursor o oznaczanie elementów jako ukończone w miarę postępu.

Z listą zadań w ręku implementacja staje się przewidywalną pętlą:

  1. Wybierz następne nieodznaczone zadanie z listy
  2. Daj AI zadanie z planem jako kontekstem referencyjnym
  3. Pozwól AI je zaimplementować
  4. Zweryfikuj (uruchom testy, przejrzyj diff)
  5. Commituj zmianę
  6. Powtórz

Każda iteracja jest mała, możliwa do przejrzenia i odwracalna. Jeśli AI zejdzie z kursu przy zadaniu 7, tracisz tylko pracę z tego jednego zadania, a nie całej funkcjonalności.

PRD jest zbyt ogólnikowy. Jeśli wymaganie brzmi “ulepsz powiadomienia”, żadna metodologia cię nie uratuje. Poproś PM o doprecyzowanie lub sam napisz bardziej szczegółowe PRD. AI może pomóc: poproś go o wygenerowanie szablonu PRD i wypełnienie tego, co wiesz.

Plan jest zbyt ambitny. Jeśli twój plan ma 40+ elementów listy zadań, funkcjonalność jest za duża na jeden cykl. Podziel ją na kamienie milowe, z których każdy dostarcza widoczną dla użytkownika wartość. Dostarcz kamień milowy 1, zanim zaczniesz planować kamień milowy 2.

AI odchodzi od planu. Ograniczenia okna kontekstowego oznaczają, że AI może “zapomniało” o wcześniejszym planowaniu w długich sesjach. Odwołuj się jawnie do pliku planu w każdym prompcie (@docs/notifications-plan.md). W Claude Code użyj /clear między zadaniami i ponownie odwołaj się do planu. W Codex używaj oddzielnych wątków na każde zadanie.

Pomijasz fazę planowania “tylko tym razem”. Każdy programista, który próbował przeskoczyć prosto do implementacji, nauczył się tej samej lekcji: czas, który oszczędzasz pomijając plan, spędzasz potrojnie na debugowaniu. 15-minutowa inwestycja w planowanie zwraca się przy każdej funkcjonalności większej niż zmiana w jednym pliku.