Deni la Spec Halitoweki Unapolipata. Linahamia Sehemu Nyingine.
Kutatua tatizo hakumaanishi kuwa limeisha kabisa. Wakati mwingine, unalihamishia sehemu nyingine tu.
Hivi karibuni nilifanya ukaguzi wa mradi mmoja ili kutafuta deni la spec (spec debt). Hizi ni pengo katika maelekezo ambazo husababisha hitilafu (bugs) au tabia mbaya ya AI. Nilirekebisha vitu saba maalum. Baada ya marekebisho, majaribio (tests) yalifanikiwa. Kila kitu kilionekana kuwa sawa.
Lakini deni hilo halikutoweka. Lilihamia kutoka kwenye faili za vipengele (feature files) kwenda kwenye maelezo ya hatua (step definitions).
Hapa kuna nilichojifunza kutokana na kurekebisha vitu hivi:
- Usahihi ni muhimu. Badala ya kusema "jibu ni la haraka," sema "jibu linarudi ndani ya sekunde 12 baada ya kuwasilisha oda." Hii inafunga muda mahususi.
- Epuka utata. "Imerudiwa mara 2" haieleweki. Je, hiyo inamaanisha majaribio 2 kwa jumla au 3? Tumia "isizidi maombi 2 ya malipo kwa jumla" ili kuwa na uhakika.
- Taja mfumo unaofanya kazi. Kusema "stok imeachiliwa" ni kutokuwa na uhakika. Bainisha kuwa "huduma ya stoku (inventory service) inapokea ombi la kuachilia bidhaa X."
- Ondoa ahadi za uongo. Ikiwa hatua inapita kwa sababu kipengele bado hakipo, iondoe hatua hiyo. Jaribio linalopita kwa mtiririko usio uwepo ni uongo.
- Bainisha nini ni "sahihi." Kamwe usitumie maneno kama "sahihi" au "muhimu" bila kutumia thamani halisi. Tumia "ina order_id 123" badala ya "ina id sahihi."
Nilijenga mfumo (framework) wa kutambua matatizo haya. Jiulize maswali haya matano kwa kila hali (scenario):
- Nani anahusika na hali hii?
- Ni maamuzi gani hayaachi wazi?
- Je, istilahi zote zimefafanuliwa hapa?
- Je, hii inaelezea tabia (behavior) au utekelezaji (implementation)?
- Ni nini kinachokosekana katika maelezo haya?
Mtego mkubwa ni pengo kati ya maandishi na kodi (code). Unaweza kuandika maelekezo kamili na sahihi kwenye spec yako. Lakini ikiwa kodi yako ya msingi inatumia njia ya mkato ili kufanikisha jaribio hilo, bado unakuwa na deni.
Spec inasema "unda oda kupitia API." Lakini kodi inafanya tu kuingiza oda moja kwa moja kwenye kanzi data (database) ili kuokoa muda. Jaribio linapita, lakini deni limehamia kutoka kwenye hitaji kwenda kwenye utekelezaji.
Usijaribu kuandika spec kamili mara ya kwanza. Ziandike, zikague, na uzirekebishe.
Source: https://dev.to/diyaburman/spec-debt-doesnt-disappear-when-you-fix-it-it-migrates-d25
Optional learning community: https://t.me/GyaanSetuAi
