Kasu:
- Võimalus muuta ebamäärased äritaotlused AI toega selgeteks, testitavateks tarkvaranõueteks ja kasutajalugudeks
- Võimalus võrrelda süsteemi disaini, andmemudeli ja arhitektuuriliste otsuste plusse ja miinuseid struktureeritult tehisintellektiga
- Võimalus kriitiliselt kontrollida tehisintellekti kavandatud disaini nõuete, skaleeritavuse ja piirangute suhtes
Enamik tarkvaraprojekte ebaõnnestub mitte halva koodi, vaid valesti mõistetud nõuete tõttu. Ühelauseline päring, nagu „Luba kasutajatel aruandeid alla laadida”, jätab endast maha kümneid vastuseta küsimusi: millises vormingus? Kes vastutab? Mitu rekordit? Mis siis, kui see on aeglane? Nõuete analüüs (äripäringu tõlkimine selgeteks, testitavateks tehnilisteks vajadusteks) ja tarkvara projekteerimine (struktuur paberil nende vajaduste rahuldamiseks) on etapp, kus enne koodi kirjutamist välditakse kõige kallimad vead. Selles üksuses õpime kasutama tehisintellekti selles etapis "mõttepartnerina": partnerit, kes demüstifitseerib ebakindlust, valib välja valikud, kuid jätab lõpliku otsuse teie teha.
AI toodab siin kahte suurt väärtust. Esiteks esitab see küsimusi, mille vahele jätate; See toob päringus pinnale peidetud eeldused ja servajuhtumid. Teiseks koondab see kiiresti disainiotsuse plussid ja miinused. Kuid see on oht: tehisintellekt annab üldiseid soovitusi "parima tavana", teadmata täielikult teie konteksti (eelarve, meeskond, olemasolev süsteem, õiguslikud piirangud). Teie ülesanne on filtreerida see nõuanne oma tõe vastu.
Mõisted: Kasutajalugu: Vajadust väljendav lühike lause kujul "... nagu, ma tahan, et saaks... sest...". Vastuvõtmise kriteeriumid: testitavad tingimused, mis peavad olema täidetud, et tööd loetaks tehtuks. Mittefunktsionaalne nõue: nõuded, mis on seotud pigem sellega, kuidas see käitub, mitte sellega, mida see teeb, nagu kiirus, turvalisus, mastaapsus.
Ebamäärasest taotlusest testitava nõudeni
Hea nõue on mõõdetav ja kontrollitav. Mitte "las süsteem olla kiire", vaid "lase otsingutulemustel 500 ms jooksul tagastada". Siin on samm-sammult viis AI kasutamiseks määramatuse vähendamiseks.
- Esitage taotlus sellisena, nagu see on, ja laske küsimus genereerida. Ärge paluge tehisintellektilt lahendust, vaid kõigepealt "loetlege küsimusena kõik ebaselged küsimused".
- Sina annad vastused. Ainult teie teate konteksti; Vastake tehisintellekti küsimustele oma tegelike äripiirangutega.
- Laske see tõlkida kasutajalugudeks ja aktsepteerimiskriteeriumideks. Tõlgi selgitatud vajadus testitavateks üksusteks.
- Lisage servajuhtumid ja negatiivsed stsenaariumid. "Tühi tulemus", "volituseta kasutaja", "liiga suur fail" jne.
Ebaselguse ekstraktimise viip: "Tõlgime järgmise äritaotluse tarkvaranõudeks. Ärge pakkuge veel lahendust. Esmalt eraldage küsimuste loendina KÕIK ebaselgused ja peidetud oletused, millele selles päringus vastust ei leitud. Grupeerige küsimused järgmiste pealkirjade alla: ulatus, kasutaja/volitus, andmemaht, jõudlus, veatingimused, turvalisus. Taotle kasutajate allalaadimise tellimust:"
Kasutajalugu + aktsepteerimiskriteeriumide viip: "Jagage järgmine selgitatud vajadus kasutajalugudeks, mis vastavad INVESTI põhimõtetele. Kirjutage iga loo kohta 3-5 testitavat aktsepteerimiskriteeriumi (formaadis antud-millal-siis). Lisage vähemalt 2 negatiivset stsenaariumi (volitamata juurdepääs, tühjad andmed). Vajadus: [kirjutage selgitatud vajadus siia]"
Disainiotsuste võrdlemine tehisintellektiga
Disain on pidev kompromiss: kiirus versus paindlikkus, lihtsus versus mastaapsus? AI paneb need kompromissid kiiresse arvutustabelisse. Näiteks saate "teatise saatmise" funktsiooni puhul arutleda, kas kasutada sünkroonset (saada nõudmisel) või asünkroonset (järjekord, saatmine taustal) lähenemist.
Kujunduse võrdlusviip: "Kavandan funktsiooni "Saada kasutajale meiliteatis". Võrrelge kahte lähenemisviisi: (A) sünkroonne edastamine HTTP-päringu ajal, (B) asünkroonne edastamine taustal, pannes selle sõnumijärjekorda. Tehke tabel järgmiste telgede kohta: kasutaja ooteaeg, veataluvus, keerukus, lauses, mis vähendaks ühe infrastruktuuri maksumust, oleks keeruline. lõpuks ärge tehke otsust minu eest."
telg
sünkroonne ülekanne
Asünkroonne (järjekord)
Kasutaja ooteaeg
Pikk (ootab saadetist)
Lühike (tagastab kohe)
Vea taluvus
Madal (taotlus plahvatab, kui saatmine plahvatab)
Kõrge (võimalik uuesti proovida)
keerukus
madal
Keskmiselt kõrge (järjekorra infrastruktuur)
Infrastruktuuri maksumus
madal
Vajalikud lisakomponendid
Kuhu see sobib
Väike helitugevus, lihtne rakendus
Suur maht, kriitiline kohaletoimetamine
Näpunäide: tehisintellektile ütlemine „ära tee minu eest otsust, vaid näita mulle võimalusi ja tingimusi” sunnib sind mõtlema ja vähendab soovituse pimesi vastuvõtmise riski. Parima disainiotsuse teeb inimene, kes tunneb teie konteksti (teie).
Nõrk viip / Tugev viip
NÕRK: "Kavandada andmebaas tellimuste süsteemi jaoks." (Tulemus: milline skaala, millised seosed, millised piirangud ei ole selged; üldine, ebareaalne skeem.) TUGEV: "Paku andmemudeli mustandit väikese e-kaubanduse jaoks. Üksused: klient, tellimus, toode, tellimuse artikkel. Piirangud: tellimuses võib olla palju tooteid; toote hind võib aja jooksul muutuda, kuid praegune hind peaks säilima eelmise tellimuse kohta; oodatav tellimus 0 päeva jooksul; ja miks see "Selgitage, et tegite otsuse. Täpsustage, kuidas te hinnaajaloo probleemi lahendasite. Andke see olemite ja väljade loendina, mitte koodina."
Võimsa viipe erinevus; skaalat (500 tellimust päevas), ärireeglit (minevik hind tuleb säilitada) ja soovitud väljundvormingut. Üksainus lause nagu "Varem hind tuleb säilitada" muudab kujundust täielikult; Kui te seda ei täpsusta, loob AI ebatäpse, kuid usutava välimusega diagrammi.
Mini korpused
Juhtum 1 – varjatud oletus. Meeskond kodeerib otse taotluse "kasutaja saab profiilifoto üles laadida". Teine meeskond küsis AI-lt ebakindluse kohta: "maksimaalne suurus? lubatud vormingud? sobimatu sisu juhtimine? Kas kustutada vana foto?" See tekitab 8 sarnast küsimust. Esimene meeskond saab probleemist teada tootmises, kui serveri täidab 20 MB faili; Teine meeskond lahendab selle disainis.
Juhtum 2 – vale skaalaeeldus. AI pakub aruandlusfunktsiooni jaoks keerukat vahemälukihti. Kui insener juhib tähelepanu sellele, et tegelikud andmed on vaid 30 aruannet päevas, lihtsustab AI soovitust. Skaala määramata jätmine toob kaasa tarbetu keerukuse; täpsustamine säästab 2 nädalat tarbetut tööd.
Juhtum 3 – aktsepteerimiskriteeriumide lünk. "Mis juhtub, kui makse ebaõnnestub?" Kuna seda küsimust kunagi ei esitatud, märgib tellimussüsteem ebaõnnestunud makse korral tellimuse ikkagi "kinnituks". Tehisintellekti loodud negatiivsete stsenaariumide loend kajastab seda lünka; 1 rea aktsepteerimiskriteeriumid hoiavad ära tõelise raha kadumise.
Levinud vead
- Päringu edastamine otse koodile. Enne ebaselguse lahendamist kirjutatud kood lahendab kiiresti vale probleemi.
- Pimesi järgides tehisintellekti üldist "parimat tava". Kui te oma konteksti (mastaap, eelarve, meeskond) ei täpsusta, ei tööta soovitus teie jaoks.
- Mittefunktsionaalsete nõuete vahelejätmine. Kui kiirust, turvalisust ja ulatust ei täpsustata, jääb kujundus poolikuks.
- Lihtsalt mõeldes õnnelikule stsenaariumile. Negatiivsed stsenaariumid, nagu tühjad andmed, volitamata kasutaja, veaolek, tuleks kujundusse lisada.
- Otsuse delegeerimine tehisintellektile. AI genereerib valikuid; Teie otsustate, milline kompromiss teie ettevõttele sobib.
Kokkuvõttes
Nõuete analüüs ja projekteerimine on etapp, kus tabatakse kõige odavamad vead. Siin genereerib AI küsimusi, mis näitavad ebakindlust, koostab kasutajate lugusid ja aktsepteerimiskriteeriume ning koostab kujunduse kompromisse. Aga ainult sina tead konteksti; Teie ülesanne on filtreerida tehisintellekti soovitused teie ulatuse, eelarve, meeskonna ja juriidiliste piirangute põhjal ning teha lõplik otsus. Distsipliin “ära tee minu eest otsust, näita mulle võimalusi” viib nii parema disaini kui ka sügavama õppimiseni.
Rakenduse ülesanne
Valige oma kontekstist ühelauseline töötaotlus. Esiteks rakendage tehisintellektile ebaselguse viipa ja vastake küsimustele oma tegelike piirangutega. Seejärel tõlkige selgitatud vajadus vähemalt kaheks kasutajalooks ja igaühe jaoks 3 aktsepteerimiskriteeriumiks; Lisage vähemalt 1 negatiivne stsenaarium. Lõpuks koosta kujundusotsuse (sünkroonne/asünkroonne, tabeli struktuur jne) võrdlustabel ja kirjuta oma otsus 2 lausega.
kontrollnimekiri
- [ ] Eemaldasin küsimustena ebaselgused enne päringu koodi sisestamist.
- [ ] Andsin tehisintellektile konteksti (mastaap, volitused, jõudlus, õiguslik piirang).
- [ ] Jagasin kasutajalood testitavateks aktsepteerimiskriteeriumideks.
- [ ] Lisasin vähemalt ühe negatiivse/serva stsenaariumi.
- [ ] Hindasin kujundusotsust kompromissitabeliga.
- [ ] Lõpliku otsuse tegin oma konteksti põhjal, ma ei jätnud seda tehisintellektile.