Technology · · 5 min read

Meta इंजीनियरिंग पर AI के प्रभाव का आकलन करने के लिए कोड-परिवर्तन संबंधी डेटा का इस्तेमाल कर रहा है

Meta के शोधकर्ता मॉरिट्ज़ बेलर के साथ बातचीत में कंपनी के डेवलपर-उत्पादकता संबंधी मापदंडों, AI के प्रभावों और स्वचालित परीक्षण की सीमाओं की पड़ताल की गई है।

newsletter.getdx.com की एक रिपोर्ट के अनुसार, Meta यह समझने के लिए व्यक्तिगत कोड-परिवर्तनों से लिए गए मापों का इस्तेमाल कर रहा है कि इंजीनियरिंग टूल और कृत्रिम बुद्धिमत्ता डेवलपर्स के काम को कैसे प्रभावित कर रहे हैं। शोधकर्ता मॉरिट्ज़ बेलर का कहना है कि कंपनी ने देखा है कि इंजीनियर अधिक और बड़े परिवर्तन कर रहे हैं, फिर भी किसी परिवर्तन को लिखने में लगने वाला समय साल-दर-साल 40% से अधिक घटा है।

यह माप, जिसे डिफ ऑथरिंग टाइम के रूप में जाना जाता है, किसी एक कोड-परिवर्तन को बनाने, उसका परीक्षण करने और उसकी समीक्षा करने में लगने वाले सक्रिय प्रयास को दर्ज करता है। परिवर्तनों को अलग-अलग देखकर Meta को पूरे दिन में डेवलपर द्वारा किए जाने वाले हर काम से उत्पादकता की गणना करने की तुलना में अधिक केंद्रित दृष्टिकोण मिलता है।

Meta इस माप का इस्तेमाल व्यक्तिगत इंजीनियरों की रैंकिंग या मूल्यांकन के लिए नहीं करता। इसके बजाय, वह पूरी कंपनी के साथ-साथ टीमों और विभागों के स्तर पर पैटर्न की जांच करता है। इसका उद्देश्य प्रतिकूल बदलावों का पता लगाना, उपयोगी सुधारों की पहचान करना और यह तय करना है कि इंजीनियरिंग टूल में आगे निवेश करना कहां उचित होगा।

उत्पादकता का अधिक विस्तृत दृष्टिकोण

कंपनी डिफ ऑथरिंग टाइम को कई संकेतकों में से एक मानती है। इसके साथ-साथ थ्रूपुट, परिवर्तनों का आकार और उनकी गुणवत्ता को भी देखा जाता है, क्योंकि कोई एक माप इंजीनियरिंग उत्पादकता का विश्वसनीय वर्णन नहीं कर सकता। उदाहरण के लिए, किसी परिवर्तन को पूरा करने में कम समय लगना जरूरी नहीं कि लाभकारी हो, अगर उससे बनने वाला कोड खराब हो या उसमें काफी सुधार की जरूरत पड़े।

यह दृष्टिकोण Meta को यह जांचने की सुविधा भी देता है कि फ्रेमवर्क और डेवलपर टूल में किए गए बदलाव व्यावहारिक लाभ देते हैं या नहीं। रिपोर्ट में React कंपाइलर में स्वचालित मेमोइज़ेशन को इसका एक उदाहरण बताया गया है। हाथ से कैशिंग जोड़ने की तुलना में, कंपाइलर के स्वचालित तरीके ने किसी परिवर्तन को लिखने में लगने वाला समय लगभग 30% घटा दिया। बेलर ऐसे स्तर के परिणामों को इस बात का प्रमाण मानते हैं कि डेवलपमेंट एनवायरनमेंट में बुनियादी सुधार, इंटरफेस में किए गए छोटे-मोटे सुधारों से अधिक महत्वपूर्ण हो सकते हैं।

ऑथरिंग टाइम में आई गिरावट को केवल तेज टाइपिंग या कोड जनरेशन से पूरी तरह नहीं समझाया जा सकता। बेलर का मानना है कि डेवलपर्स बचाए गए समय का इस्तेमाल संदर्भ जुटाने और इम्प्लीमेंटेशन से जुड़े काम संभालने में कर रहे होंगे। ऐसा लगता है कि प्रॉम्प्ट लिखने का हिस्सा इस अतिरिक्त गतिविधि में केवल छोटा-सा है।

जैसे-जैसे कोड जनरेट करना सस्ता होता जा रहा है, कठिन समस्या यह तय करना हो सकती है कि कोड को करना क्या चाहिए। डेवलपर के इरादे का महत्व तब बढ़ जाता है, जब कोई स्वचालित प्रणाली जल्दी से इम्प्लीमेंटेशन तैयार कर सकती हो, लेकिन अधूरे अनुरोध को गलत समझ सकती हो।

उत्पादकता के माप किन बातों को नहीं पकड़ पाते

पारंपरिक टेलीमेट्री उन कोड-परिवर्तनों को दर्ज करने में अधिक सक्षम है जो हो चुके हैं, लेकिन उनसे पहले किए गए काम को दर्ज करने में कम सक्षम है। व्हाइटबोर्डिंग, विचार-मंथन और आर्किटेक्चर संबंधी चर्चाएं किसी नतीजे के लिए महत्वपूर्ण हो सकती हैं, फिर भी उनका बाद में किए गए डिफ से कोई स्पष्ट संबंध नजर नहीं आ सकता। AI द्वारा बनाए गए मीटिंग ट्रांसक्रिप्ट और अन्य रिकॉर्ड भविष्य में इस तैयारी का अध्ययन करना कुछ हद तक आसान बना सकते हैं।

इसका मतलब यह नहीं है कि आर्किटेक्चर कम महत्वपूर्ण हो गया है। डिजाइन दस्तावेज से बचने का मतलब केवल यह हो सकता है कि बोझ समीक्षकों पर चला जाए, जिन्हें तैयार इम्प्लीमेंटेशन से इच्छित संरचना का अनुमान लगाना पड़े। इसलिए तेज प्रोडक्शन इंजीनियरिंग प्रक्रिया के किसी अन्य हिस्से में किए गए अतिरिक्त काम को छिपा सकता है।

बेलर के पहले के Mind the Gap अध्ययन में स्वचालित रूप से दर्ज की गई गतिविधि की तुलना डेवलपर्स द्वारा अपनी उत्पादकता के किए गए आकलन से की गई थी। कोडिंग का समय एक महत्वपूर्ण पूर्वानुमानक था, लेकिन आराम, व्यवधान और ऑन-कॉल ड्यूटी ने भी इस बात को प्रभावित किया कि लोगों को खुद की उत्पादकता कैसी महसूस हुई। एक नए संस्करण में यह जांचना जरूरी होगा कि डेवलपर्स एजेंट्स के साथ कैसे काम करते हैं, उन्हें उन पर कितना भरोसा है और क्या एक ही समय में कई स्वचालित कार्यों का समन्वय अत्यधिक मानसिक दबाव पैदा करता है।

अधिक आउटपुट बेहतर कार्य-अनुभव की गारंटी भी नहीं देता। चर्चा में कहा गया है कि एकाग्रता, मानसिक प्रयास और समग्र संतुष्टि अपरिवर्तित रह सकती है या घट सकती है, जबकि उत्पादकता बढ़ रही हो। पारस्परिक संबंध, साझा समझ और अनौपचारिक ज्ञान का आदान-प्रदान इंजीनियरिंग के काम के लिए महत्वपूर्ण हैं, लेकिन अधिकांश मेट्रिक्स में उनका प्रतिनिधित्व करना अब भी कठिन है।

अनावश्यक मीटिंग कम करने से थ्रूपुट बेहतर हो सकता है, लेकिन बहुत अधिक सहयोग खत्म करने से टीमें विचारों और संदर्भ से वंचित हो सकती हैं। छोटे सामाजिक संवाद भी महत्वपूर्ण हैं: इस कड़ी में चर्चा किए गए शोध में पाया गया कि मीटिंग से पहले और बाद की अनौपचारिक बातचीत, इंटरनेट की गुणवत्ता की तुलना में, लोगों द्वारा बताई गई उत्पादकता का अधिक मजबूत पूर्वानुमानक थी।

AI एजेंट्स के लिए परीक्षण की चुनौती

AI एजेंट्स यूनिट और एंड-टू-एंड परीक्षण बनाना सस्ता कर देते हैं, जिससे उन डेवलपर्स के बीच लंबे समय से मौजूद एक कमी दूर हो सकती है, जो पहले बहुत कम स्वचालित टेस्ट लिखते थे। लेकिन पास होने वाले टेस्ट का एक संग्रह झूठा भरोसा दे सकता है, जब इम्प्लीमेंटेशन और टेस्ट, दोनों ही किसी अस्पष्ट अनुरोध की एक ही गलत व्याख्या पर आधारित हों।

कोई एजेंट ऐसा कोड और टेस्ट तैयार कर सकता है जो आपस में पूरी तरह सुसंगत हों, लेकिन फिर भी डेवलपर के वास्तविक लक्ष्य को पूरा न करते हों। यह जोखिम इम्प्लीमेंटेशन शुरू होने से पहले ही सही होने की परिभाषा तय करना अधिक महत्वपूर्ण बना देता है। बातचीत से संकेत मिलता है कि जैसे-जैसे एजेंट अधिक कोडिंग कार्य संभालेंगे, स्पेसिफिकेशन-ड्रिवन डेवलपमेंट, टेस्ट-ड्रिवन डेवलपमेंट का एक समकक्ष बन सकता है।

स्वचालित इम्प्लीमेंटेशन की गति इस जोखिम को भी बढ़ाती है कि टीमें अनजाने में एक ही चीज समानांतर रूप से बना लें। बेहतर मापन में केवल पूरा किए गए कोड को ही नहीं, बल्कि तालमेल, संवाद और दोहराए गए प्रयास को भी शामिल करना होगा। Meta का डिफ-स्तरीय डेटा नए टूल के कुछ प्रभावों को देखने का एक तरीका उपलब्ध कराता है, लेकिन व्यापक चर्चा से यह स्पष्ट होता है कि इंजीनियरिंग उत्पादकता तकनीकी समस्या होने के साथ-साथ मानवीय और संगठनात्मक समस्या भी बनी हुई है।

metadeveloper productivityartificial intelligencesoftware engineeringengineering metricsai agentssoftware testing

Continue reading

Read this in another language