𝗪𝗵𝗮𝘁 𝗜𝘀 𝗦𝗽𝗲𝗰-𝗗𝗿𝗶𝘃𝗲𝗻 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁?
Programu nyingi za AI huanza kwa njia ile ile. Unampa wakala (agent) maelekezo (prompt) mafupi. Unamshuhudia akiandika kodi. Inaonekana ina kasi. Kisha unagundua kuwa wakala huyo ameunda kitu kisichofaa. Unatumia saa moja kuirekebisha.
Wakala hakuwa na shida kuandika kodi. Shida ilikuwa ni kuelewa nia yako.
Spec-driven development inatatua hili. Badala ya kutoa maelekezo ya kodi, unaunda spec kwanza. Spec hii ni mpango ulioandikwa. Unarekebisha mpango huo hadi uwe sahihi. Baada ya hapo ndipo unamruhusu wakala aunde.
Zana mpya kama AWS Kiro na GitHub spec-kit zinafanya hili kuwa rahisi. Lakini wazo hili ni la zamani. Ni uhandisi mzuri tu.
Spec nzuri ina sehemu tatu:
• Requirements: Kile ambacho kipengele (feature) hufanya na jinsi ya kupima mafanikio. Hii inaelezea tabia, si kodi. • Design: Mpango wa kiufundi. Hii inajumuisha usanifu (architecture), mifano ya data (data models), na vizuizi (constraints). • Tasks: Vipande vidogo vinavyoweza kufanyiwa majaribio. Hivi ni rahisi kiasi kwamba wakala anaweza kuvimaliza kwa mkupuo mmoja.
Kila sehemu inajenga inayofuata. Mahitaji huongoza ubunifu. Ubunifu unaunda kazi. Kazi huongoza wakala.
Hapo awali, kuandika kodi kulikuwa polepole. Kuandika spec kulihisi kama upotezaji wa muda. Sasa, AI huandika kodi kwa dakika chache. Kikwazo si tena kuchapa. Kikwazo ni kuamua hasa nini cha kuunda.
Spec inahamisha makosa yako kwenye sehemu ya gharama nafuu. Sentensi isiyo sahihi kwenye hati ni rahisi kurekebisha. Utekelezaji usio sahihi kwenye codebase ni gharama kubwa kuufuta.
Kupitia kodi (reviewing code) ni vigumu. Lazima ufanye uhandisi wa kinyume (reverse-engineer) ili kuelewa kile mwandishi alichomaanisha. Kupitia spec ni rahisi. Mnapatana juu ya nia kabla ya kodi yoyote kuwepo.
Njia hii pia inakusaidia kupanua uwezo (scale). Unaweza kutoa kazi tofauti kwa wakala tofauti. Spec inafanya kazi kama mkataba wa kuwafanya waende sambamba.
Mtazamo huu si wakati wote ndio jibu.
- Ni kupitiliza kwa marekebisho madogo. Usiandike spec kwa mabadiliko ya mstari mmoja.
- Spec zinaweza kupitwa na wakati. Ikiwa kodi inabadilika lakini spec haibadiliki, spec inakuwa uongo.
- Wakala hawatii kila wakati. Spec inapunguza mkanganyiko, lakini lazima bado upitie matokeo.
Tumia spec kufanya nia yako iwe wazi. Itumie kukamata makosa wakati bado ni maneno tu.
Source: https://dev.to/jcamarate/what-is-spec-driven-development-with-ai-coding-agents-56mc
Optional learning community: https://t.me/GyaanSetuAi