Mfano uliotekelezwa uliopingana na kikokotozi wake wenyewe
Ninaendesha tovuti yenye kikokotozi wa gharama za uboreshaji wa nyumba.
Kila ukurasa unaonyesha gharama ileile katika sehemu nne tofauti:
- Widget inayofanya kazi (interactive).
- Jedwali la marejeleo lisilotikisika (static).
- Mifano ya maelezo ya maandishi.
- Sehemu ya Maswali Yanayoulizwa Mara kwa Mara (FAQ).
Niligundua hitilafu. Mfano wa maandishi ulisema mradi uligharimu $62,300. Widget ya kikokotozi ilisema mradi uleule uligharimu $56,779.
Tofauti ilikuwa $5,500.
Hitilafu hiyo ilitokea kwa sababu niliandika namba kwa mkono. Nilitumia dhana tofauti kwa maandishi kuliko nilivyotumia kwenye kodi. Maandishi yalichukulia kuwa kuna kifaa kipya cha HVAC. Kodi ilichukulia kuwa kuna mfumo uliopo tayari. Zote zilikuwa sahihi, lakini hazikulingana.
Hili ni kosa la kawaida. Unapohifadhi ukweli uleule katika sehemu mbili, huanza kutofautiana.
Nilitatua hili kwa kutumia kanuni mbili.
Kanuni ya 1: Mantiki ya kuanzia kwenye chanzo (Source-first logic).
Kazi (function) ya kikokotozi ndiyo sehemu pekee ambapo namba huzaliwa. Sifanyi tena uandishi wa namba kwenye majedwali au aya. Badala yake, ninatumia kazi hiyo kutengeneza majedwali na mifano wakati wa ujenzi (build time).
Ikiwa kazi hiyo itabadilika, ukurasa mzima utabadilika. Jedwali na widget vitakubaliana kila wakati kwa sababu vinatumia mantiki ileile.
Kanuni ya 2: Ongeza asili (provenance).
Namba ina manufaa tu ikiwa unajua imetoka wapi. Kila hesabu sasa inajumuisha:
- Scenario maalum iliyotumiwa.
- Chanzo cha data.
- Tarehe ilipofikiwa.
- Tarehe ya mwisho ya kutumika kwa data hiyo.
Data ya gharama si ukweli wa kudumu. Ni ukweli unaoweza kupitwa na wakati. Kuongeza tarehe ya mapitio kunanikumbusha kuhuisha data kabla haijakuwa isiyo sahihi.
Chanzo kimoja cha ukweli (single source of truth) kinakufanya uwe na msimamo thabiti. Kuongeza asili (provenance) kunakufanya uwe mkweli.
Ikiwa unaonyesha namba ileile katika sehemu mbili, usiiandike tena. Iingize (Import). Acha mchakato wako wa ujenzi (build process) ushughulikie marudio hayo.
Chanzo: https://dev.to/mark_b5f4ffdd8e7cd58/the-worked-example-that-disagreed-with-its-own-calculator-4cp9