Od dijagrama do aplikacija
Uređivač dijagrama strukturirani Event Storming uz pomoć AI-ja za timove poslovnog softverskog inženjeringa. Proizvodi dosljedne softverske specifikacije za agentne SDLC procese. Bez zadataka, bez sprintova.
Demo
Ovo je prava domena e-trgovine, „Customers”, modelirana u StormPilotu: Actors, Actions, Aggregates, Events, Rules, Views i Terms, potpuno povezani. Implementirao ga je agent za kodiranje i objavio na https://github.com/codelev/stormpilot.

Isporuka softverskog proizvoda sljedeći dan
Ono što zapravo usporava Time to Market softverskog proizvoda rijetko je samo pisanje koda. To je sve što se mora dogoditi prije nego što agent, ili inženjer, može sigurno promijeniti proizvod. Nakon što ste počeli koristiti multiagentni SDLC, i dalje ste nailazili na ista četiri problema.
Fragmentirano znanje
Znanje o proizvodu bilo je rascjepkano među tehničkim i netehničkim voditeljima, aplikacijama, alatima za praćenje zadataka, repozitorijima koda i dokumentima. Obično je bilo nepotpuno, zastarjelo i tumačeno različito ovisno o tome tko ga čita. Prije nego što ste uopće mogli sastaviti paket zadataka promjena (sprint), morali ste prvo sinkronizirati sve to rascjepkano znanje.
Procjene zadataka usmjerene na ljude
Svaki zadatak promjene nosio je procjenu usmjerenu na ljude (story pointe) koja nije igrala nikakvu ulogu kad je posao obavljao agent. Agentu nije potrebna procjena story pointima da bi počeo. Ono što je preostalo bila je ceremonija planiranja: raspodjela zadataka i razmrsivanje ovisnosti između zadataka ili timova, trud koji je postojao samo zato što su zadaci bili dimenzionirani za ljude, a ne za agente.
Obrnuto inženjerstvo postojećeg stanja
Zadatak promjene opisuje razliku između postojećeg i željenog stanja. To je prisililo agenta za pisanje koda da prvo obrnutim inženjeringom rekonstruira postojeće stanje, prije nego što je uopće mogao djelovati na razliku. Zbog trenutačnih ograničenja LLM-ova, ta rekonstrukcija ponekad je bila pogrešna ili nepotpuna, pa se proizvod mijenjao na način koji niste tražili.
Odstupanje u tumačenju
Svaki zadatak promjene bio je napisan prirodnim jezikom, što je nosilo rizik odstupanja u tumačenju: jaz između namjeravanog ponašanja domene i ponašanja koje je stvarno implementirano, uzrokovan gubitkom informacija ili dvosmislenošću. Zbog trenutačnih ograničenja LLM-ova, isti zadatak dan istom agentu mogao je svaki put proizvesti drugačiji kod, i proizvod se opet mijenjao na način koji niste tražili.
Spec-Driven Development
Kako bi to riješili, timovi usvajaju jedan od okvira Spec-Driven Development (SDD): specifikacijske datoteke, napisane prirodnim ili miješanim prirodno-formalnim jezikom, napisane prije pisanja koda, postaju ulaz za agenta. Postoji usporedba 15 okvira Spec-Driven Development koja ih razvrstava u tri razine.
Razina 1 · Spec-First
Tretiraju specifikaciju kao preliminarni ugovor ili pismo namjere.
GitHub Spec Kit, Superpowers, Behavioral Meta-Architectural Design, Goal-Driven Development, SpecSwarm
Razina 2 · Spec-Anchored
Održavaju specifikaciju kao živi dokument tijekom cijelog životnog ciklusa projekta.
MUSUBI, Intent, OpenSpec
Razina 3 · Spec-as-Source
Implementiraju postavke bez odstupanja u kojima je specifikacijska datoteka apsolutni jedini izvor istine.
Tessl, Contractual Specification-Driven Development
Usporedba 15 okvira Spec-Driven Development
Isprobali smo taj put. Specifikacijske datoteke doista su pomogle prikupiti znanje na jednom mjestu, opisati postojeće i željeno stanje te smanjiti odstupanje u tumačenju. No specifikacijska datoteka i dalje je bila još jedan dokument koji živi u repozitoriju koda, kojemu je trebala vlastita sinkronizacija s ostalim artefaktima proizvoda. A poslovni dionici i dalje nisu mogli surađivati na specifikacijskoj datoteci: rascjepkano znanje između tehničkih i netehničkih ljudi ostalo je neriješeno.
Zato smo izgradili StormPilot kako bismo odjednom riješili sva četiri problema.
Event Storming
EventStorming je jednostavna suradnička radionička tehnika koju je izumio Alberto Brandolini za istraživanje složenih poslovnih procesa kao vremenske crte ponavljajućih elemenata. EventStorming nije trebao biti digitalni alat. Njegova primarna svrha je kolektivno učenje: poslovni i tehnički stručnjaci zajedno otkrivaju i raspravljaju o tome kako domena funkcionira. Ploča je namjerno lagana i taktilna, omogućujući sudionicima da brzo dodaju, pomiču, grupiraju, propituju i uklanjaju elemente. Fizički medij samoljepljivih papirića dio je metode. Notacija nije zamišljena kao strog formalni jezik modeliranja.
Strukturirani Event Storming
StormPilot je uglavnom vjeran konceptima Event Storminga. Izbjegava terminologiju CQRS-a koristeći "View" umjesto "Read Model", "Action" umjesto "Command", "Rule" umjesto "Policy". Dodaje "Term" kao eksplicitni element za održavanje jedinstvenog jezika domene. Strukturirani Event Storming pretvara tehniku učenja u sustav specifikacija. Ugrađuje formalne notacije izravno u elemente kako bi se smanjilo odstupanje u tumačenju: jaz između onoga za što je domena odgovorna i onoga što se stvarno gradi, uzrokovan izgubljenim ili dvosmislenim informacijama. Nastala softverska specifikacija služi kao determinističan ulaz za agentno generiranje koda, omogućujući da znanje o domeni pokreće promjene u softverskom proizvodu koji se isporučuje sljedeći dan.
AI pomoć
AI asistent čita vaš stvarni model domene i predlaže konkretne popravke: poboljšanja naziva, elemente koji nedostaju, definicije uloga, praznine u toku, pojašnjenja ograničenja. Prihvatite ono što je korisno, odbacite ostalo.

Verzioniranje
Zadatak kao samostalni artefakt upravljanja projektom nema smisla u multiagentnom SDLC-u ili u ekonomiji tokena. Promjene u znanju zabilježenom u dijagramu strukturirani Event Storminga izravno se preslikavaju na promjene u proizvodu koji želimo objaviti. Zato StormPilot zamjenjuje zadatke i pakete zadataka verzioniranjem proizvoda. Tako se rješavaju procjene zadataka usmjerene na ljude i obrnuto inženjerstvo postojećeg stanja.

Česta pitanja
Moram li platiti da bih to isprobao?
Ne. Demo je besplatna, javna izolirana okolina bez registracije i sa svim dostupnim ulogama. Resetira se svakodnevno i ograničena je na 5 domena s po 2 verzije.
Što je verzija domene?
Facilitator može zamrznuti trenutačno stanje dijagrama kao verziju. Verzije su nepromjenjive, s vremenskom oznakom i samo za čitanje.
Što se izvozi?
StormPilot izvozi User Interface, Application Programming Interface, model podataka i Behavior scenarije.
Piše li AI kod?
Ne. AI StormPilota određuje ŠTO treba kodirati: model domene i njegovo ponašanje. Tehnološki stog i dalje je odluka inženjerskog tima.
Zašto OpenRPC?
Poslovne Actions nadilaze REST semantiku. OpenRPC točno odgovara notaciji Event Storming, izbjegava interpretacijsko odstupanje i neovisan je o protokolu.
Zašto Gherkin?
Given/When/Then odražava Event Storming Rules i izbjegava interpretacijsko odstupanje, jer ga izravno podržava BDD ekosustav alata.
Zašto PlantUML?
Event Storming je po prirodi vizualan, a PlantUML to zadržava pri izvozu. Sintaksu izravno podržava ekosustav alata.
Zašto SSE?
Events teku samo u jednom smjeru, pa složenost WebSocketsa ostaje neiskorištena. Server-Sent Events ostaje obični HTTP i automatski se ponovno povezuje.

