Diagrammidest rakendusteni

Tehisintellekti toega struktureeritud Event Storming diagrammiredaktor äritarkvara arendusmeeskondadele. See loob järjepidevad tarkvaraspetsifikatsioonid agentsete SDLC töövoogude jaoks. Ei ülesandeid, ei sprinte.

ActorCustomerActionPlace OrderAggregateOrderEventOrder Placed

Demo

See on tõeline e-kaubanduse domeen, „Customers“, mis on modelleeritud StormPilotis: Actors, Actions, Aggregates, Events, Rules, Views ja Terms, täielikult ühendatud. Selle rakendas kodeerimisagent ja avaldas aadressil https://github.com/codelev/stormpilot.

StormPilotis modelleeritud Customers domeen, mis näitab ühendatud Actor, Action, Aggregate, Event, Rule ja View elemente

Tarkvaratoote tarnimine järgmiseks päevaks

See, mis tegelikult aeglustab tarkvaratoote Time to Market'it, on harva kodeerimine ise. See on kõik, mis peab toimuma enne, kui agent või insener saab toodet turvaliselt muuta. Kui hakkasite kasutama multiagentset SDLC-d, jäite ikka ja jälle takerduma samadesse neljasse probleemi.

Killustunud teadmised

Teadmised toote kohta olid killustunud tehniliste ja mittetehniliste juhtide, rakenduste, ülesannete jälgimise tööriistade, koodihoidlate ja dokumentide vahel. Need olid tavaliselt puudulikud, aegunud ja lugejast olenevalt erinevalt tõlgendatud. Enne kui sai üldse kokku panna muudatusülesannete paketi (Sprindi), tuli see killustunud teadmine kõigepealt sünkroonida.

Inimkesksed ülesannete hinnangud

Iga muudatusülesanne kandis inimkeskset hinnangut (story point'e), millel polnud enam tähtsust, kui tööd tegi agent. Agent ei vaja alustamiseks story point'ide hinnangut. Alles jäi planeerimisrituaal: ülesannete jaotamine ning ülesannete- või meeskondadevaheliste sõltuvuste lahtiharutamine, pingutus, mis eksisteeris ainult sellepärast, et ülesanded olid mõõdustatud inimestele, mitte agentidele.

Olemasoleva oleku pöördprojekteerimine

Muudatusülesanne kirjeldab erinevust olemasoleva ja soovitud oleku vahel. See sundis kodeerimisagenti kõigepealt olemasoleva oleku pöördprojekteerima, enne kui ta üldse sai erinevuse kallal tegutseda. Praeguste LLM-piirangute tõttu läks see rekonstruktsioon vahel valesti või jäi puudulikuks ning toode muutus viisidel, mida te ei tahtnud.

Tõlgendusnihe

Iga muudatusülesanne oli kirjutatud loomulikus keeles, mis kandis endas tõlgendusnihke riski: lõhet kavatsetud domeenikäitumise ja tegelikult juurutatud käitumise vahel, mille põhjustas infokadu või mitmetähenduslikkus. Praeguste LLM-piirangute tõttu võis sama ülesanne, sama agendile antuna, toota iga kord erineva koodi ning toode muutus taas viisidel, mida te ei tahtnud.

Spec-Driven Development

Selle parandamiseks võtavad meeskonnad kasutusele ühe Spec-Driven Development (SDD) raamistikest: spetsifikatsioonifailid, kirjutatud loomulikus või segatud loomulikus-formaalses keeles, koostatud enne kodeerimist, saavad agendi sisendiks. On olemas 15 Spec-Driven Development raamistiku võrdlus, mis jaotab need kolme tasemesse.

Tase 1 · Spec-First

Käsitlevad spetsifikatsiooni esialgse lepingu või kavatsuskirjana.

GitHub Spec Kit, Superpowers, Behavioral Meta-Architectural Design, Goal-Driven Development, SpecSwarm

Tase 2 · Spec-Anchored

Hoiavad spetsifikatsiooni elava dokumendina kogu projekti elutsükli jooksul.

MUSUBI, Intent, OpenSpec

Tase 3 · Spec-as-Source

Rakendavad nihketa seadistuse, kus spetsifikatsioonifail on absoluutne ainuke tõe allikas.

Tessl, Contractual Specification-Driven Development

15 Spec-Driven Development raamistiku võrdlus

Proovisime seda teed. Spetsifikatsioonifailid aitasid tõesti koondada teadmised ühte kohta, kirjeldada olemasolevat ja soovitud olekut ning vähendada tõlgendusnihet. Kuid spetsifikatsioonifail oli ikkagi veel üks dokument, mis elas koodihoidlas ning vajas oma sünkroonimist toote ülejäänud artefaktidega. Ja ärihuvilised ei saanud endiselt spetsifikatsioonifaili kallal koos töötada: tehniliste ja mittetehniliste inimeste vahel killustunud teadmised jäid lahendamata.

Seetõttu ehitasime StormPiloti, et lahendada kõik neli probleemi korraga.

Event Storming

EventStorming on lihtne ühistöö töötoa tehnika, mille lõi Alberto Brandolini keeruliste äriprotsesside uurimiseks korduvate elementide ajajoonena. EventStorming ei olnud mõeldud digitaalse tööriistana. Selle peamine eesmärk on ühine õppimine: ärieksperdid ja tehnilised eksperdid avastavad ja arutavad koos, kuidas domeen toimib. Tahvel on tahtlikult kergekaaluline ja kombatav, võimaldades osalejatel kiiresti elemente lisada, liigutada, rühmitada, kahtluse alla seada ja kõrvaldada. Füüsiline märkmepaberite meedium on osa meetodist. Tähistus ei ole mõeldud rangeks formaalseks modelleerimiskeeleks.

Event Storming video

Struktureeritud Event Storming

StormPilot on suures osas truu Event Stormingu kontseptsioonidele. See väldib CQRS-i terminoloogiat, kasutades "View" asemel "Read Model", "Action" asemel "Command" ja "Rule" asemel "Policy". See lisab "Term" selgesõnalise elemendina ühtse valdkonnakeele säilitamiseks. Struktureeritud Event Storming muudab õppetehnika spetsifikatsioonisüsteemiks. See põimib formaalsed märkimisviisid otse elementidesse, et vähendada tõlgendamise triivi: lõhet selle vahel, mille eest domeen vastutab, ja selle vahel, mis tegelikult ehitatakse, mille põhjustab kadunud või mitmetähenduslik teave. Tulemuseks olev tarkvaraspetsifikatsioon toimib deterministliku sisendina agentliku koodigenereerimise jaoks, võimaldades valdkonnateadmistel juhtida muudatusi tarkvaratootes, mis tarnitakse järgmisel päeval.

Struktureeritud Event Storming

Tehisintellekti abi

Tehisintellekti assistent loeb teie tegelikku domeenimudelit ja pakub konkreetseid parandusi: nimetamise parandusi, puuduvaid elemente, rollide määratlusi, vooluahelaid ning piirangute selgitusi. Võtke vastu, mis on kasulik, jätke ülejäänu kõrvale.

StormPiloti tehisintellekti assistent pakub nimetamise parandusi, puuduvaid elemente, rollide määratlusi, vooluahelaid ja piirangute selgitusi koos kogu domeenidiagrammiga

Versioonihaldus

Ülesandel kui eraldiseisval projektihaldusartefaktil pole multiagentses SDLC-s ega tokenite majanduses mõtet. Struktureeritud Event Storming diagrammi jäädvustatud teadmiste muudatused kaardistuvad otse muudatustena tootes, mida soovime välja anda. Seetõttu asendab StormPilot ülesanded ja ülesannete paketid tooteversioonihaldusega. Nii lahendatakse inimkesksed ülesannete hinnangud ja olemasoleva oleku pöördprojekteerimine.

StormPiloti versiooniajaloo paneel, mis kuvab erinevust kahe muutumatu domeeniversiooni vahel

KKK

Kas pean proovimiseks maksma?

Ei. Demo on tasuta avalik liivakast ilma registreerimiseta ja kõigi rollidega. See lähtestatakse iga päev ja piirdub 5 domeeniga, kummalgi 2 versiooni.

Mis on domeeni versioon?

Facilitator saab diagrammi hetkeoleku versioonina külmutada. Versioonid on muutmatud, ajatempliga ja kirjutuskaitstud.

Mida see ekspordib?

StormPilot ekspordib User Interface, Application Programming Interface, andmemudeli ja Behavior stsenaariumid.

Kas AI kirjutab koodi?

Ei. StormPiloti AI määrab, MIDA kodeerida: domeenimudeli ja selle käitumise. Tehnoloogiapinu jääb endiselt tehnikameeskonna otsustada.

Miks OpenRPC?

Ärilised Actions ületavad RESTi semantikat. OpenRPC vastab täpselt Event Storming märgistusele, väldib tõlgendamise triivi ja on protokollist sõltumatu.

Miks Gherkin?

Given/When/Then peegeldab Event Storming Rules'eid ja väldib tõlgendamise triivi, kuna seda toetab otse BDD tööriistade ökosüsteem.

Miks PlantUML?

Event Storming on olemuselt visuaalne ja PlantUML säilitab selle ekspordil. Süntaksit toetab otse tööriistade ökosüsteem.

Miks SSE?

Events liiguvad ainult ühes suunas, seega jääb WebSocketsi keerukus kasutamata. Server-Sent Events jääb tavaliseks HTTP-ks ja taasühendub automaatselt.

IKÜM-iga vastavuses. Andmeid töödeldakse EL-i piires, kasutades sama standardit järgivaid infrastruktuuri- ja töötluspartnereid.