Makosa 1000, Google Sheet Moja, na Saa Tano Ambazo Sitawahi Kuzipata Tena
Kila hitilafu ina hadithi yake. Hii ilianza na uongo: "Inafanya kazi kwenye mashine yangu."
Tulijaribu kipengele cha uingizaji wa data (data import feature) kwa kampuni ya kutafuta wateja (lead generation). Ilionekana kuwa rahisi. Unabonyeza kitufe, unapakia faili, na data inapakuliwa.
Watu wengi hudhani kuwa vipengele hivi vinafanya kazi. Watafiti (testers) wapo ili kuthibitisha kuwa dhana hiyo si sahihi.
Njia ya kawaida (happy path) ni mtego.
Ukipakia faili safi la Excel, mfumo unapita. Unaenda kula chakula cha mchana. Unadhani kazi imekamilika. Ukisimama hapo, unatuma kodi iliyoharibika. Mteja atagundua hitilafu hiyo Jumatatu asubuhi wakati mfumo unatumika (production).
Tatizo lilikuwa ni Google Sheet.
Watumiaji halisi hawatumii faili safi za Excel. Wanatumia Google Sheets zenye mchanganyiko wa kila kitu. Wanatengeneza vurugu kwenye hati za kielektroniki (spreadsheets) na kutarajia mifumo iweze kuzihimili.
Tulipopakia Google Sheet, mfumo ulishindwa. Ulitoa makosa zaidi ya 1,000. Data ile ile na kitufe kile kile vilisababisha kuanguka kabisa kwa sababu muundo (format) ulibadilika.
Kisha tukajaribu ubora wa data.
- Mistari michache isiyo sahihi? Mfumo uliiruka na kuendelea.
- Mamia ya mistari iliyochafuka? Mfumo uliharibika.
Mantiki ya uhakiki (validation logic) ilifanya kazi kwa makosa madogo. Ilishindwa ilipokabiliana na mlima wa data chafu.
Tulitumia saa tano kutafuta na kurekebisha hitilafu (debugging). Tulilaumu faili, kivinjari (browser), na data. Hata kahawa tuliilaumu.
Saa hizo tano zilikuwa na gharama ndogo. Mbadala wake ungekuwa mkubwa zaidi. Ikiwa mteja atagundua hitilafu hii, atapoteza imani na bidhaa yako. Unalipia hitilafu wakati wa majaribio kwa kutumia muda. Unalipia hitilafu wakati wa matumizi (production) kwa kupoteza wateja.
Ninapendelea kulipia kwa muda.
Ili kupata hitilafu halisi, lazima ubadilishe mtazamo wako. Usiulize kama programu inafanya kazi. Uliza jinsi ya kuivunja.
Acha kufikiria kama mtengenezaji programu (developer). Anza kufikiria kama:
- Mtumiaji mvivu anayepakia muundo wa faili usio sahihi.
- Mtumiaji mchanganyiko mwenye seli zilizounganishwa (merged cells) na mistari mitupu.
- Mtumiaji wa kiasi kikubwa mwenye rekodi 4,000 chafu badala ya 10 safi.
- Mleta matatizo ambaye hufanya vilevile anavyopaswa kuepuka.
Programu huvunjika kutokana na ingizo (inputs) ambazo huzitegemei.
Vipengele "rahisi" ndivyo hatari zaidi. Kitufe cha uingizaji (import) na kisanduku cha utafutaji vinaonekana kutokuwa na madhara. Lakini haviko hivyo.
Wakati mwingine kipengele kikipita katika njia ya kawaida, uwe mtu anayeuliza: "Vipi nikipakia faili mbaya zaidi inayowezekana?"
Kisha nenda ukafanye hivyo.
