𝗖𝘇𝘆𝗺 𝗝𝗲𝘀𝘁 𝗦𝗽𝗲𝗰-𝗗𝗿𝗶𝘃𝗲𝗻 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁?

Większość procesów kodowania z użyciem AI zaczyna się tak samo. Podajesz agentowi krótki prompt. Obserwujesz, jak pisze kod. Wygląda to na szybkie. Potem orientujesz się, że agent zbudował coś zupełnie innego. Spędzasz godzinę na poprawianiu tego.

Agent nie miał problemu z pisaniem kodu. Miał problem ze zrozumieniem Twoich intencji.

Spec-driven development rozwiązuje ten problem. Zamiast prosić o kod, najpierw tworzysz specyfikację. Ta specyfikacja to spisany plan. Poprawiasz plan tak długo, aż będzie właściwy. Dopiero wtedy pozwalasz agentowi budować.

Nowe narzędzia, takie jak AWS Kiro i GitHub spec-kit, ułatwiają to zadanie. Ale sama idea jest stara. To po prostu dobra inżynieria.

Dobra specyfikacja składa się z trzech części:

• Wymagania: Co robi dana funkcja i jak zmierzyć sukces. Opisuje to zachowanie, a nie kod. • Projekt: Plan techniczny. Obejmuje on architekturę, modele danych i ograniczenia. • Zadania: Małe, możliwe do przetestowania jednostki. Są na tyle proste, aby agent mógł je ukończyć za jednym razem.

Każda część wynika z poprzedniej. Wymagania kierują projektem. Projekt tworzy zadania. Zadania prowadzą agenta.

W przeszłości pisanie kodu było powolne. Pisanie specyfikacji wydawało się stratą czasu. Teraz AI pisze kod w kilka minut. Wąskim gardłem nie jest już samo pisanie. Wąskim gardłem jest decydowanie o tym, co dokładnie należy zbudować.

Specyfikacja przenosi błędy do etapu, w którym ich naprawa jest tania. Błędne zdanie w dokumencie łatwo poprawić. Błędną implementację w kodzie trudno i kosztownie odkręcić.

Przeglądanie kodu jest trudne. Musisz odtwarzać intencje autora. Przeglądanie specyfikacji jest łatwe. Ustalacie intencje, zanim powstanie jakikolwiek kod.

Ta metoda pomaga również w skalowaniu. Możesz przydzielać różne zadania różnym agentom. Specyfikacja działa jak kontrakt, który pozwala utrzymać ich spójność.

To podejście nie zawsze jest rozwiązaniem.

  • Jest to zbyt skomplikowane przy małych poprawkach. Nie twórz specyfikacji dla zmiany jednej linii kodu.
  • Specyfikacje mogą stać się nieaktualne. Jeśli kod ulegnie zmianie, a specyfikacja nie, staje się ona nieprawdziwa.
  • Agenci nie zawsze postępują zgodnie z instrukcjami. Specyfikacja zmniejsza chaos, ale i tak musisz sprawdzić wynik ich pracy.

Używaj specyfikacji, aby jasno określić swoje intencje. Wykorzystaj ją, aby wyłapywać błędy, gdy są jeszcze tylko słowami.

Source: https://dev.to/jcamarate/what-is-spec-driven-development-with-ai-coding-agents-56mc

Optional learning community: https://t.me/GyaanSetuAi