સ્પેક-ડ્રિવન ડેવલપમેન્ટ વાસ્તવિક સમસ્યાનું નિરાકરણ લાવ્યું નથી
AI એજન્ટ્સ ખોટો કોડ લખે છે તેના માટે સ્પેક-ડ્રિવન ડેવલપમેન્ટ (SDD) એ નવો જવાબ છે.
વર્કફ્લો સરળ છે. તમે એક સ્ટ્રક્ચર્ડ સ્પેક લખો છો. એક એજન્ટ તે પ્લાન અમલમાં મૂકે છે. તમે પરિણામની સમીક્ષા કરો છો. GitHub Spec Kit, OpenSpec, અને Kiro જેવા સાધનો આ પરિવર્તનનું નેતૃત્વ કરી રહ્યા છે.
આ અભિગમ રૉ પ્રોમ્પ્ટિંગ (raw prompting) કરતા વધુ સારી રીતે કામ કરે છે. પરંતુ તેમાં એક મોટી ખામી છે.
તે સ્પેક 'સોર્સ ઓફ ટ્રુથ' (source of truth) તરીકે જળવાઈ રહે છે તેના પર આધારિત છે. આ એક જૂઠ છે.
૨૦ વર્ષોથી, અમે ડોક્યુમેન્ટ્સને કોડ સાથે સિંક (sync) રાખવાનો પ્રયાસ કર્યો છે. ડિઝાઇન ડોક્સ, વિકિ અને READMEs - આ બધું જ નિષ્ફળ ગયું. શા માટે? કારણ કે કોડ એડિટ કરવો ઝડપી છે અને તે મૂલ્ય (value) આપે છે. ડોક્યુમેન્ટ એડિટ કરવું ધીમું છે અને તે કંઈ દેખીતું પરિણામ આપતું નથી. ડોક્યુમેન્ટેશન હંમેશા ઝડપ સામે હારી જાય છે.
SDD પણ એ જ સમસ્યાનો સામનો કરી રહ્યું છે.
એક એજન્ટ કોઈ મર્યાદા (constraint) નો સામનો કરે છે. તે કામ ચલાવવા માટે કોડમાં સુધારો કરે છે. હવે કોડ અને સ્પેક એકબીજા સાથે મેળ ખાતા નથી. થોડા જ દિવસોમાં સ્પેક નકામી બની જાય છે. મોટાભાગના ફ્રેમવર્ક આને સુધારવા માટે "શિસ્ત" (discipline) નો ઉપયોગ કરવાનું કહે છે. શિસ્ત આપણને અગાઉ દરેક વખતે નિષ્ફળ ગઈ છે.
કોડિંગ કરતા પહેલા સંપૂર્ણ સ્પેક લખવી એ એવું માની લે છે કે તમે અમલીકરણ (implementation) દરમિયાન કંઈ શીખતા નથી. આ ફીડબેક લૂપને તોડી નાખે છે. તે એજાઈલ ડેવલપમેન્ટ (agile development) ને એક ભારે અને અગાઉથી કરવામાં આવતી જટિલ પ્રક્રિયામાં ફેરવી નાખે છે.
એક ડેવલપરે SDD નો ઉપયોગ કરીને મહિનાઓ લાંબો પ્રોજેક્ટ ચલાવ્યો. એજન્ટે દરેક સ્પેકનું સંપૂર્ણ પાલન કર્યું. તેમ છતાં સિસ્ટમ નિષ્ફળ ગઈ. સ્પેક એવા જ્ઞાનને પકડી શકતી ન હતી જે ફક્ત નિર્માણ દરમિયાન જ સામે આવે છે. ઇન્ફ્રાના એક નાના ફેરફારે આખું સ્પેક ગ્રાફ તોડી નાખ્યું.
બીજી એક ટીમે SDD અજમાવ્યું અને જોયું કે તે ૧૦ ગણું ધીમું હતું. તેમની પાસે વધુ ઔપચારિકતા (ceremony) હતી પરંતુ બગ્સ (bugs) ની સંખ્યા સમાન જ હતી.
ધ્યેય વધુ ડોક્યુમેન્ટ્સ હોવો જોઈએ નહીં.
વાસ્તવિક સમસ્યા એ છે કે સ્પેકને કેવી રીતે જીવંત રાખવી. આપણને એવા સ્પેક્સની જરૂર છે જે પોતાની જાતે અપડેટ થાય. આપણને એવા સાધનોની જરૂર છે જે કોડ અને ચાલતી સિસ્ટમ પરથી સ્પેકનું અનુમાન (infer) કરી શકે. તે લોકફાઇલ (lockfile) ની જેમ કામ કરવું જોઈએ. તે આપોઆપ (automatic) થવું જોઈએ.
મને ખાતરી નથી કે આ અત્યારે શક્ય છે કે નહીં. હું પ્રોડક્શનમાં કામ કરી રહેલા લોકો પાસેથી સાંભળવા માંગુ છું.
- શું તમારો સ્પેક ત્રીજા અઠવાડિયા પછી ટકી રહે છે?
- જ્યારે તે વિચલિત (drift) થાય છે, ત્યારે તેનું કારણ શું હોય છે?
- શું તમે કોડ અથવા ટેલિમેટ્રી (telemetry) પરથી સ્પેક્સ જનરેટ કરવાનો પ્રયાસ કર્યો છે?
- શું આ ચોકસાઈ મૂલ્ય ઉમેરે છે કે માત્ર વધારાની પ્રક્રિયાઓ જ છે?
Optional learning community: https://t.me/GyaanSetuAi