GitHub Copilot, ChatGPT, किंवा Cursor वापरण्यास सुरुवात करणाऱ्या डेव्हलपर्स अनेकदा एकाच प्रकारच्या 'हनीमून फेज'चे (सुरुवातीच्या उत्साहाच्या काळाचे) वर्णन करतात. ज्या कामांना पूर्वी दोन तास लागायचे, ती आता वीस मिनिटांत होतात. 'Tab' की दाबल्यामुळे बॉयलरप्लेट कोड गायब होतो. पण लवकरच, फोरम्स आणि Slack चॅनेलवर एक शांत तक्रार ऐकू येऊ लागते: थकवा (exhaustion). टूल कोड लिहित आहे, पण त्या प्रक्रियेत काहीतरी तुम्हाला थकावून सोडत आहे. समस्या कोडमध्ये नाही, तर तो वापरण्याच्या (consuming) कामात आहे.

ज्या अडथळ्यासाठी कोणीही तयार नव्हते तो अडथळा

दशकांपासून, सॉफ्टवेअर इंजिनीअरिंगमधील मर्यादा ही टायपिंगचा वेग होती. तुम्ही कितीही वेगाने विचार केला तरी, तुमची बोटे आणि तुमच्या सिंटॅक्सचे ज्ञान ही एक मर्यादा ठरत असे. AI असिस्टंट्सनी ती मर्यादा मोडीत काढली. तुम्ही पहिला ब्लॉक वाचून संपण्यापूर्वीच ते अनेक फाइल्समध्ये शेकडो ओळी तयार करू शकतात. हा वेग स्वातंत्र्यासारखा वाटतो, पण तो एक अनपेक्षित ट्रॅफिक जाम निर्माण करतो. अचानक, तुमच्या कामाच्या प्रक्रियेतील (pipeline) सर्वात संथ भाग म्हणजे स्क्रीनवर जे काही आले आहे ते वाचण्याची, समजून घेण्याची आणि पडताळणी करण्याची तुमची क्षमता बनली आहे. तुम्ही तुमच्या स्वतःच्या प्रोजेक्टचे पूर्णवेळ 'कोड रिव्ह्यूअर' बनला आहात, फक्त फरक इतकाच की लेखक एक असा अल्गोरिदम आहे जो कधीही झोपत नाही आणि कधीही थकत नाही.

श्रमाचे हे बदललेले स्वरूप कोडिंग सत्राचा अनुभव बदलून टाकते. निर्मिती (creation) आणि हलकी पडताळणी (verification) यांमधील बदलांऐवजी, तुम्ही दीर्घकाळ चालणाऱ्या 'व्हॅलिडेशन मोड'मध्ये अडकून पडता. आणि व्हॅलिडेशन म्हणजे केवळ निष्क्रिय वाचन नाही. ती संशयाने केलेली एक सक्रिय विश्लेषण प्रक्रिया आहे. प्रत्येक व्हेरिएबलचे नाव, प्रत्येक बाउंड्री कंडिशन आणि प्रत्येक इम्पोर्ट स्टेटमेंटला मानसिक फिल्टरमधून जावे लागते, कारण AI ला यातून काहीही गमवायचे नसते. प्रोडक्शन जॉब फेल झाला तर पहाटे ३ वाजता तुम्हाला उठवण्यासाठी AI ला कोणीही बोलावणार नाही.

तुमचे मेंदू का थकून जातात

हा थकवा आळस नाही. तो प्रचंड आउटपुट आणि मानवी क्षमतेमधील (bandwidth) एक अपेक्षित संघर्ष आहे.

माहितीचा अतिरेक (Volume overload). एका सामान्य AI सुचवणीमध्ये पूर्ण React component, त्याचे स्टाईलिंग लॉजिक, युटिलिटी फंक्शन्स आणि युनिट टेस्ट्स, सर्व काही एकाच वेळी असू शकते. तुमची 'working memory' एका वेळी मर्यादित माहितीच साठवू शकते. जेव्हा स्क्रीन डझन्स नवीन ओळींनी भरते, तेव्हा तुमच्या मेंदूला एकतर त्यांना अमूर्त पॅटर्नमध्ये कॉम्प्रेस करावे लागते किंवा त्यांना क्रमाने स्कॅन करावे लागते. या दोन्ही पद्धतींमुळे तुमचे लक्ष (attention) खर्च होते. असे अनेक ब्लॉक्स रिव्ह्यू केल्यानंतर, मानसिक स्तरावर स्नायू दुखल्यासारखा थकवा जाणवू लागतो. तुम्ही वाचत असता, पण तुम्हाला ते खरोखर समजून येत नसते.

विश्वासाची दरी (The trust gap). AI ने तयार केलेला कोड अधिकृत (authoritative) वाटतो. इंडेंटेशन परफेक्ट असते. व्हेरिएबलची नावे तर्कसंगत असतात. कमेंट्स देखील योग्य ठिकाणी दिसतात. पण अधिकृत वाटणे म्हणजे अचूक असणे नव्हे. तो कोड एखादा जुना (deprecated) API वापरू शकतो, 'null' इनपुट्सशी संबंधित एखादी 'edge case' सोडू शकतो किंवा एखादा सूक्ष्म SQL injection वेक्टर आणू शकतो. हे सर्व घडू शकते हे तुम्हाला माहित असल्यामुळे, तुम्ही तो कोड वरवर वाचू शकत नाही. तुम्हाला प्रत्येक return statement आणि प्रत्येक लॉजिक ब्रांचची सुरक्षा ऑडिटप्रमाणे बारकाईने तपासणी करावी लागते. तासनतास टिकवून ठेवलेली ही सूक्ष्म तपासणी मानसिकदृष्ट्या खूप खर्चिक असते. विमानतळावरील सुरक्षा तपासणी करणारे कर्मचारी का ठराविक वेळेनंतर बदलले जातात, याचे हेच कारण आहे: सततची सतर्कता लवकर कमी होते.

कार्यप्रवाहातील विसंगती (Workflow mismatch). बहुतेक डेव्हलपमेंट एन्व्हायरनमेंट आणि टीम प्रक्रिया अजूनही 'आधी लिहिणे आणि नंतर टेस्ट करणे' या मानवी लयीवर आधारित आहेत. कोडबेस मानवी वेगाने वाढतो आणि कोड रिव्ह्यू नियोजित बॅचेसमध्ये होतात. जेव्हा AI ला या प्रक्रियेत कोंबले जाते, तेव्हा कामाचा ओघ विस्कळीत होतो. तुम्ही वीस ओळी तयार करता, पडताळणीसाठी थांबता, सुधारणा करण्यास सांगता, पुन्हा पडताळणी करता, पुढच्या फंक्शनकडे जाता आणि मूळ आर्किटेक्चरचा धागा हरवून बसता. सर्जनशील निर्मिती (creative generation) आणि संशयास्पद पडताळणी (skeptical validation) यांच्यातील सततच्या बदलामुळे (context switching) कामात अडथळे येतात. तुमचे IDE लेखकांसाठी डिझाइन केलेले होते, सततच्या डेडलाईनखाली काम करणाऱ्या संपादकांसाठी नाही.

थकव्याचे चक्र (The Exhaustion Loop)

हे घटक एक असे चक्र तयार करतात जे दिवस जसजसा पुढे जातो तसतसे अधिक बिघडत जाते.

असिस्टंट काही सेकंदात एखादे फीचर इम्प्लिमेंटेशन तयार करून देतो. त्यानंतर तुम्ही इम्पोर्ट्स तपासण्यात, टाइप सुसंगतता (type compatibility) तपासण्यात आणि 'edge cases' चे मानसिक सिम्युलेशन करण्यात पंधरा मिनिटे घालवता. तिसऱ्या किंवा चौथ्या फेरीपर्यंत तुमची एकाग्रता कमी होऊ लागते. तुम्ही असे स्निपेट्स स्वीकारू लागता जे "बहुतेक बरोबर वाटतात." चुका सुटतात. भरपाई करण्यासाठी, तुम्ही तुमचा वेग कमी करता, ज्यामुळे तुम्ही सुरुवातीला मिळवलेला वेग वाया जातो. दिवसाच्या शेवटी तुमच्याकडे नेहमीपेक्षा जास्त कोड असतो, पण त्यावर तुमचा आत्मविश्वास कमी असतो आणि डोकेदुखीमुळे असे वाटते की तुम्ही हुशारीने नाही तर फक्त जास्त कष्ट घेतले आहेत.

जेव्हा वेग धोकादायक ठरतो

जर ही पद्धत कायमस्वरूपी रूटीन बनली, तर त्याचे नुकसान केवळ एका वाईट दुपारपुरते मर्यादित राहत नाही.

बर्नआउट (Burnout) शांतपणे येते. ते प्रोजेक्ट उघडताना वाटणारी भीती किंवा चिडचिड न करता आणखी एक कोड ब्लॉक पाहण्याची असमर्थता म्हणून दिसून येते. जेव्हा तुम्हाला मदत करण्यासाठी असलेले मुख्य टूलच थकव्याचे मुख्य कारण बनते, तेव्हा त्यातून संताप निर्माण होतो.

त्यानंतर कौशल्याचा ऱ्हास (skill atrophy) होतो. जेव्हा तुम्ही हे करणे थांबवता, तेव्हा हेतूचे (intent) सिंटॅक्समध्ये (syntax) रूपांतर करण्याची तुमची क्षमता कमकुवत होते. तुम्ही सिस्टिम्सचे आर्किटेक्चर (architect) अजूनही उत्तम प्रकारे करू शकता, परंतु सूक्ष्म प्रवाहीपणा (granular fluency) — जसे की एखादी विशिष्ट लूप स्ट्रक्चर (loop structure) का चुकीची वाटते हे समजणे, किंवा लोड असताना एखादी विशिष्ट लायब्ररी (library) कशी वागते हे आठवणे — जेव्हा ऑटोकम्प्लीट लेयर (autocomplete layer) बारकावे हाताळतो, तेव्हा तो कमी होत जातो. कालांतराने, तुम्ही एक सक्रिय इंजिनिअर (active engineer) राहण्याऐवजी केवळ एक निष्क्रिय क्युरेटर (passive curator) बनण्याचा धोका निर्माण होतो.

तथापि, सर्वात तात्काळ धोका म्हणजे निष्काळजी डिप्लॉयमेंट (sloppy deployment) आहे. वेग कायम ठेवण्याच्या दबावाखाली आणि तासनतास मशीन आउटपुट वाचून थकल्यामुळे, डेव्हलपर्स कधीकधी असा कोड डिप्लॉय करतात ज्याची त्यांनी पूर्णपणे पडताळणी केलेली नसते.