Hacker News

Verified Spec-Driven Development (VSDD)

komentāri

17 min read Via gist.github.com

Mewayz Team

Editorial Team

Hacker News
Šeit ir sākotnējais raksts par verificētu specifikāciju vadītu attīstību (VSDD):

Kāpēc lielākā daļa programmatūras projektu joprojām neizdodas — un metodika, kas to maina

2024. gadā Standish grupas CHAOS pārskats atklāja, ka tikai 31% programmatūras projektu tika pabeigti laikā un budžeta ietvaros. Atlikušie 69% tika vai nu apstrīdēti, vai arī pilnībā neveiksmīgi. Galvenais iemesls nebija slikti izstrādātāji vai nepietiekams finansējums — tā bija neskaidrība. Komandas izstrādāja funkcijas, kuras neviens neprasīja, nosūtīja kodu, kas bija pretrunā ar uzņēmējdarbības noteikumiem, un pavadīja mēnešus, pārveidojot sistēmas, kas tika izstrādātas, pamatojoties uz pieņēmumiem, nevis pārbaudītām prasībām. Verified Spec-Driven Development (VSDD) ir jauna metodoloģija, kas izstrādāta, lai pilnībā novērstu šo neskaidrību, nodrošinot, ka katra koda rindiņa izseko formāli pārbaudītai specifikācijai, pirms tā nonāk ražošanā.

Atšķirībā no tradicionālajām izstrādes pieejām, kur specifikācijas pastāv kā brīvi rakstīti dokumenti, kas dažu nedēļu laikā novirzās no realitātes, VSDD specifikācijas uzskata par izpildāmiem, pārbaudāmiem un nepārtraukti pārbaudītiem artefaktiem. Rezultāts ir programmatūra, kas dara tieši to, ko ieinteresētās personas ir iecerējušas — ne vairāk, ne mazāk. Uzņēmumiem, kuros darbojas sarežģītas darbības platformas ar desmitiem savstarpēji savienotu moduļu, sekas ir transformējošas.

Ko patiesībā nozīmē pārbaudīta, uz specifikācijām balstīta izstrāde

VSDD pamatā ir disciplinēta inženiertehniskā pieeja, kas balstīta uz trim pīlāriem: formālu specifikāciju, automatizētu verifikāciju un nepārtrauktu izsekojamību. Izstrādātāji vispirms raksta mašīnlasāmas specifikācijas, kas definē ne tikai kas programmatūrai jādara, bet arī precīzus ierobežojumus, malas gadījumus un invariantus, kuriem ir jāatbilst katrā izpildes posmā. Tie nav neskaidri lietotāju stāsti vai precīzas prasības — tie ir stingri, nepārprotami līgumi starp sistēmu un tās ieinteresētajām personām.

Verificētais komponents ir tas, kas atšķir VSDD no vecākām, uz specifikācijām balstītām pieejām. Tā vietā, lai paļautos uz manuālu kodu pārskatīšanu vai pēcfakta testēšanu, lai apstiprinātu atbilstību, VSDD izmanto automatizētus pārbaudes rīkus, tostarp uz īpašumiem balstītu testēšanu, līgumu pārbaudītājus un dažos gadījumos formālus pierādījumu palīgus, lai nepārtraukti pārbaudītu, vai ieviešana atbilst specifikācijai. Ja kods novirzās no specifikācijas, būvēšana neizdodas. Ja specifikācijas mainās, ietekme uz esošo kodu tiek nekavējoties atklāta.

Tādējādi tiek izveidots tas, ko praktiķi sauc par "vienotu patiesības cilpu" — specifikācijas informē par ieviešanu, ieviešana tiek pārbaudīta, salīdzinot ar specifikācijām, un jebkuras izmaiņas tiek aktivizētas atkārtoti. Atsauksmju cikls ir minūtes, nevis mēneši.

VSDD darbplūsmas pieci posmi

Lai pieņemtu VSDD, nav nepieciešams pilnībā atmest esošos procesus. Lielākā daļa komandu to ievieš kā strukturētu pārklājumu papildus elastīgām vai iteratīvām darbplūsmām. Metodoloģija ir sadalīta piecos atšķirīgos posmos, kas veido nepārtrauktu ķēdi no biznesa nolūka līdz izvietotam kodam.

  1. Specifikācijas izveide: biznesa analītiķi un domēnu eksperti sadarbojas ar izstrādātājiem, lai rakstītu oficiālas specifikācijas, izmantojot strukturētus formātus — OpenAPI API, stāvokļa mašīnu diagrammas darbplūsmām vai domēnam specifiskas valodas (DSL) biznesa loģikai. Katrā specifikācijā ir iekļauti priekšnosacījumi, pēcnosacījumi un invarianti.
  2. Specifikācijas pārskatīšana un simulācija: pirms koda rakstīšanas specifikācijas tiek simulētas atbilstoši reālajiem scenārijiem. Ieinteresētās personas var "palaist" specifikāciju, lai redzētu, kā sistēma darbosies, un uztver pārpratumus, pirms tie kļūst par dārgām kļūdām.
  3. Ieviešana ar iekļauto verifikāciju: izstrādātāji raksta kodu, kas anotēts ar specifikācijas atsaucēm. Automatizētie rīki nepārtraukti pārbauda, vai katra funkcija, galapunkts un datu transformācija atbilst attiecīgajiem specifikācijas ierobežojumiem.
  4. Integrācijas pārbaude: kad moduļi tiek montēti, savstarpējā pārbaude nodrošina, ka tiek ievēroti līgumi starp komponentiem. Rēķinu moduļa izvades formātam ir jāatbilst tam, ko grāmatvedības moduļa specifikācijas paredz kā ievadi.
  5. Nepārtraukta specifikāciju uzraudzība: pēc izvietošanas izpildlaika monitori apstiprina, ka ražošanas darbība turpina atbilst specifikācijām, reāllaikā uztverot vides novirzi, datu anomālijas un trešās puses integrācijas kļūmes.

Šī piecu pakāpju cilpa nodrošina, ka specifikācijas nekad netiek uzskatītas par dokumentiem “rakstīt vienreiz, aizmirst uz visiem laikiem”. Tie ir dzīvi, elpojoši artefakti, kas attīstās kopā ar kodu bāzi un katrā solī ir pārbaudāmi pareizi.

Kāpēc tradicionālā testēšana vien ir neefektīva

Izplatīts iebildums pret VSDD ir: "Mēs jau rakstām testus — vai ar to nepietiek?" Godīgā atbilde ir nē, un dati to apstiprina. Microsoft empīriskās programmatūras inženierijas grupas pētījums atklāja, ka pat projektos ar 80% + koda pārklājumu regulāri tika nosūtīti defekti, kas sakņojas specifikāciju nepilnībās — situācijas, kad testi tika izturēti, jo tika pārbaudīta nepareizā lieta, nevis tāpēc, ka programmatūra bija pareiza.

Tradicionālie vienību un integrācijas testi pārbauda ieviešanas darbību, taču tie var pārbaudīt tikai izstrādātāja paredzētos scenārijus. Ja izstrādātājs pārprot uzņēmējdarbības noteikumu, viņš nepareizi uzrakstīs gan kodu, gan testu — un abi tiks izturēti. VSDD pārtrauc šo ciklu, izveidojot neatkarīgu verifikācijas slāni. Specifikāciju veido domēna eksperti, nevis izstrādātāji, kas raksta ieviešanu, radot dabisku pārbaudi un līdzsvaru, kas agri uztver novirzes.

Visbīstamākā kļūda jebkurā sistēmā nav tā, kas to avarē — tā ir tā, kas klusi rada nepareizu rezultātu, kamēr katrs komplekta tests ir zaļš. Verified Spec-Driven Development pastāv tieši šīs kategorijas kļūmju uztveršanai, nodrošinot, ka pareizība tiek mērīta ar biznesa nolūku, nevis izstrādātāja pieņēmumiem.

Apsveriet iespēju izveidot algas aprēķināšanas programmu, kurai jāapstrādā virsstundu likmes 14 dažādās jurisdikcijās. Izstrādātājs var rakstīt testus, kas aptver piecas viņam vispazīstamākās jurisdikcijas, bet pārējās deviņās trūkst malu gadījumu. Saskaņā ar VSDD specifikācijā būtu skaidri norādītas visas 14 kārtulu kopas, un automatizētā verifikācija atzīmētu jebkuru jurisdikciju bez atbilstošas ieviešanas — pirms kods sasniedz kvalitātes nodrošināšanu.

Ietekme reālajā pasaulē: no kosmosa līdz biznesa platformām

VSDD intelektuālās saknes ir drošībai kritiskās nozarēs. NASA reaktīvo dzinēju laboratorija gadu desmitiem ir izmantojusi formālu specifikāciju un verifikāciju — Mars Curiosity autonomā navigācijas sistēma tika izveidota saskaņā ar formāli pārbaudītām specifikācijām, kas garantēja, ka transportlīdzeklis nekad nenonāks neatgūstamā stāvoklī. Airbus izmanto līdzīgas metodes savās vadu kontroles sistēmās, kur specifikāciju trūkums nav tikai kļūda — tā ir potenciāla katastrofa.

Taču metodoloģija strauji izplatās ārpus kosmosa un aizsardzības. Finanšu tehnoloģiju uzņēmumi ir pieņēmuši VSDD principus, lai pārbaudītu, vai darījumu apstrādes dzinēji vienlaikus atbilst normatīvajām prasībām vairākās jurisdikcijās. Veselības aprūpes platformas izmanto specifikāciju pārbaudi, lai nodrošinātu, ka klīnisko lēmumu atbalsta rīki nekad neiesaka zāļu mijiedarbību, kas pārkāpj FDA vadlīnijas. Un arvien biežāk moduļu biznesa platformas ar desmitiem savstarpēji saistītu rīku pievēršas VSDD, lai pārvaldītu vairāku moduļu mijiedarbības sarežģītību.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Uzņēmumā Mewayz, kur 207 moduļiem — aptverot CRM, rēķinu izrakstīšanu, algu, personāla pārvaldību, autoparka pārvaldību, analīzi un daudz ko citu, vairāk nekā 138 000 lietotāju ir jāstrādā kopā, VSDD principi tieši informē platformas inženierijas praksi. Ja rēķinu izrakstīšanas moduļa nodokļu aprēķināšanas loģikas atjauninājums var tikt iekļauts algu aprēķināšanā, grāmatvedībā un analīzē, pārbaudītās specifikācijas nodrošina, ka katra pakārtotā atkarība tiek uzskaitīta un apstiprināta pirms izmaiņu piegādes. Šādi platformu var mērogot līdz simtiem moduļu bez integrācijas kļūmēm, kas parasti skar sarežģītas biznesa sistēmas.

VSDD ieviešana bez okeāna vārīšanas

Viens no lielākajiem nepareizajiem priekšstatiem par VSDD ir tāds, ka pirms vērtības nodrošināšanas ir nepieciešams pilnīgs process un mēnešiem ilga iestatīšana. Praksē visveiksmīgākās adopcijas sākas ar mazumiņu un pakāpeniski paplašinās. Komandas, kas pirmajā dienā mēģina formāli norādīt visu savu sistēmu, neizbēgami izdeg. Komandas, kas sāk ar visaugstākā riska moduli un izvēršas uz āru, redz salikto atdevi.

Šeit ir pragmatiska ieviešanas stratēģija, kas piemērota jebkura lieluma komandām:

  • Sāciet ar integrācijas robežām. Moduļu vai pakalpojumu datu apmaiņa ir vieta, kur specifikāciju nepilnības rada vislielāko kaitējumu. Vispirms formāli norādiet savus API līgumus — pieprasījuma/atbildes shēmas, kļūdu kodus, ātruma ierobežojumus un autentifikācijas prasības.
  • Pievienojiet invariantus savai biznesa loģikai. Nosakiet noteikumus, kuriem vienmēr ir jābūt patiesiem — kontu atlikumiem nekad nedrīkst būt negatīvu, tikšanās laikiem nedrīkst pārklāties, darbinieku ierakstos ir jābūt derīgam nodokļu maksātāja ID. Kodējiet tos kā pārbaudāmus apgalvojumus.
  • Automatizējiet verifikāciju CI/CD. Integrējiet specifikāciju verifikāciju savā nepārtrauktajā integrācijas konveijerā, lai katrs izvilkšanas pieprasījums pirms sapludināšanas tiktu pārbaudīts saskaņā ar specifikāciju. Tas rada ātru atgriezenisko saiti, neprasot izstrādātājiem mainīt ikdienas darbplūsmu.
  • Sadarbojieties ar specifikācijām. Izmantojiet rīkus, kas ļauj netehniskām ieinteresētajām personām lasīt specifikācijas un sniegt ieguldījumu to izstrādē. Kad finanšu direktors var pārbaudīt, vai rēķinu izrakstīšanas specifikācijas atbilst jaunākajiem nodokļu noteikumiem, jūs esat novērsis plaisu starp uzņēmējdarbības nolūku un tehnisko ieviešanu.

Galvenais ir apstrādāt VSDD kā gradientu, nevis bināru. Pat daļēja pieņemšana — tikai jūsu vissvarīgāko uzņēmējdarbības noteikumu pārbaude — var novērst visas ražošanas defektu kategorijas. SaaS uzņēmums, kas pārbaudīja tikai ar norēķiniem saistītās specifikācijas, ziņoja, ka pirmajā ceturksnī pēc pieņemšanas ir samazinājies ar norēķiniem saistītā atbalsta biļešu apjoms.

AI loma nākamās paaudzes specifikāciju verifikācijā

VSDD un mākslīgā intelekta krustpunkts ir vieta, kur ir metodoloģijas nākotne. Ar mākslīgo intelektu darbināmi rīki sāk automatizēt darbietilpīgākās VSDD darbplūsmas daļas — ģenerējot sākotnējās specifikācijas no esošajām kodu bāzēm, identificējot specifikāciju nepilnības, analizējot ražošanas kļūdu žurnālus, un pat ieteikt specifikāciju precizējumus, pamatojoties uz novērotajiem lietotāju uzvedības modeļiem.

Lielie valodu modeļi tagad var pārvērst dabiskās valodas biznesa prasības strukturētās, mašīnpārbaudāmās specifikācijās ar ievērojamu precizitāti, samazinot specifikāciju izveides sašaurinājumu, kas vēsturiski padarīja formālās metodes nepraktiskas ātri mainīgām komandām. Kad produktu menedžeris raksta “klientiem uzņēmuma plānā jāsaņem 15% atlaide pasūtījumiem virs 10 000 ASV dolāru”, mākslīgā intelekta rīki var ģenerēt atbilstošās oficiālās specifikācijas, pārbaudes gadījumus un verifikācijas apgalvojumus — pārvēršot teikumu par pārbaudītu līgumu sekundēs, nevis stundās.

Platformas, piemēram, Mewayz, savos darbības moduļos izmanto AI automatizāciju, lai ikdienas biznesa procesos nodrošinātu šādu precizitātes līmeni. Kad uzņēmums konfigurē pielāgotas darbplūsmas — CRM datus savieno ar rēķinu izrakstīšanas kārtulām, lai veiktu algas aprēķinus, AI atbalstītā pārbaude var analizēt visu darbplūsmas ķēdi un atzīmēt loģiskās neatbilstības, pirms tās izpaužas kā kļūdas reālos darījumos. Tā ir VSDD principu praktiska pielietošana plašā mērogā: nodrošinot, ka sarežģīta, lietotāja konfigurēta biznesa loģika paliek pareiza pat tās attīstības gaitā.

Specifikācijas pirmais domāšanas veids: kultūras maiņa, ko ir vērts veikt

Iespējams, VSDD nenovērtētākais aspekts nav tehniskais, bet gan kultūras aspekts. Komandas, kuras pieņem, pirmkārt, domā par specifikācijām, ziņo par uzlabojumiem, kas sniedzas daudz tālāk par defektu samazināšanu. Uzlabojas saziņa starp tehniskās un netehniskās komandas locekļiem, jo ​​specifikācijas nodrošina kopīgu, nepārprotamu valodu. Ieslēgšanās laiks samazinās, jo jaunie izstrādātāji var izlasīt specifikācijas, lai izprastu sistēmas darbību, neveicot kodu bāzes reverso inženieriju. Arhitektūras lēmumi kļūst pārdomātāki, jo specifikācijas maiņas (un šo izmaiņu izplatīšanas verifikācijas ceļā) izmaksas liek komandām rūpīgi pārdomāt, pirms tiek veikta sarežģītība.

Programmatūras nozare ir pavadījusi gadu desmitiem, lai optimizētu piegādes ātrumu. VSDD nepalēnina piegādi — tas novirza laiku, kas būtu bijis pavadīts atkļūdošanai, labojumfailu labošanai un atvainošanai klientiem, lai nodrošinātu iepriekšēju skaidrību, kas novērš šo problēmu rašanos. Uzņēmumiem, kas veic misijai kritiskas operācijas desmitiem moduļu un apkalpo tūkstošiem lietotāju, šis kompromiss ir ne tikai vērtīgs, bet arī būtisks. Jautājums nav par to, vai jūsu organizācija var atļauties pieņemt verificētu specifikāciju virzītu attīstību. Tas ir tas, vai varat atļauties to nedarīt.

Bieži uzdotie jautājumi

Kas ir verificēta specifikāciju vadīta izstrāde (VSDD)?

VSDD ir metodika, kas novērš neskaidrības programmatūras projektos, pieprasot, lai katra funkcija, biznesa noteikums un arhitektūras lēmums tiktu ietverts pārbaudītā specifikācijā pirms koda rakstīšanas. Atšķirībā no tradicionālajām pieejām, kurās pieņēmumi virza attīstību, VSDD nodrošina saskaņošanu starp ieinteresētajām personām un izstrādātājiem, izmantojot strukturētas, pārbaudāmas specifikācijas, tādējādi ievērojami samazinot nozares pārskatos noteikto projektu neveiksmju līmeni par 69%.

Kāpēc lielākā daļa programmatūras projektu neizdodas, neskatoties uz prasmīgām komandām?

Galvenais iemesls nav talants vai budžets, bet gan neskaidrība. Komandas veido funkcijas, kuras neviens nav pieprasījis, nosūta kodu, kas ir pretrunā ar uzņēmējdarbības noteikumiem, un pavada mēnešus, pārveidojot sistēmas, kuru pamatā ir nepārbaudīti pieņēmumi. VSDD to risina, padarot specifikācijas par vienīgo patiesības avotu, nodrošinot, ka katra ieinteresētā puse vienojas par to, kas tiek veidots pirms izstrādes sākuma, tādējādi novēršot dārgas novirzes un tvēruma novirzes visā projekta dzīves ciklā.

Kā VSDD atšķiras no Agile vai Waterfall metodoloģijām?

Lai gan Agile uzsver iteratīvo piegādi un Waterfall seko stingrām secīgām fāzēm, abās bieži ir specifikācijas nepilnības. VSDD papildina šos ietvarus, pievienojot verifikācijas slāni — specifikācijas tiek pārbaudītas atbilstoši biznesa prasībām pirms ieiešanas jebkurā izstrādes ciklā. Tas nozīmē, ka neatkarīgi no tā, vai strādājat sprintā vai fāzēs, katrs uzdevums izriet no apstiprinātas, nepārprotamas prasības, ko ieinteresētās personas ir skaidri apstiprinājušas.

Vai VSDD var lietot komandām, kas izmanto tādas platformas kā Mewayz?

Pilnīgi. Tādas platformas kā Mewayz — biznesa operētājsistēma ar 207 moduļiem, sākot no USD 19 mēnesī, jau centralizē darbības, automatizāciju un projektu pārvaldību. Piemērojot VSDD principus šādos rīkos, tiek nodrošināts, ka katra darbplūsma, integrācija un automatizēts process tiek veidots, pamatojoties uz pārbaudītām specifikācijām, tādējādi samazinot pārstrādāšanu un palīdzot komandām ātrāk piegādāt uzticamas sistēmas visā biznesa grupā.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime