रफ्तार धीमी करनी क्यों ज़रूरी है
(mariozechner.at)- हाल में AI coding agents के तेज़ी से फैलाव से development की गति बढ़ी है, लेकिन software quality में गिरावट और instability भी गंभीर हुई है
- agents iterative learning क्षमता के बिना वही errors जमा करते रहते हैं, और बड़े codebase में search recall में गिरावट और complexity का विस्फोट होता है
- अगर पूरे system को मानव नियंत्रण के बिना सौंप दिया जाए, तो यह duplicate code, गलत design patterns, और maintain न किए जा सकने वाले codebase तक ले जाता है
- फिलहाल agents का non-core tasks या experimental क्षेत्रों में सीमित उपयोग करना चाहिए, और अंतिम quality gate के रूप में मानव को बने रहना चाहिए
- रफ्तार धीमी करना और मानवीय agency वापस पाना सीखने, विकास, और sustainable software ecosystem के लिए अहम है
सब कुछ टूटा हुआ है
- पिछले 1 साल में coding agents इतने विकसित हो गए हैं कि वे वास्तविक projects पूरा कर सकते हैं, लेकिन इसके साथ software quality में गिरावट साफ़ दिखाई दे रही है
- बड़े services में भी 98% uptime सामान्य होता जा रहा है, और UI bugs बार-बार दिखते हैं
- AWS के AI-संबंधित outage cases और Microsoft के AI code ratio बढ़ने वाले बयानों का उल्लेख किया गया है
- कुछ कंपनियाँ दावा करती हैं कि उनके product code का 100% AI लिखता है, लेकिन नतीजों में memory leaks, UI errors, feature instability जैसी कम गुणवत्ता दिखती है
- कई developers ने बताया है कि agent-centered development के कारण code review की कमी, design की अनुपस्थिति, और बेकार features की अधिकता से वे maintain न किए जा सकने वाले codebase में फँस गए
agents के साथ काम नहीं करने का तरीका
- developers speed और code volume के नशे में quality और control छोड़ चुके हैं
- “distributed, autonomous, automated” के नाम पर large-scale agent orchestration की कोशिश होती है, लेकिन व्यवहार में यह unstable outputs का उत्पादन करती है
- कुछ projects को चलाना भी मुश्किल है, और वे मानव हस्तक्षेप के बिना maintain नहीं हो सकते
- यह व्यक्तिगत project स्तर पर संभव हो सकता है, लेकिन वास्तविक user-base वाले products में ज़्यादातर मामले असफल रहे हैं
-
error accumulation, learning की कमी, कोई bottleneck नहीं, और delayed pain
- agents में iterative learning क्षमता नहीं होती, इसलिए वे वही errors बार-बार पैदा करते हैं
- इंसान errors से सीखते हैं, लेकिन agents वही गलतियाँ अनंत बार दोहराते हैं
- इंसानों की code लिखने की गति सीमित होती है, इसलिए error accumulation धीमा होता है, लेकिन agents की फ़ौज में कोई bottleneck नहीं होता, इसलिए errors विस्फोटक रूप से जमा होते हैं
- नतीजतन codebase पर भरोसा नहीं किया जा सकता, और automated tests भी अविश्वसनीय हो जाते हैं
- अंत में manual testing ही एकमात्र validation method बचती है, और development team खुद को जाल में फँसा लेती है
-
complexity से सीखने वाले व्यापारी
- agents पूरे system context को देखे बिना सिर्फ़ local decisions लेते हैं
- इसके कारण duplicate code, अनावश्यक abstraction, और structural chaos तेज़ी से जमा होते हैं
- मानव संगठनों में ऐसी complexity कई वर्षों में धीरे-धीरे बनती है, लेकिन agent-based teams कुछ ही हफ्तों में उसी स्तर की अव्यवस्था तक पहुँच जाती हैं
- agents training data से सीखे हुए गलत design patterns को जस का तस दोहराते हैं, और मानव नियंत्रण न हो तो recover न की जा सकने वाली complexity पैदा कर देते हैं
-
agent search का low recall
- जब agents code modification या refactoring की कोशिश करते हैं, तो वे ज़रूरी पूरा code ढूँढ नहीं पाते
- codebase जितना बड़ा होता है, search recall उतना ही तेज़ी से गिरता है, जिससे duplication और inconsistency पैदा होती है
- Bash, LSP, vector DB जैसे विभिन्न tools इस्तेमाल करने पर भी large-scale codebase में सीमाएँ बनी रहती हैं
- इससे code smells और अनावश्यक complexity और बढ़ जाती है
agents के साथ काम करने का तरीका (फिलहाल)
- agents तेज़ code generation और उच्च शुरुआती quality के कारण आकर्षक हैं, लेकिन पूरे system की ज़िम्मेदारी देने पर ढह जाते हैं
- सही use cases हैं छोटे दायरे के non-core tasks, ऐसे tasks जिनमें self-evaluation loop संभव हो, और ऐसे tasks जिनकी failure घातक न हो
- उदाहरण के लिए, internal tools बनाना, ideas पर experiment करना, और performance measurement आधारित automation research (auto-research) उपयुक्त हैं
- मानव को हर हाल में अंतिम quality gate बने रहना चाहिए, और agents के outputs को review, edit, और integrate करना चाहिए
- अगर evaluation function सिर्फ़ संकीर्ण metrics को दर्शाए, तो agents code quality, complexity, accuracy को नज़रअंदाज़ कर सकते हैं
- रफ्तार धीमी करना ही मुख्य बात है
- क्या बना रहे हैं और क्यों बना रहे हैं, इस पर सोचने का समय सुरक्षित करना चाहिए, और अनावश्यक features को साहस के साथ ठुकराना चाहिए
- एक दिन में agents जितना code बना सकते हैं, उसे इतना सीमित करें कि उसकी review संभव हो
- architecture, API जैसे system के मूल रूप को इंसानों को ही सीधे लिखना चाहिए
- agents के साथ pair programming करते हुए code writing process में friction और understanding के अवसर बनाए रखने चाहिए
- यह approach maintainable codebase बनाती है, user satisfaction बढ़ाती है, और अनावश्यक features की जगह core features पर ध्यान केंद्रित कराती है
- अगर मानवीय समझ बनी रहे, तो agent search recall की समस्या भी कम होती है, और समस्या आने पर सीधे सुधार भी संभव होता है
- शुरुआती design गलत हो तब भी उसके कारण समझकर उसे सुधारने की क्षमता बनी रहती है
- अंततः ज़रूरत है discipline और मानवीय agency की
- system की quality और sustainability मानव हस्तक्षेप और निर्णय पर निर्भर करती है
- “धीरे चलना” ही सीखने और विकास, और स्वस्थ software ecosystem को बनाए रखने का एकमात्र रास्ता है
2 टिप्पणियां
Pi – संक्षिप्त टर्मिनल कोडिंग हार्नेस
इसे बनाने वाला व्यक्ति यही है।
Hacker News की राय
आजकल जब भी मैं ऐसे चिंतनशील लेख पढ़ता हूँ, तो मुझे भी किसी बिंदु पर थकान महसूस होती है
आखिरकार असली बात यह है कि “हम क्या बना रहे हैं” और “क्या वह टूल वास्तव में मददगार है”
Ruby, PHP, Lotus Notes, Visual BASIC के दौर में भी हमने यही गलतियाँ दोहराईं
टूल्स का समझदारी से उपयोग करना चाहिए, और इतनी रफ्तार से काम करना चाहिए कि टीम वास्तव में जो जटिल वास्तविकता बना रही है, उसे समझ सके
Agile हो या Waterfall, Docker हो या Podman — यही असल मुद्दा नहीं है
आजकल हम ऐसे दौर में हैं जहाँ LLM production DB मिटा देता है, और फिर उसका postmortem ब्लॉग में चित्र भी बना देता है, लेकिन यह सच में engineering है या नहीं, पता नहीं
शायद software development शुरू से ही कोई इंजीनियरिंग अनुशासन था ही नहीं
पिछले 10 सालों में software industry meta work से भर गई है — नए frameworks, tools, virtualization layers, organizational structures वगैरह
लेकिन असल में यह सब “किस लिए” बनाया जा रहा है, यह साफ नहीं है
मानो यह किसी पिरामिड जैसी संरचना की तरह हो, जहाँ industry को बनाए रखने के लिए नई नौकरियाँ बनाई जा रही हों
फिर भी असली engineering मौजूद है — जब हम वैज्ञानिक तरीके से सवाल तय करते हैं और उनके जवाबों के आधार पर निर्णय लेते हैं
इसके उलट, ‘gut feeling’ पर काम करना और सिर्फ CEO की बात मानना engineering नहीं है
पहले बहुत-सी टीमें version control तक इस्तेमाल नहीं करती थीं, और अगर करती भी थीं तो वह बहुत खराब होता था
Joel Spolsky का Joel Test देखें, तो उस दौर की ज़्यादातर कंपनियों का जवाब “नहीं” होता
पुलों में load, material, lifespan जैसी चीज़ें सटीक रूप से गणना की जाती हैं, लेकिन websites में traffic तक का अनुमान लगाना मुश्किल होता है
servers या frameworks की सीमाओं को मात्रात्मक रूप से संभालने के लिए हमारे पास कोई मानक नहीं है
कभी software भी शायद सचमुच engineering बन जाए, लेकिन अभी वहाँ तक पहुँचना बाकी है
“engineer” शब्द शायद सिर्फ ज़्यादा पैसा कमाने के लिए जोड़ा गया था
असली engineers proof और validation को महत्व देते हैं, जबकि हम नए patterns और प्रयोगों का आनंद लेते हैं
इसलिए ‘engineer’ शब्द मुझे उल्टा असहज करता है
उन्होंने इसकी आलोचना “ऐसी methodology” के रूप में की थी जिसके जरिए programming न जानने वाले लोग programming करना चाहते हैं, और लगता है कि आज भी यह बात उतनी ही सही है
आजकल AI-आधारित development process बड़ी कंपनियों के इर्द-गिर्द जमता जा रहा है, और vendor lock-in बढ़ता जा रहा है
अगर codebase agent-केंद्रित हो गया, तो आखिरकार वही agents कोड को समझ पाएँगे
उस बिंदु पर कीमतें बढ़ेंगी, और human developers के लिए वापस लौटना मुश्किल एक one-way transition बन सकता है
आशावादी लोग कहते हैं, “तकनीक हमेशा सस्ती होती है और बेहतर बनती है,” लेकिन यह तेल बाज़ार जैसा भी हो सकता है
जैसे पहले DVD से streaming पर जाने के दौरान हुआ था, हम मानो वही फ़िल्म दो बार खरीद रहे हों
Claude Opus 4.6 जैसे models अब प्रति मिनट 1 डॉलर तक महंगे हो गए हैं, और prompt engineering से अब इसकी भरपाई नहीं हो रही
आखिरकार AI services भी low-cost–mid-tier–premium परतों में बँटती जा रही हैं
prompt engineering को अब लगभग चतुर jailbreaking जैसा माना जा रहा है
अपनी knowledge work क्षमता को AI कंपनियों को ‘lease’ पर देना जोखिम भरा है
“अब लागत और नहीं बढ़ेगी” जैसा वाक्य बातचीत का अंत है — वे पासा फेंक चुके हैं
AI की बड़ी कंपनियाँ भी उसी रास्ते पर जाएँगी
अंत में हम शायद token addiction market में फँस जाएँ
open source का अदृश्य हाथ अंततः सब कुछ मुफ़्त कर देगा
hardware और software के बेहतर होने के साथ computation की unit cost लगातार घटती है
blockchain boom की तरह जिन तकनीकों का वास्तविक उपयोग नहीं होता, वे गायब हो जाती हैं, लेकिन AI के पास असली users हैं
Uber जैसी सेवाएँ भी शुरुआती आलोचना के बावजूद अंततः सस्टेनेबल बिज़नेस बनीं
तेल के विपरीत, computing हर साल सस्ती और तेज़ होती जाती है
इस लेख का लेखक Pi नाम का open source coding agent framework बनाने वाला व्यक्ति है
इसका उपयोग OpenClaw में भी हो रहा है
उनका Pi पर ब्लॉग पोस्ट भी देखने लायक है
वह LLM और agents के साथ किसी भी अन्य व्यक्ति से अधिक गहराई से काम कर चुका है
जो कंपनियाँ दावा करती हैं कि “AI 100% कोड लिखती है,” वे अक्सर बिखरे हुए उत्पाद जारी करती हैं
पुराने DOS या MacOS के दौर में ऐसा कोड पूरे system को crash कर सकता था, इसलिए गुणवत्ता अधिक महत्वपूर्ण थी
अब OS ज़्यादा सहनशील हो गया है, इसलिए ढीला-ढाला कोड भी बच जाता है
OTA updates की वजह से अधूरे products को आसानी से बाहर भेजा जाता है ताकि competitors से पहले launch हो सके
बस हमें याद वही कुछ products रहते हैं जो अच्छे बने थे
अब सिर्फ network connection हो तो OS तक को game की तरह आसानी से update किया जा सकता है
coding agents ‘लुभाने वाली siren’ की तरह हैं
शुरुआत में वे तेज़ और स्मार्ट लगते हैं, लेकिन जिस क्षण आप सोचते हैं, “कंप्यूटर, मेरा काम मेरी जगह कर दो,” सब ढहने लगता है
लेकिन यह अस्थायी है — AI पहले ही मापे जा सकने वाले क्षेत्रों में इंसानों से आगे निकल चुका है
असली समस्या HCI (human–computer interaction) की है
इंसानी मूल्यों के अनुरूप interface design करना आगे की सबसे महत्वपूर्ण चुनौती है
अभी AI hype cycle अपने शिखर पर है
जैसे पहले MongoDB या NoSQL के समय लोग कहते थे “SQL मर चुका है,” वैसे ही अंततः लोग फिर व्यावहारिक संतुलन की ओर लौटेंगे
NoSQL गायब नहीं हुआ, लेकिन अब उसका उपयोग वहीं होता है जहाँ उसकी सच में ज़रूरत है
“आजकल software नाज़ुक और बिखरा हुआ है” — इस बात से सहमत होते हुए भी, सच यह है कि software खुद नहीं बदला है
पहले भरोसा नहीं था, इसलिए लोग खुद जाकर चीज़ें जाँचते थे, और वही धीमी गति समस्याएँ कम करती थी
DevOps का सार है भरोसे के आधार पर तेज़ चलना, लेकिन गुणवत्ता बनाए रखना
Toyota के Andon cord की तरह, समस्या मिलते ही तुरंत रुकना और root cause ठीक करना चाहिए
यह तकनीकी नहीं बल्कि संस्कृति और process का मुद्दा है
गलत interfaces या business context mismatch को जल्दी पकड़ना होगा
जब हर कोई GitHub, AWS, Cloudflare का उपयोग करता है, तो एक जगह रुकने पर पूरी दुनिया रुक जाती है
tape-out से ठीक पहले bug मिले तो वे messenger को दोष नहीं देते, बल्कि बहुत सावधानी से निर्णय लेते हैं
programming का output सिर्फ code नहीं, बल्कि प्रोग्रामर स्वयं भी होता है
code लिखते हुए बनने वाले mental models और muscle memory ही असली संपत्ति हैं
अगर AI इस प्रक्रिया की जगह ले ले, तो अंततः प्रोग्रामर की वृद्धि ही गायब हो जाएगी
Jonathan Blow का “Preventing the Collapse of Civilization” भी यही मुद्दा उठाता है
“Programming as Theory Building” देखें
कल मैंने एक सहकर्मी के साथ इसी तरह की बात की
हमने एक demo देखा जिसमें AI logs पढ़ता है, bug ठीक करता है, और postmortem भी लिख देता है,
लेकिन समस्या यह है कि इंसानों के पास उस प्रक्रिया को अंदर तक आत्मसात करने का समय ही नहीं बचता
जैसे कहा जाता है, “कार में brake होते हैं, तभी वह तेज़ चल सकती है,”
वैसे ही इंसान की समझ की गति के अनुरूप सीखने का friction बनाए रखना ज़रूरी है
अगर agent खुद पहचान ले और खुद recovery भी कर ले, तो क्या इंसान को सीखने की ज़रूरत बचेगी?
हाँ, root cause छूट सकता है, लेकिन अगर self-healing system काफ़ी मज़बूत हो, तो क्या वह वास्तव में समस्या है?
product design के नज़रिए से भी यही समस्या महसूस होती है
development की रफ्तार इतनी तेज़ है कि खुद इस्तेमाल करके validate करने का समय ही नहीं मिलता
अगर गलत design के ऊपर features जोड़ते जाएँ, तो बाद में वापस लौटना मुश्किल हो जाता है
अंत में असली बात गति नहीं, बल्कि गुणवत्ता और सीखने के बीच संतुलन है
और इस प्रक्रिया में अनिवार्य रूप से समय लगता है