𝗧𝗵𝗲 𝗖𝗼𝗱𝗲 𝗜𝘀 𝗖𝗵𝗲𝗮𝗽. 𝗧𝗵𝗲 𝗦𝗽𝗲𝗰 𝗜𝘀 𝗧𝗵𝗲 𝗔𝘀𝘀𝗲𝘁.
कोड स्वस्त होत चालला आहे. आता खरी किंमत स्पेसिफिकेशनमध्ये (specification) आहे.
मी अंमलबजावणीचे प्लॅन (implementation plans) हाताने लिहिण्यासाठी कमी वेळ देतो. मी डिझाइनवर जास्त वेळ देतो. AI मुळे हे शक्य झाले आहे. ते इंजिनीअरिंगच्या निर्णयाची (engineering judgment) जागा घेत नाही, तर तुम्ही त्याचा वापर कुठे करता हे बदलते.
मी स्पेसिफिकेशन आणि कोडचा मसुदा तयार करण्यासाठी AI चा वापर करतो. माझे काम आता हेतू (intent) निश्चित करणे आणि मर्यादा (constraints) ओळखणे हे आहे. या प्रक्रियेत लिहिणे हा सर्वात कमी महत्त्वाचा भाग आहे.
माझी स्पेसिफिकेशन विकी वाचणाऱ्या माणसांसाठी नसून पुढील AI सेशनसाठी आहेत. नवीन स्पष्टीकरण न देता AI ला काम सुरू ठेवता येईल, असे ते असावे लागतात.
प्रभावी स्पेसिफिकेशन खालील गोष्टींवर लक्ष केंद्रित करतात:
- आवश्यकता (Requirements)
- मर्यादा (Constraints)
- स्वीकृती निकष (Acceptance criteria)
- पडताळणीच्या पायऱ्या (Verification steps)
ती केवळ वाचण्यासाठी नसून अंमलबजावणीसाठी तयार केली जातात. त्यांचे प्रेक्षक हे पुढील योगदानकर्ता (contributor) असतात, मग तो माणूस असो वा AI एजंट.
आधुनिक इंजिनीअरिंग ही मर्यादा व्यवस्थापनाची (constraint management) समस्या आहे. जर तुम्ही मर्यादा स्पष्टपणे मांडल्या, तर AI त्यांच्यासोबत उत्तम काम करते. माझी कार्यप्रणाली (workflow) या टप्प्यांचे अनुसरण करते: Intent → AI Specification → Human Review → AI Implementation Plan → Human Review → AI Code Generation → Testing
मी ध्येय, आवश्यकता आणि सीमा (boundaries) ठरवून देतो. AI स्पेसिफिकेशनचा मसुदा तयार करते. मी त्याचे पुनरावलोकन करतो. AI प्लॅन तयार करते. मी त्याचे पुनरावलोकन करतो. त्यानंतरच आपण कोड तयार करतो.
मी कमी लिहितो, पण अधिक काळजीपूर्वक पुनरावलोकन करतो. इंजिनीअरिंगचे मूल्य याच ठिकाणी टिकून आहे.
एक चांगले स्पेसिफिकेशन काय सत्य असावे हे ठरवते, ते कसे साध्य करावे हे नाही. उदाहरणार्थ, रिफॅक्टरिंग (refactoring) स्पेसिफिकेशनमध्ये असे नमूद केले पाहिजे:
- ॲप्लिकेशन लेयरमधील कोणतीही क्लास DAO इम्प्लिमेंटेशनचा संदर्भ देऊ शकत नाही.
- स्वीकृती निकष: लेयरिंगचे उल्लंघन झाल्यास सर्च दरम्यान शून्य निकाल (zero matches) मिळायला हवेत.
सर्वात महत्त्वाचे काम म्हणजे 'load-bearing' मर्यादा ओळखणे. हे काही महत्त्वाचे नियम आहेत जसे की:
- डेटाबेस इनिशियलायझेशन स्ट्रॅटेजीज (Database initialization strategies)
- डिप्लॉयमेंट मॉडेल्स (Deployment models)
- इंटिग्रेशन बाउंड्रीज (Integration boundaries)
जर तुम्ही या गोष्टींकडे दुर्लक्ष केले, तर सिस्टम कोलमडते.
AI सेशन्स तात्पुरते असतात. ते येतात आणि जातात. खरी किंमत ही 'शेअर्ड मेमरी'मधून (shared memory) येते:
- स्पेसिफिकेशन्स (Specifications)
- अंमलबजावणी योजना (Implementation plans)
- आर्किटेक्चर डिसिजन रेकॉर्ड्स (ADRs)
- कन्व्हेन्शन्स (Conventions)
ही मेमरी डॉक्युमेंटेशनमधील तफावत (documentation drift) रोखते. जेव्हा तुमचे README, कोड आणि ADRs वेगवेगळी माहिती देतात, तेव्हा विश्वास उडतो. तुम्हाला ते वास्तवाशी सुसंगत ठेवावे लागते.
रिपॉझिटरीमध्ये ही रचना असावी:
- CLAUDE.md: वर्कफ्लो आणि रिव्ह्यू गेट्स.
- status.md: सर्व स्पेसिफिकेशन्स आणि प्लॅन्सचा एक जिवंत इंडेक्स.
- specs/: 'काय' आणि 'का'.
- plan/: 'कसे'.
- rules/: क्लास-स्तरीय कोडिंग कन्व्हेन्शन्स.
- docs/adr/: महत्त्वपूर्ण निर्णयांचे अपरिवर्तनीय रेकॉर्ड्स.
AI कोड तयार करू शकते. परंतु तुमच्या व्यवसायासाठी कोणते निर्बंध महत्त्वाचे आहेत, हे ते विश्वासार्हपणे ठरवू शकत नाही. ही तुमची जबाबदारी आहे.
अंमलबजावणीयोग्य ज्ञान निर्माण करा. प्रत्येक प्रकल्पाची सुरुवात कोऱ्या पानापासून नाही, तर सामायिक स्मृतीपासून (shared memory) करा.
स्रोत: https://dev.to/daniel_wu_cac679a2760ba0a/the-code-is-cheap-artifact-now-the-spec-is-the-asset-3b02
ऐच्छिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi