- हालिया शोध के अनुसार जब open source डेवलपर्स अपने अच्छी तरह परिचित codebase में AI tools का उपयोग करते हैं, तो काम का समय उल्टा 19% बढ़ जाता है
- डेवलपर्स मानते हैं कि AI उन्हें तेज़ बनाता है, लेकिन वास्तव में वे धीमे हो जाते हैं — यानी धारणा और वास्तविकता के बीच अंतर मौजूद है
- मुख्य कारण डेवलपर्स के पास मौजूद परिष्कृत mental model (समझ की संरचना) और AI के बीच ज्ञान हस्तांतरण की सीमाएँ हैं
- Peter Naur के सिद्धांत के अनुसार, प्रोग्रामिंग में सबसे महत्वपूर्ण चीज़ डेवलपर के दिमाग़ में मौजूद "मानसिक मॉडल" है
- वे डेनमार्क के कंप्यूटर विज्ञान के अग्रणी और 2005 के Turing Award विजेता थे। उन्होंने प्रोग्रामिंग भाषा के syntax को समझाने में उपयोग होने वाले Backus-Naur form (BNF) notation में योगदान दिया
- दीर्घकालिक दृष्टि से किसी प्रोजेक्ट को गहराई से समझने के लिए खुद कोड लिखते हुए mental model बनाना महत्वपूर्ण है
AI open source डेवलपर्स को धीमा क्यों बनाता है
- Metr के शोध के अनुसार AI tools का उपयोग करने पर समस्या हल करने की गति उल्टा 19% धीमी हो गई
- डेवलपर्स ने काम शुरू करने से पहले उम्मीद की थी कि AI उन्हें 24% तेज़ करेगा, और काम के बाद भी उन्होंने माना कि वे वास्तविकता से 20% तेज़ थे
- यह अध्ययन ऐसे अनुभवी डेवलपर्स पर किया गया जो उन open source projects को स्वयं maintain करते हैं जिन्हें वे गहराई से समझते हैं
- यह परिणाम हर डेवलपर पर सामान्य रूप से लागू नहीं होता, लेकिन इस समूह में AI tools ने productivity पर उल्टा असर दिखाया
- enterprise environment या ऐसे सामान्य डेवलपर्स जिन्हें नए codebase के साथ जल्दी adapt करना होता है, उनके लिए AI tools productivity बढ़ाने में अधिक सकारात्मक भूमिका निभा सकते हैं
AI अनुभवी open source डेवलपर्स को धीमा क्यों बनाता है
- Peter Naur के “Programming as Theory Building” पेपर के अनुसार प्रोग्रामिंग का असली output code नहीं, बल्कि ‘प्रोजेक्ट के बारे में डेवलपर का mental model’ है
- यही mental model सिस्टम की समझ, समस्या की diagnosis, और प्रभावी सुधार का केंद्र है
- LLM-आधारित AI डेवलपर के mental model तक सीधे पहुँच नहीं सकता, और कुछ जानकारी दी भी जाए तो ज्ञान हस्तांतरण की प्रक्रिया में मूलभूत हानि होती है
- उदाहरण के तौर पर, जैसे किसी को बच्चे को सुलाने का काम सौंपते समय स्पष्ट निर्देश देने पर भी वह अक्सर आपके इरादे के अनुसार काम नहीं करता
- mental model का हस्तांतरण बेहद जटिल है, और AI का केवल text के आधार पर इसे आत्मसात करना लगभग असंभव है
- इसलिए जिस प्रोजेक्ट को आप गहराई से समझते हैं, उसमें AI को काम सौंपने से productivity घट सकती है
- डेवलपर के पास मौजूद समृद्ध context और सहज समझ को AI आसानी से replace नहीं कर सकता
क्या कार्यस्थल पर AI tools पर प्रतिबंध लगा देना चाहिए?
- ज़रूरी नहीं। यह मुख्यतः उन लोगों पर लागू होता है जो ऐसे प्रोजेक्ट पर काम कर रहे हैं जिसे वे खुद अच्छी तरह जानते और समझते हैं
- कई enterprise डेवलपर्स अक्सर ऐसे senior के छोड़े हुए code को maintain करते हैं जो कंपनी छोड़ चुके हैं, या वे पूरे सिस्टम architecture को गहराई से समझे बिना काम कर रहे होते हैं
- ऐसे माहौल में AI codebase को तेज़ी से समझने और changes अपने-आप generate करने में मदद करके अल्पकालिक productivity बढ़ा सकता है
- अगर केवल अल्पकालिक business value और तुरंत मिलने वाली efficiency देखी जाए, तो AI tools productivity में सकारात्मक भूमिका निभा सकते हैं
mental model बनाना और AI
- अगर आपके पास प्रोजेक्ट का mental model नहीं है, तो LLM productivity बढ़ाने में मदद कर सकता है
- लेकिन अगर software development का मूल स्वभाव ही ‘mental model बनाना’ है, तो AI पर अत्यधिक निर्भरता इस क्षमता को कमज़ोर कर सकती है
- लंबे समय में यदि आप किसी प्रोजेक्ट को गहराई से समझना और सक्रिय रूप से बदलना चाहते हैं, तो खुद कोड लिखने का अनुभव ज़रूरी है
- इसके उलट, यदि काम सिर्फ़ ‘किसी तरह चलता रहे’ वाले स्तर का है, तो AI का उपयोग अधिक efficient हो सकता है
अतिरिक्त चर्चा और निष्कर्ष
- मौजूदा स्तर के AI tools के लिए पर्याप्त mental model रखने वाले डेवलपर्स की productivity बढ़ाना कठिन है
- AI किस तरह mental model को बेहतर समर्थन दे सकता है, या अनुभवी डेवलपर्स की productivity को नाटकीय रूप से बढ़ा सकता है, इस पर अभी और शोध व विकास की ज़रूरत है
- भविष्य में मॉडल इतने विकसित हो सकते हैं कि human डेवलपर्स को शायद mental model की उतनी आवश्यकता न रहे, लेकिन वर्तमान स्तर पर प्रत्यक्ष समझ और सीखना अनिवार्य है
- अंततः, AI उस माहौल में बाधा बन सकता है जहाँ मैं क्या कर रहा हूँ इसकी गहरी समझ महत्वपूर्ण है, और उस माहौल में productivity tool बन सकता है जहाँ तेज़ परिणाम अधिक महत्वपूर्ण हैं
5 टिप्पणियां
> डेवलपर्स को लगता है कि AI ने उन्हें ज़्यादा तेज़ बना दिया है
AI की मदद से research तेज़ हो जाती है, इसलिए quality को बेहतर बनाया जा सकता है, तो क्या एक ही काम का नतीजा भी थोड़ा बेहतर quality के साथ नहीं आ सकता? शायद डेवलपर्स यह सोचते हैं कि काम के बाद जिस quality के नतीजे तक पहुँचना है, वहाँ अकेले पहुँचने की तुलना में AI की मदद से पहुँचना ज़्यादा तेज़ है।
मुझे यह भी लगता है कि अगर शुरू से इसका इस्तेमाल न किया जाता, तो शायद लोग अपनी सीमित जानकारी के भीतर ही implement करते, इसलिए ऐसा महसूस होता होगा.
> इसके उलट, अगर काम बस ‘किसी तरह चलने लायक बना देने’ वाला हो, तो AI का इस्तेमाल प्रभावी हो सकता है।
यह सिर्फ डेवलपर्स तक सीमित नहीं है, लेकिन लोगों की प्रवृत्तियां अलग-अलग होती हैं, इसलिए मुझे लगता है कि जो लोग संयोग से डेवलपर बन गए हैं और कोड लिखना या देखना पसंद नहीं करते या उससे डरते हैं, और जो व्यवस्थित संरचना या मेंटेनेंस के नजरिए से समझने के बजाय बस चीजें चलती रहें यही मानसिकता रखते हैं, उनमें AI पर निर्भरता या अंधविश्वास ज्यादा मजबूत दिखता है। नहीं भी हो सकता है।
अनुभवी open source डेवलपर्स की उत्पादकता पर "AI के प्रभाव" को मापना
Hacker News की राय
मुझे लगा कि इस ब्लॉग पोस्ट ने एक ऐसे ठोस कारण को दिलचस्प ढंग से उठाया है, जिसकी वजह से AI डेवलपमेंट की गति को धीमा कर सकता है।
पेपर (सेक्शन C.1.5) में डेवलपर के उद्धरण भी हैं, उन्हें भी देखें।
बहुत से लोग पेपर पढ़कर कोई एक ऐसा कारण ढूँढ लेते हैं जो उन्हें सही लगता है, और फिर यह निष्कर्ष निकालना आसान हो जाता है कि “धीमा होने की वजह सिर्फ यही एक समस्या है।”
लेकिन वास्तव में इसमें कई तत्व हैं (कम-से-कम 5 संभावित हैं, और अधिकतम 9 तक को भी नकारा नहीं जा सकता; p.11 की factors table देखें)।
किसी एक कारण को जिम्मेदार मानने के बजाय बहुआयामी कारण-विश्लेषण अधिक उचित है।
जो लोग खुद इस पर प्रयोग करने की योजना बना रहे हों, उनसे अनुरोध है कि पेपर में दिए गए email पर अपने परिणाम ज़रूर साझा करें।
और लेख का शीर्षक “AI slows down open source developers. Peter Naur can teach us why” रखा गया है, लेकिन मुझे अधिक सटीक रूप में यह कहना उचित लगता है: “2025 की शुरुआत में AI अनुभवी open source डेवलपर्स को धीमा करता है। Peter Naur एक खास कारण पर अधिक संदर्भ देता है।”
यह अभिव्यक्ति शायद कम उत्तेजक लगे, लेकिन मुझे सटीकता अधिक महत्वपूर्ण लगती है।
एक बार फिर शानदार लेख के लिए धन्यवाद, और मैं टिप्पणियाँ पढ़ना जारी रखे हुए हूँ
पिछली संबंधित चर्चा
पेपर का पूरा पाठ
xkcd time management comic
Joel on Software: Things you should never do, part I
AI से बना बहुत-सा code बस तैयार कर दिया जाता है, थोड़ा-बहुत simple testing कर ली जाती है, और बात वहीं खत्म हो जाती है। यहाँ तक कि ऐसा भी बहुत code बढ़ रहा है जिसे लेखक खुद भी उसके पूरे context या कारण के साथ पूरी तरह नहीं समझता
(इस पर पेपर के C.2.7 “Below-average use of AI tools” सेक्शन में अधिक विस्तार से चर्चा है)
thing1,thing2जैसे नाम, बस variable बदलते गए और बाकी सब एक जैसा। मैंने feedback में कहा कि नाम अधिक distinguishable होने चाहिए, तो इस बार AI ने हर case की विशेषता पूरी गिनाने वाले बेहद लंबे variable names बना दिए, जिसके कारण code एक नज़र में समझना और कठिन हो गया। लेखक को लगा होगा कि उसकी writing speed बहुत बढ़ गई, लेकिन असल में feedback, review और fixes में समय लग गया, और productivity gain पूरी तरह खत्म हो गयासंदर्भ: बहुत पुराना AI spam issue
try:catchblocks को बहुत चौड़ा कर देता है, जिससे समस्या के source को trace करना कठिन हो जाता है। मैं चाहता हूँ कि समस्या जल्दी और ज़ोर से सामने आए (=fail fast), ताकि उसे तुरंत ठीक किया जा सकेमेरे मन में भी कुछ ऐसा ही विचार था, लेकिन उसे शब्दों में व्यक्त करना थोड़ा मुश्किल था.
मेंटल मॉडलइसके लिए काफ़ी उपयुक्त नाम है. लगता है, इसे अक्सर इस्तेमाल करना पड़ेगा.