కోడ్ చౌకైనది. స్పెసిఫికేషన్ (Spec) అనేది అసెట్.
కోడ్ ఒక చౌకైన వస్తువుగా మారుతోంది. అసలైన విలువ ఇప్పుడు స్పెసిఫికేషన్లో ఉంది.
నేను ఇంప్లిమెంటేషన్ ప్లాన్లను చేత్తో రాయడానికి తక్కువ సమయం కేటాయిస్తున్నాను. డిజైన్ కోసం ఎక్కువ సమయం వెచ్చిస్తున్నాను. AI దీనిని సాధ్యం చేస్తోంది. ఇది ఇంజనీరింగ్ నిర్ణయ సామర్థ్యాన్ని (engineering judgment) భర్తీ చేయదు. మీరు దానిని ఎక్కడ ఉపయోగిస్తారో అది మారుస్తుంది.
స్పెసిఫికేషన్లు మరియు కోడ్ను డ్రాఫ్ట్ చేయడానికి నేను AIని ఉపయోగిస్తాను. ఉద్దేశ్యాన్ని (intent) నిర్వచించడం మరియు పరిమితులను (constraints) గుర్తించడం ఇప్పుడు నా పని. ఈ ప్రక్రియలో రాయడం అనేది అత్యంత తక్కువ విలువ కలిగిన భాగం.
నా స్పెసిఫికేషన్లు వికీని చదివే మనుషుల కోసం కాదు. అవి తదుపరి AI సెషన్ కోసం. కొత్త వివరణలు లేకుండానే AI తన పనిని కొనసాగించేలా అవి ఉండాలి.
సమర్థవంతమైన స్పెసిఫికేషన్లు వీటిపై దృష్టి పెడతాయి:
- అవసరాలు (Requirements)
- పరిమితులు (Constraints)
- అంగీకార ప్రమాణాలు (Acceptance criteria)
- వెరిఫికేషన్ దశలు (Verification steps)
అవి కేవలం చదవడానికి మాత్రమే కాదు, అమలు చేయడానికి (execute) రూపొందించబడ్డాయి. తదుపరి కంట్రిబ్యూటర్ మనిషైనా లేదా AI ఏజెంట్ అయినా, వారే వీటిని ఉపయోగించుకుంటారు.
ఆధునిక ఇంజనీరింగ్ అనేది ఒక కన్స్ట్రైంట్ మేనేజ్మెంట్ (constraint management) సమస్య. మీరు పరిమితులను స్పష్టంగా నమోదు చేస్తే, AI వాటితో బాగా పనిచేస్తుంది. నా వర్క్ఫ్లో ఈ దశలను అనుసరిస్తుంది: Intent → AI Specification → Human Review → AI Implementation Plan → Human Review → AI Code Generation → Testing
నేను లక్ష్యం, అవసరాలు మరియు సరిహద్దులను (boundaries) అందిస్తాను. AI స్పెక్ను డ్రాఫ్ట్ చేస్తుంది. నేను దానిని సమీక్షిస్తాను. AI ప్లాన్ను డ్రాఫ్ట్ చేస్తుంది. నేను దానిని సమీక్షిస్తాను. అప్పుడే మనం కోడ్ను జనరేట్ చేస్తాము.
నేను తక్కువ రాస్తాను, కానీ మరింత జాగ్రత్తగా సమీక్షిస్తాను. ఇంజనీరింగ్ విలువ ఇక్కడే ఉంటుంది.
మంచి స్పెసిఫికేషన్ ఏమి జరగాలి (what must be true) అని నిర్వచిస్తుంది, అది ఎలా జరగాలి (how to make it true) అని కాదు. ఉదాహరణకు, ఒక రిఫ్యాక్టరింగ్ స్పెక్ ఇలా ఉండాలి:
- అప్లికేషన్ లేయర్లోని ఏ క్లాస్ కూడా DAO ఇంప్లిమెంటేషన్లను రిఫరెన్స్ చేయకూడదు.
- అంగీకార ప్రమాణాలు: లేయరింగ్ ఉల్లంఘనలు (Layering violations) సెర్చ్ సమయంలో సున్నా ఫలితాలను (zero matches) చూపాలి.
అత్యంత ముఖ్యమైన పని 'లోడ్-బేరింగ్ కన్స్ట్రైంట్స్' (load-bearing constraints) గుర్తించడం. ఇవి కీలకమైన నియమాలు, ఉదాహరణకు:
- డేటాబేస్ ఇనిషియలైజేషన్ వ్యూహాలు (Database initialization strategies)
- డిప్లాయ్మెంట్ మోడల్స్ (Deployment models)
- ఇంటిగ్రేషన్ బౌండరీస్ (Integration boundaries)
వీటిని మీరు విస్మరిస్తే, సిస్టమ్ విఫలమవుతుంది.
AI సెషన్లు తాత్కాలికం. అవి వస్తూ పోతూ ఉంటాయి. అసలైన విలువ షేర్డ్ మెమరీ (shared memory) నుండి వస్తుంది:
- స్పెసిఫికేషన్లు (Specifications)
- ఇంప్లిమెంటేషన్ ప్లాన్లు (Implementation plans)
- ఆర్కిటెక్చర్ డిసిషన్ రికార్డ్స్ (ADRs)
- కన్వెన్షన్స్ (Conventions)
ఈ మెమరీ డాక్యుమెంటేషన్ డ్రిఫ్ట్ను (documentation drift) నివారిస్తుంది. మీ README, కోడ్ మరియు ADRలు వేర్వేరు విషయాలను చెబుతున్నప్పుడు, నమ్మకం దెబ్బతింటుంది. మీరు వాటిని వాస్తవ
రిపోజిటరీ ఈ క్రింది నిర్మాణాన్ని ప్రతిబింబించాలి:
- CLAUDE.md: వర్క్ఫ్లో మరియు రివ్యూ గేట్లు.
- status.md: అన్ని స్పెక్లు మరియు ప్రణాళికల యొక్క లైవింగ్ ఇండెక్స్.
- specs/: "ఏమిటి" మరియు "ఎందుకు".
- plan/: "ఎలా".
- rules/: క్లాస్-లెవల్ కోడింగ్ నిబంధనలు.
- docs/adr/: ముఖ్యమైన నిర్ణయాల యొక్క మార్చలేని రికార్డులు.
AI కోడ్ను రూపొందించగలదు. మీ వ్యాపారానికి ఏ పరిమితులు ముఖ్యమో అది నమ్మదగిన రీతిలో నిర్ణయించలేదు. అది మీ బాధ్యత.
అమలు చేయగల జ్ఞానాన్ని నిర్మించండి. ప్రతి ప్రాజెక్ట్ను ఖాళీ పేజీతో కాకుండా, షేర్డ్ మెమరీతో ప్రారంభించండి.
మూలం: https://dev.to/daniel_wu_cac679a2760ba0a/the-code-is-cheap-artifact-now-the-spec-is-the-asset-3b02
ఐచ్ఛిక అభ్యాస సమూహం: https://t.me/GyaanSetuAi