મારા README માં 80 ટૂલ્સ હતા. મારા કોડમાં 96 હતા. અઠવાડિયા સુધી કોઈએ ધ્યાન ન આપ્યું.
હું એક ઓપન-સોર્સ પ્રોજેક્ટ ચલાવું છું. તે AI એજન્ટ્સ માટે બ્રાઉઝર ઓટોમેશનનો ઉપયોગ કરે છે.
મારા README માં લખ્યું હતું કે પ્રોજેક્ટમાં 80 ટૂલ્સ છે. મેં તે નંબર ટેગલાઇન, નેવિગેશન અને સોશિયલ મીડિયા ટેક્સ્ટમાં મૂક્યો હતો.
ગયા અઠવાડિયે મેં એક ઓડિટ કર્યું. મેં મારા README ની સરખામણી મારા વાસ્તવિક કોડ સાથે કરી.
કોડમાં 96 ટૂલ્સ નોંધાયેલા હતા.
એક જ ફાઇલમાં મારી પાસે ત્રણ અલગ-અલગ સત્ય હતા:
- માર્કેટિંગ નંબર: 80
- ડોક્યુમેન્ટેડ લિસ્ટ: 83
- વાસ્તવિક કોડ: 96
તેર ટૂલ્સ સંપૂર્ણપણે અનડોક્યુમેન્ટેડ (undocumented) હતા. યુઝર્સને ખબર જ નહોતી કે તે અસ્તિત્વમાં છે.
સૌથી જોખમી ભાગ આ તફાવત (gap) હતો. તે અનડોક્યુમેન્ટેડ ટૂલ્સમાંથી ચાર હાઇ-લેવલ સિસ્ટમ ટૂલ્સ હતા. તેઓ કીબોર્ડ અને માઉસને નિયંત્રિત કરવા માટે OS-લેવલના ઇવેન્ટ્સનો ઉપયોગ કરતા હતા. આ મારા પ્રોજેક્ટનો સૌથી શક્તિશાળી અને સંવેદનશીલ ભાગ છે.
આનાથી મને 'ડોક્યુમેન્ટેશન ડ્રિફ્ટ' (documentation drift) વિશે એક કડવો પાઠ શીખવા મળ્યો.
ડ્રિફ્ટ રેન્ડમ નથી હોતું. તે પક્ષપાતી હોય છે. તમે સરળ અને કંટાળાજનક વસ્તુઓનું ડોક્યુમેન્ટેશન કરો છો. તમે ઉતાવળમાં મોકલેલા નવા, શક્તિશાળી અથવા સંવેદનશીલ ટૂલ્સનું ડોક્યુમેન્ટેશન કરવાનું ભૂલી જાઓ છો.
જો તમે પ્રોજેક્ટનો સૌથી જોખમી ભાગ શોધવા માંગતા હોવ, તો ડોક્યુમેન્ટ્સ ન વાંચો. ડોક્યુમેન્ટ્સ અને કોડ વચ્ચેના તફાવતને જુઓ.
મેં નંબર સુધારવાનો પ્રયાસ કર્યો. તે એક ભૂલ હતી. નંબર સુધારવાથી માત્ર લક્ષણોનો જ ઈલાજ થાય છે.
સમસ્યા મેન્યુઅલ મેન્ટેનન્સની છે. જો કોઈ માણસ કોઈ તથ્ય ટાઈપ કરે છે, તો તે તથ્ય આખરે ખોટું પડશે જ.
એકમાત્ર સાચો ઉકેલ એ છે કે નંબર ખોટો પડવો અશક્ય બનાવી દેવો.
તમારે 'સોર્સ ઓફ ટ્રુથ' (source of truth) માંથી તથ્યો મેળવવા જોઈએ.
મારા પ્રોજેક્ટ પાસે પહેલેથી જ એક ઉકેલ હતો: સ્મોક ટેસ્ટ (smoke test). ટેસ્ટ સર્વરને પૂછે છે કે તેની પાસે કેટલા ટૂલ્સ છે અને તેની સંખ્યા તપાસે છે. તે હાર્ડકોડેડ (hardcoded) નંબરનો ઉપયોગ કરતું નથી. ટેસ્ટ ક્યારેય ડ્રિફ્ટ થઈ શકતું નથી કારણ કે તે ક્યારેય સ્ટેટિક નંબર સ્ટોર કરતું નથી.
તમારા લખાણ સાથે વધુ શિસ્તબદ્ધ બનવાનો પ્રયાસ કરવાનું બંધ કરો. શિસ્ત નિષ્ફળ જાય છે. તેના બદલે, તમારા તથ્યોને ઓટોમેટ કરો:
- બિલ્ડ ટાઇમ પર સ્ક્રિપ્ટનો ઉપયોગ કરીને કાઉન્ટ જનરેટ કરો.
- તમારા કોડ રજિસ્ટ્રીમાંથી સીધી ટૂલ લિસ્ટ જનરેટ કરો.
- માનવનો ઉપયોગ માત્ર ગદ્ય (prose) અને સમજૂતી માટે જ કરો.
જો કોઈ તથ્ય મેળવી શકાય તેવું (derivable) હોય, તો તેને હાથથી ટાઈપ ન કરો. તે માત્ર ડ્રિફ્ટ થવાની રાહ જોઈ રહ્યું છે.
આજે તમારા પોતાના પ્રોજેક્ટ પર આ ઓડિટ ચલાવો:
- તમારા કોડમાં વાસ્તવિક વસ્તુઓની ગણતરી કરો.
- તમારું ડોક્યુમેન્ટેશન જે દાવો કરે છે તેની ગણતરી કરો.
- જો તેઓ અલગ હોય, તો તે તફાવતમાં શું છે તે શોધો.
તફાવતમાં રહેલી વસ્તુઓ સામાન્ય રીતે તમારા પ્રોજેક્ટના સૌથી મહત્વપૂર્ણ ભાગો હોય છે.
વૈકલ્પિક લર્નિંગ કમ્યુનિટી: https://t.me/GyaanSetuAi