मैंने कोड लिखना बंद कर दिया। मेरा ऐप 3 दिनों में शिप हो गया।

तीन महीने पहले, मैंने एक फुल-स्टैक SaaS डैशबोर्ड बनाया। इसमें auth, एक डेटाबेस, एक REST API और एक UI था।

मैंने लगभग 200 लाइन का कोड लिखा। बाकी काम AI ने किया। AI ने कोड लिखा, उसकी समीक्षा की और उसे ठीक भी किया।

ऐप लाइव है। यूजर्स इसके लिए भुगतान करते हैं। मैं रात के 2 बजे उन बग्स को ठीक करने के लिए नहीं जागता जिन्हें मैं समझता भी नहीं हूँ।

यह कोई शेखी बघारना नहीं है। यह एक चेतावनी है।

एक डेवलपर की भूमिका तेज़ी से बदल रही है। जो डेवलपर्स जीतेंगे, वे इस बदलाव से लड़ेंगे नहीं। वे इसका नेतृत्व करेंगे।

AI को केवल एक autocomplete टूल के रूप में सोचना बंद करें। वह पुराना तरीका है।

AI-native डेवलपमेंट एक नया मेंटल मॉडल है। आप AI का उपयोग तेज़ी से लिखने के लिए नहीं करते हैं। आप AI का उपयोग इम्प्लीमेंटेशन (implementation) संभालने के लिए करते हैं, जबकि आप आर्किटेक्चर और निर्णय लेने (judgment) का काम संभालते हैं।

यह बदलाव कुछ इस तरह दिखता है:

  • पुराना मॉडल: आप कोड लिखते हैं। AI आपको तेज़ी से टाइप करने में मदद करता है।
  • नया मॉडल: आप "क्या" और "क्यों" को परिभाषित करते हैं। AI "कैसे" को संभालता है। आप उसे वैलिडेट करते हैं और दिशा देते हैं।

मैंने अपना ऐप बनाने के लिए इसी वर्कफ़्लो का उपयोग किया:

  1. Next.js और Prisma जैसे स्टैंडर्ड टूल्स का उपयोग करके प्रोजेक्ट को स्कैफोल्ड (scaffold) करें।
  2. डेटा मॉडल को सरल अंग्रेजी में समझाएं।
  3. AI को स्कीमा (schema) जनरेट करने दें।
  4. सर्वर एक्शन्स (server actions) और लॉजिक जनरेट करने के लिए विस्तृत प्रॉम्प्ट्स (prompts) का उपयोग करें।

मैंने फंक्शन्स नहीं लिखे। मैंने उनकी समीक्षा की। मैंने उन्हें टेस्ट किया। मैंने एरर मैसेज को एडजस्ट किया।

यही नया काम है।

यदि AI कोड लिखता है, तो आपकी वैल्यू मेटा-स्किल्स (meta-skills) से आती है। AI पैटर्न पहचानने में अच्छा है। निर्णय लेने में यह खराब है।

AI यह तय नहीं कर सकता:

  • कि आपको सर्वर एक्शन की ज़रूरत है या API रूट की।
  • आपका स्टेट (state) कहाँ होना चाहिए।
  • क्या आपको monorepo का उपयोग करना चाहिए।

इन निर्णयों के लिए कॉन्टेक्स्ट (context) की आवश्यकता होती है। AI में कॉन्टेक्स्ट की कमी होती है। आपके पास यह है।

अब एक जूनियर और एक सीनियर डेवलपर के बीच का अंतर प्रॉम्प्ट की सटीकता (prompt precision) है।

  • कमज़ोर प्रॉम्प्ट: "Write a rate limiter."
  • मज़बूत प्रॉम्प्ट: "Write a Redis-backed rate limiter for a Next.js API route. Limit to 10 requests per minute per IP. Return a 429 error when exceeded. Skip admins. Log events to Prisma."

दूसरा प्रॉम्प्ट तुरंत प्रोडक्शन-रेडी कोड दे देता है।

आपको साइलेंट फेलियर्स (silent failures) पर भी नज़र रखनी चाहिए। AI कोड अक्सर सही दिखता है लेकिन उसमें सूक्ष्म बग्स (subtle bugs) हो सकते हैं। AI आउटपुट को एक जूनियर डेवलपर के पुल रिक्वेस्ट (pull request) की तरह मानें। संदेह के साथ उसकी समीक्षा करें।

कम कोड लिखने के लिए ऑप्टिमाइज़ न करें। कोड के आसपास के कौशल (skills) के लिए ऑप्टिमाइज़ करें।

डेवलपर A सब कुछ हाथ से लिखता है और धीमा रहता है। डेवलपर B बारीकियों के लिए AI का उपयोग करता है और सिस्टम डिज़ाइन पर समय बिताता है।

डेवलपर B नया मानक है।

इस सप्ताह इसे आज़माएँ:

  • किसी भी कोड को छूने से पहले किसी फीचर के लिए पूरा स्पेसिफिकेशन लिखें।
  • उस स्पेसिफिकेशन का उपयोग अपने प्रॉम्प्ट के रूप में करें।
  • आउटपुट की समीक्षा वैसे ही करें जैसे एक सीनियर इंजीनियर किसी जूनियर की समीक्षा करता है।

लक्ष्य डेवलपर बनना छोड़ना नहीं है। बल्कि एक बेहतर डेवलपर बनना है।

स्रोत: https://dev.to/emma_schmidt_/i-stopped-writing-code-my-app-still-shipped-in-3-days-heres-what-that-tells-us-about-being-a-2ghp

वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi