सॉफ्टवेअरने जग व्यापले होते. आता AI एका वेळी एक फाईल करून सॉफ्टवेअरला गिळंकृत करत आहे. जर तुम्ही उपजीविकेसाठी कोड लिहित असाल, तर तुम्हाला कदाचित तुमच्या कीबोर्डखालीची जमीन सरकत आहे असे जाणवले असेल. एका डेव्हलपरला एकाच वर्षात दोनदा याचा अनुभव आला. प्रथम, मशीनने लिहिण्याचे काम घेतले. त्यानंतर, तपासण्याचे कामही घेतले. त्याच्याकडे अजूनही नोकरी आहे, पण केवळ यासाठी की त्याने आपले काम इतक्या प्रमाणात बदलले आहे की ते ओळखणेही कठीण आहे.
हे कोणतेही प्रलयकारी भाकीत नाही. हे या संक्रमणाच्या मध्यभागातून आलेले एक फील्ड रिपोर्ट आहे.
पहिले स्थित्यंतर: टायपिंगपासून प्रूफरीडिंगपर्यंत
एक काळ असा होता जेव्हा त्याचे कौशल्य वर्णन करणे सोपे होते: विचार करणे, टायपिंग करणे, टेस्ट करणे आणि शिप करणे. तो प्रत्येक फंक्शन स्वतः हाताने लिहायचा. तो व्हेरिएबल्सची नावे द्यायचा, नेस्टेड लूप्स लिहायचा आणि प्रयत्नांतून व चुकांतून 'edge cases' शोधून काढायचा. कोड वाचणे ही वेगळी गोष्ट नव्हती. ती निर्मितीचीच एक संथ आणि तपासलेली प्रक्रिया होती. क्वालिटी कंट्रोल आणि प्रोडक्शन एकाच प्रक्रियेचा भाग होते.
मग 'autocomplete' हे केवळ एक साधे फीचर राहिले नाही.
AI कोडिंग असिस्टंट्सनी केवळ पुढचा कीवर्ड सुचवणे थांबवले. त्यांनी संपूर्ण क्लासेस, डेटाबेस मायग्रेशन्स आणि API रॅपर्स तयार करायला सुरुवात केली. डेव्हलपरचे हात एरो कीजवरून रिव्ह्यू पेनवर सरकले. त्याने लिहिण्याची क्रिया गमावली, पण त्याने स्वतःला सांगितले की तो सुरक्षित आहे. तो अजूनही प्रत्येक ओळ वाचायचा. तो अजूनही लॉजिकचा आकार समजून घ्यायचा. तो संपादक होता, गेटकीपर होता, 'human in the loop' होता.
हे स्थित्यंतर हाताळण्यायोग्य वाटते कारण नियंत्रणाचे भास अजूनही कायम आहेत. तुम्ही अजूनही कोडला स्पर्श करत आहात. तुम्ही अजूनही 'off-by-one' चुका शोधत आहात. पण तुमची भूमिका आधीच बदलली आहे. तुम्ही आता लेखक नाही आहात. तुम्ही मशीनच्या 'hallucinations' (भ्रम) विरुद्धची पहिली संरक्षण भिंत आहात.
दुसरे स्थित्यंतर: वाचण्यापासून विश्वासापर्यंत
दुसऱ्या बदलाचा फटका अधिक जोरात बसला.
AI एजंट्स इतक्या वेगाने विकसित झाले की ते मानवी मदतीशिवाय तासनतास काम करू शकतात. तो कॉफीसाठी बाहेर गेल्यावर ते 'scaffolding' तयार करू शकत होते, 'legacy modules' रिफॅक्टर करू शकत होते आणि 'dependencies' पॅच करू शकत होते. आता 'throughput' (उत्पादन क्षमता) समस्या नव्हती. तर त्याची स्वतःची वाचण्याची गती समस्या होती.
प्रोजेक्ट पुढे नेण्यासाठी, त्याला प्रत्येक ओळ वाचणे थांबवावे लागले. दुसरा कोणताही पर्याय नव्हती. फॅक्टरी त्याच्या मंजुरीपेक्षा वेगाने उत्पादन करू शकत होती. विश्वास ही आता एक गरज बनली होती, केवळ एक गुण नाही. तो प्रूफरीडरपासून ऑपरेशन्स मॅनेजर बनला, अशा प्रणालीवर देखरेख करू लागला जी एका 'sprint' मध्ये त्याच्या वर्षभराच्या लेखनापेक्षा जास्त कोड तयार करत होती.
त्याने ही भावना प्रामाणिकपणे व्यक्त केली: तो आता कोडर राहिला नव्हता. तो एका मशीन फॅक्टरीचे व्यवस्थापन करत होता जिथे कन्व्हेयर बेल्ट त्याच्या डोळ्यांच्या वेगापेक्षा जास्त वेगाने धावत होते.
अडथळा (Bottleneck) वरच्या दिशेला सरकतो
ही गोष्ट लक्षात घेणे सोपे नाही. अडथळा नाहीसा झाला नाही. तो फक्त स्थलांतरित झाला.
जेव्हा मानवांनी कोड लिहिला, तेव्हा विलंब हा मेंदू आणि IDE मधील होता. डेव्हलपर हा सर्वात संथ भाग होता आणि ते स्वीकारार्ह होते. एकदा का AI ने लेखनाची जबाबदारी घेतली, की अडथळा 'मानवी रिव्ह्यू' बनला. त्यानंतर, जेव्हा एजंट्स तासनतास लूपमध्ये काम करू लागले, तेव्हा अडथळा 'मानवी निर्णयक्षमता' बनला. एजंट्सनी नक्की कोणत्या गोष्टीवर काम करावे? ऑटोमेट करण्यासाठी काय सुरक्षित आहे? कोणत्या गोष्टीकडे पुन्हा लक्ष देणे आवश्यक आहे?
मॅनेजर मंजुरी देऊ शकण्यापेक्षा फॅक्टरी वेगाने उत्पादन करते. समस्या आता मशीनच्या वेगाची नाही. ती माहिती ग्रहण करण्याची, निर्णय घेण्याची आणि दिशा देण्याची मानवी क्षमता आहे.
जर तुम्ही या अडथळ्याच्या स्थलांतराकडे दुर्लक्ष केले, तर तुम्ही स्वतःच असा अडथळा बनाल जो काढण्यासाठी पुढचे साधन (tool) तयार केले जाईल.
तीन पुनर्रचना, एक करिअर
दोन्ही लाटांतून वाचण्यासाठी त्याला आपली भूमिका तीन वेळा वेगळ्या प्रकारे पुनर्रचित करावी लागली.
प्रथम, तो कोड लिहिण्यापासून कोड वाचण्याकडे वळला. याचा अर्थ असा होता की, ओपन-सोर्स रिपॉझिटरीज आणि फोरम थ्रेड्सवर प्रशिक्षित मॉडेलने तयार केलेल्या 'boilerplate' मध्ये सूक्ष्म चुका शोधण्यासाठी शंकाने आणि वेगाने वाचायला शिकणे. एखादे सुचवलेले उत्तर वरवर बरोबर वाटत असले तरी ते सूक्ष्मपणे चुकीचे आहे हे ओळखण्याची क्षमता विकसित करणे, ही कौशल्ये शून्यातून लिहिण्यापेक्षा पूर्णपणे वेगळी होती.
त्यानंतर, तो कोड वाचण्यापासून वर्कफ्लो (workflows) तयार करण्याकडे वळला. सध्या अनेक डेव्हलपर्स याच टप्प्यावर पोहोचत आहेत. तुम्ही फंक्शन्स दुरुस्त करत नाही आहात; तुम्ही असे वातावरण तयार करत आहात जिथे फंक्शन्स दुरुस्त केली जातात. तुम्ही प्रॉम्प्ट्स लिहिता, सिस्टम सूचना तयार करता, 'guardrails' सेट करता आणि CI गेट्स कॉन्फिगर करता. तुम्ही एजंटला कंपायलर, लिंटर आणि टेस्ट सूटशी जोडणारी सिस्टीम तयार करता. तुमचे आउटपुट हे सिंटॅक्सपेक्षा अधिक 'orchestration' (समन्वय) करण्यावर आधारित असते.
शेवटी, तो वर्कफ्लो तयार करण्यापासून काय तयार करायचे हे ठरवण्याकडे वळला. हे सर्वोच्च शिखर आहे. पहिली फाईल तयार होण्यापूर्वीच तुम्ही आर्किटेक्चर निवडत असता. तुम्ही मर्यादा (constraints), इंटरफेसेस आणि बिझनेस लॉजिक परिभाषित करता, जे AI नंतर पूर्ण करेल. तुम्ही एक 'product thinker' बनला आहात जो सिस्टिम्सच्या भाषेत बोलतो.
जर तो पहिल्या टप्प्यावरच राहिला असता, तर त्याची पूर्णपणे जागा घेतली गेली असती. त्याला अजूनही पगार मिळत असल्याचे एकमेव कारण म्हणजे त्याने तिसऱ्या टप्प्यापर्यंत झेप घेतली आहे.
पण ही चढाई...
