जनरेटिव्ह एआय (Generative AI) केवळ सूचना दिल्यावर वास्तववादी प्रतिमा, चित्रे आणि पेंटिंग्स तयार करू शकते, हे सर्वांना माहीत आहे.
दरम्यान, व्यवसाय जगात जनरेटिव्ह एआयच्या प्रोग्राम तयार करण्याच्या क्षमतेवर लक्ष केंद्रित केले जात आहे.
संवादात्मक एआय (Conversational AI) मोठ्या भाषा मॉडेल्सवर (large language models) आधारित आहे, जी एक मूलभूत तंत्रज्ञान आहे, आणि ती विविध भाषांमध्ये संवाद साधण्यात तसेच त्यांच्यात भाषांतर करण्यात अत्यंत कुशल आहे.
प्रोग्राम तयार करण्यासाठी वापरल्या जाणाऱ्या प्रोग्रामिंग भाषा (Programming languages) देखील एक प्रकारची भाषाच आहेत. मानवी प्रोग्रामर्स, एका अर्थाने, तोंडी मिळालेल्या सॉफ्टवेअरच्या गरजा प्रोग्रामिंग भाषांमध्ये भाषांतरित करत असतात.
यामुळेच, मोठ्या भाषा मॉडेल्सचा वापर करणारी संवादात्मक जनरेटिव्ह एआय प्रोग्रामिंगमध्येही खूप निपुण आहे.
शिवाय, प्रोग्रामिंग हे एक बौद्धिक कार्य आहे जिथे परिणामांची अचूकता अनेकदा आपोआप आणि त्वरित सत्यापित केली जाऊ शकते. कारण तयार केलेला प्रोग्राम कार्यान्वित करून तो इच्छित आउटपुट देतो की नाही हे आपोआप तपासले जाऊ शकते.
खरं तर, मानवी प्रोग्रामर्स जेव्हा एखादा प्रोग्राम तयार करतात, तेव्हा ते अनेकदा त्याच वेळी परिणामांची पडताळणी करण्यासाठी चाचणी प्रोग्राम (test programs) देखील तयार करतात आणि मुख्य प्रोग्राम इच्छितपणे कार्य करत आहे की नाही हे तपासत विकास पुढे नेतात.
जनरेटिव्ह एआय देखील त्याच पद्धतीने चाचणी करत प्रोग्रामिंग पुढे नेऊ शकते. जर मानवाने अचूक सूचना दिल्या तर, एआय स्वयंचलितपणे पुनरावृत्ती (iterate) करून आणि सर्व चाचण्या पास होईपर्यंत प्रोग्राम पूर्ण करू शकते.
अर्थात, जनरेटिव्ह एआयच्या प्रोग्रामिंग क्षमतेच्या मर्यादांमुळे आणि मानवी सूचनांमधील संदिग्धतेमुळे, अनेक वेळा चाचण्या अनेक पुनरावृत्तींनंतरही पास होऊ शकत नाहीत. शिवाय, अपुऱ्या किंवा चुकीच्या चाचण्यांमुळे तयार झालेल्या प्रोग्राममध्ये दोष (bugs) किंवा समस्या (problems) अनेकदा असतात.
तथापि, जनरेटिव्ह एआयच्या क्षमतांमध्ये सुधारणा होत असताना, मानवी अभियंते त्यांच्या सूचना देण्याच्या पद्धतींना अधिक परिष्कृत करत आहेत, आणि इंटरनेट शोधांद्वारे जनरेटिव्ह एआयच्या प्रोग्रामिंग ज्ञानामध्ये वाढ करण्याच्या यंत्रणांमुळे, योग्य प्रोग्राम स्वयंचलितपणे तयार करण्याची व्याप्ती दिवसेंदिवस वाढत आहे.
याव्यतिरिक्त, व्यवसाय जगाच्या लक्षामुळे, जनरेटिव्ह एआय संशोधन आणि विकासात गुंतलेल्या अग्रगण्य कंपन्या देखील जनरेटिव्ह एआयच्या प्रोग्रामिंग क्षमता सुधारण्यासाठी मोठ्या प्रमाणात गुंतवणूक करत आहेत.
या परिस्थितीत, जनरेटिव्ह एआयला सोपवता येणाऱ्या स्वयंचलित प्रोग्रामिंग कार्यांची व्याप्ती आणि प्रमाण वेगाने वाढण्याची अपेक्षा आहे.
असे अनेक उदाहरणे आहेत जिथे ज्या व्यक्तींनी यापूर्वी कधीही प्रोग्राम विकसित केले नाहीत, त्यांनी इंटरनेट माहिती वापरून मूलभूत विकास वातावरण (development environment) तयार केले, त्यानंतर प्रोग्रामिंगसाठी जनरेटिव्ह एआयवर अवलंबून राहून, दोघांनी मिळून प्रकल्प पूर्ण केले.
मी स्वतः एक प्रोग्रामर म्हणून जनरेटिव्ह एआयचा वापर प्रोग्रामिंगसाठी करतो. एकदा मला याची सवय झाली की, जनरेटिव्ह एआयच्या सूचनांनुसार प्रोग्राम कॉपी करून किंवा पेस्ट करून मी कोणताही प्रोग्राम संपादित न करता सॉफ्टवेअर पूर्ण करू शकतो.
निश्चितपणे, अनेक वेळा मी अडकून जातो. याची मुख्य कारणे माझ्या संगणकाची किंवा प्रोग्रामिंग विकास साधनांची (programming development tool) सामान्य सेटिंग्जपेक्षा थोडी वेगळी सेटिंग्ज असणे, किंवा जनरेटिव्ह एआयला प्रशिक्षण दिले गेले त्या वेळेपेक्षा विनामूल्य सॉफ्टवेअर घटक (free software components) नवीन असणे, ज्यामुळे ज्ञानामध्ये अंतर निर्माण होते, किंवा माझ्या विनंत्या थोड्या असामान्य असणे अशी असतात.
अशा किरकोळ विसंगती किंवा विशेष परिस्थिती नसताना, आणि अत्यंत सामान्य सॉफ्टवेअर कार्ये तयार करण्याच्या सूचना दिल्यावर, बहुतेक परिस्थितीत योग्य प्रोग्राम तयार होतात.
लिक्विडवेअर युगाकडे
एक सॉफ्टवेअर डेव्हलपर म्हणून, मी तयार केलेले सॉफ्टवेअर प्रकाशित (release) करू शकतो आणि ते सॉफ्टवेअर, जे आम्ही अभियंते प्रकाशित करतो, ते विविध वापरकर्त्यांद्वारे वापरले जाते.
जनरेटिव्ह एआयच्या मदतीने हे सॉफ्टवेअर डेव्हलपमेंट कोणालाही करता येईल, हे आतापर्यंतच्या चर्चेचा पुढचा टप्पा आहे.
परंतु, हा केवळ सॉफ्टवेअर डेव्हलपमेंट बाजूचा बदल नाही; वापरकर्ता बाजूलाही मोठे बदल अपेक्षित आहेत.
जनरेटिव्ह एआयला तोंडी सूचना देऊन सॉफ्टवेअरमध्ये आपोआप फंक्शन्स (functions) जोडण्याचे किंवा बदलण्याचे काम सॉफ्टवेअर रिलीज करण्यापूर्वीच्या विकास टप्प्यातच नव्हे, तर त्याच्या वापरादरम्यानही करता येते. शिवाय, हे काम सॉफ्टवेअर वापरकर्ते स्वतःच करू शकतात.
सॉफ्टवेअर डेव्हलपर्स काय बदलले जाऊ शकते आणि काय बदलले जाऊ शकत नाही याची व्याप्ती (scope) परिभाषित करू शकतात, आणि मग जनरेटिव्ह एआय-शक्ती असलेल्या कस्टमायझेशन फीचर्ससह सॉफ्टवेअर प्रकाशित करू शकतात.
यामुळे वापरकर्ते जनरेटिव्ह एआयला सॉफ्टवेअरमधील किरकोळ असुविधा किंवा स्क्रीन डिझाइनच्या पसंतीमध्ये बदल करण्यास सांगू शकतील.
शिवाय, वापरकर्ते इतर ऍप्लिकेशन्समध्ये (applications) असलेले उपयुक्त फीचर्स (features) जोडू शकतील, अनेक ऑपरेशन्स (operations) एका क्लिकवर एकत्र करू शकतील, किंवा वारंवार पाहिले जाणारे स्क्रीन एकाच डिस्प्लेवर पाहू शकतील.
सॉफ्टवेअर डेव्हलपर्ससाठी, अशा वापरकर्ता कस्टमायझेशनला (customization) सक्षम केल्याने महत्त्वपूर्ण फायदे मिळतात: यामुळे त्यांना स्वतःला फीचर विनंत्या लागू करण्याचा त्रास वाचतो, आणि वापरकर्त्याच्या अनुभवावरील नकारात्मक प्रतिक्रिया आणि असंतोष टाळून सॉफ्टवेअरची लोकप्रियता वाढवता येते.
जेव्हा वापरकर्ते अशा प्रकारे स्क्रीन आणि फंक्शन्समध्ये मुक्तपणे बदल करू शकतात, तेव्हा ही संकल्पना आपण पारंपारिकपणे ज्याला "सॉफ्टवेअर" म्हणतो त्यापेक्षा खूप वेगळी दिसते.
याला "लिक्विडवेअर" (Liquidware) म्हणणे अधिक योग्य ठरेल, कारण ते सॉफ्टवेअरपेक्षाही (जे आधीच हार्डवेअरपेक्षा अधिक लवचिक आहे) अधिक तरल आणि जुळवून घेण्याजोगे आहे, आणि वापरकर्त्याला पूर्णपणे अनुकूल ठरते.
कार्यक्षमता एकेकाळी केवळ हार्डवेअरद्वारे साकारली जात होती. मग, अदलाबदल करण्यायोग्य सॉफ्टवेअर उदयास आले, ज्यामुळे हार्डवेअर आणि सॉफ्टवेअरच्या संयोगाने कार्यक्षमता शक्य झाली.
तिथून, आपण लिक्विडवेअरचा उदय पाहू शकतो, म्हणजे जनरेटिव्ह एआयद्वारे बदलता येण्याजोगे भाग. परिणामी, हार्डवेअर + सॉफ्टवेअर (डेव्हलपर्सद्वारे प्रदान केलेले) + लिक्विडवेअर (वापरकर्त्यांच्या बदलांसह) यांच्या संयोगाने कार्यक्षमता साकार होईल.
या लिक्विडवेअर युगात, बदल करण्यासाठी वापरकर्त्यांच्या कल्पनांचा स्फोट होईल.
एका वापरकर्त्याने शोधलेली एक क्रांतिकारी बदल कल्पना सोशल मीडियावर चर्चेचा विषय बनू शकते, ज्यामुळे इतर लोकही त्याचे अनुकरण करतील आणि विविध लिक्विडवेअर ऍप्लिकेशन्समध्ये बदल करतील.
शिवाय, विविध सॉफ्टवेअर ऍप्लिकेशन्सना एकात्मिक पद्धतीने हाताळण्यास सक्षम असे लिक्विडवेअर देखील उदयास येण्याची शक्यता आहे. याचा अर्थ वापरकर्ते अनेक वेगवेगळ्या सोशल मीडिया प्लॅटफॉर्मवरील टाइमलाइन्स (timelines) एकाच ऍपमध्ये पाहू शकतील, किंवा शोध परिणाम (search results) अनेक प्लॅटफॉर्मवरील निष्कर्षांना एकत्र करू शकतील.
अशा प्रकारे, लिक्विडवेअर सर्वदूर पसरलेल्या जगात, पीसी (PCs) आणि स्मार्टफोनसह (smartphones) विविध उपकरणे आपल्या प्रत्येकाच्या वैयक्तिक जीवनाला आणि कार्यांना पूर्णपणे अनुकूल कार्यक्षमता प्रदान करतील.
एक वर्तमान घटना
माझ्यासारख्या सॉफ्टवेअर अभियंत्यांसाठी, लिक्विडवेअर ही काही भविष्यातील संकल्पना किंवा अनेक वर्षांनी येणारी गोष्ट नाही, हे समजून घेणे महत्त्वाचे आहे.
कारण, अगदी सोपे लिक्विडवेअर देखील आताच साध्य करता येण्यासारखे आहे.
उदाहरणार्थ, समजा मी माझ्या कंपनीच्या ई-कॉमर्स साइटसाठी वेब ऍप्लिकेशन (web application) विकसित करणारा अभियंता आहे.
अशा वेब ऍपमध्ये (web app) इन-हाऊस व्यवस्थापित केलेल्या किंवा क्लाउड सेवेद्वारे करार केलेल्या सर्व्हरवर (server) डेटाबेसेस (databases), विक्री व्यवस्थापन प्रणाली (sales management systems) आणि उत्पादन शिपिंग प्रणाली (product shipping systems) असतील. जेव्हा एखादा वापरकर्ता खरेदी करतो, तेव्हा या प्रणाली पेमेंट संकलन आणि उत्पादन वितरणाची (product dispatch) हाताळणी करण्यासाठी जोडल्या जातात.
अशा मुख्य व्यवसाय प्रणाली आणि डेटाबेसेसमध्ये मनमानीपणे बदल करता येत नाहीत.
तथापि, वापरकर्त्यासमोर असलेल्या ई-कॉमर्स साइटच्या वेब स्क्रीन डिझाइनमध्ये वैयक्तिक वापरकर्त्यांना अनुकूल असे बदल केल्यास कोणतीही मोठी समस्या येत नाही. अर्थात, जर एका वापरकर्त्याच्या बदलांमुळे इतर वापरकर्त्यांच्या स्क्रीनवर परिणाम झाला, तर ती एक समस्या असेल, परंतु वैयक्तिक वापरकर्ता-विशिष्ट सानुकूलन (user-specific customizations) ठीक आहेत.
उदाहरणार्थ, अनेक बदल शक्य आहेत: मजकूर मोठा करणे, पार्श्वभूमीचा रंग गडद करणे, डाव्या हाताने सोप्या ऑपरेशनसाठी वारंवार दाबल्या जाणाऱ्या बटणांची जागा बदलणे, सूची स्क्रीनवर वस्तूंना किंमतीनुसार क्रमवारी लावणे, किंवा दोन उत्पादनांचे तपशील शेजारी-शेजारी प्रदर्शित करणे.
तांत्रिकदृष्ट्या, हे बदल ब्राउझरमध्ये स्क्रीन प्रदर्शित करणाऱ्या HTML, CSS आणि JavaScript सारख्या कॉन्फिगरेशन फाइल्स (configuration files) आणि प्रोग्राम्समध्ये बदल करून साध्य करता येतात.
सुरक्षिततेच्या दृष्टिकोनातून (security perspective), या फाइल्स मूळतः वेब ब्राउझरवर चालतात. त्यामुळे, वेब ऍप्समध्ये जाणकार अभियंता ज्या भागांमध्ये बदल करू शकतो, ते भाग केवळ असे फंक्शन्स आणि डेटा हाताळतात जे बदलण्यास सुरक्षित असतात.
अशा प्रकारे, ई-कॉमर्स वेब ऍपच्या सर्व्हर बाजूला, प्रत्येक लॉग-इन केलेल्या वापरकर्त्यासाठी या फाइल्स स्वतंत्रपणे साठवण्यासाठी एक यंत्रणा तयार केली जाऊ शकते, चॅट एआय (chat AI) सोबत संवाद साधण्यासाठी एक स्क्रीन जोडली जाऊ शकते, आणि नंतर त्या वापरकर्त्याच्या HTML, CSS आणि JavaScript फाइल्स त्यांच्या विनंत्यांनुसार सर्व्हरवर बदलल्या जाऊ शकतात.
जर हा मजकूर, तसेच विद्यमान ई-कॉमर्स वेब ऍपची कॉन्फिगरेशन माहिती (configuration information) आणि स्त्रोत कोड (source code) जनरेटिव्ह एआयला सादर केला गेला, तर ती अशी कार्यक्षमता (functionality) जोडण्यासाठी आवश्यक असलेले टप्पे आणि प्रोग्राम्स प्रदान करेल.
या पद्धतीने, लिक्विडवेअर हा आधीच एक वर्तमान विषय आहे; आता ही एक चालू असलेली घटना असली तरी आश्चर्य वाटायला नको.
ओम्निडायरेक्शनल अभियंते
एआय-आधारित स्वयंचलित प्रोग्रामिंगची व्याप्ती वाढून आणि लिक्विडवेअर युगाचा आरंभ होऊनही, सॉफ्टवेअर विकास अजूनही केवळ जनरेटिव्ह एआयद्वारे पूर्णतः केला जाऊ शकत नाही.
तथापि, सॉफ्टवेअर विकासामध्ये प्रोग्रामिंगवरील भर लक्षणीयरीत्या कमी होईल हे निश्चित आहे.
शिवाय, सॉफ्टवेअरचा विकास सहजपणे करण्यासाठी, सामान्य प्रोग्रामिंगसोबतच, क्लाउड इन्फ्रास्ट्रक्चर, नेटवर्क्स, सुरक्षा, प्लॅटफॉर्म्स, डेव्हलपमेंट फ्रेमवर्क्स आणि डेटाबेसेस – संपूर्ण प्रणाली कार्यक्षम होण्यासाठी आवश्यक असलेले वरपासून खालपर्यंतचे विस्तृत ज्ञान आणि अभियांत्रिकी कौशल्ये आवश्यक आहेत.
अशा ज्ञान आणि कौशल्या असलेल्या कर्मचाऱ्यांना फुल-स्टॅक अभियंते म्हणतात.
परंपरेनुसार, काही फुल-स्टॅक अभियंते एकूण डिझाइन हाताळत असत, तर उर्वरित अभियंते प्रोग्रामिंगमध्ये विशेषीकरण करत असत, किंवा सिस्टम स्टॅकच्या प्रोग्रामिंगव्यतिरिक्त विशिष्ट क्षेत्रांवर लक्ष केंद्रित करून अभियांत्रिकी करत असत, अशा प्रकारे भूमिकांचे विभाजन केले जात असे.
परंतु, जनरेटिव्ह एआय प्रोग्रामिंगचा भाग हाती घेतल्यावर, सॉफ्टवेअर विकासाचा खर्च लक्षणीयरीत्या कमी होईल, ज्यामुळे विविध नवीन सॉफ्टवेअर विकास प्रकल्पांचे नियोजन केले जाईल.
परिणामी, प्रत्येक विकास प्रकल्पात, केवळ प्रोग्राम लिहू शकणारे अभियंते मोठ्या प्रमाणात अनावश्यक ठरतील; त्याऐवजी, मोठ्या संख्येने फुल-स्टॅक अभियंत्यांची मागणी असेल.
शिवाय, या परिस्थितीत, केवळ फुल-स्टॅक ज्ञान आणि कौशल्ये पुरेशी नसतील. कारण विविध विकास प्रकल्पांमध्ये आवश्यक असलेल्या सॉफ्टवेअरचे प्रकार वैविध्यपूर्ण असतील, याचा अर्थ विकास नेहमी एकाच सिस्टम स्टॅकचा वापर करून केला जाणार नाही. तसेच, अनेक सिस्टम स्टॅकची आवश्यकता असलेल्या जटिल प्रणालींची मागणी निश्चितपणे वाढेल.
उदाहरणार्थ, वेब ऍप्लिकेशनसाठी असलेला सिस्टम स्टॅक व्यवसाय किंवा मुख्य प्रणालींसाठी असलेल्या स्टॅकपेक्षा वेगळा असतो. त्यामुळे, एका फुल-स्टॅक वेब ऍप्लिकेशन अभियंत्याला मुख्य प्रणाली विकास प्रकल्पाची जबाबदारी सोपवता येत नाही.
त्याचप्रमाणे, वेब ऍप्लिकेशन्स, स्मार्टफोन ऍप्स आणि पीसी ऍप्लिकेशन्समध्ये प्रत्येकाचे सिस्टम स्टॅक भिन्न असतात. आयओटी (IoT) सारख्या एम्बेडेड सॉफ्टवेअरच्या जगात, प्रत्येक एम्बेडेड डिव्हाइससाठी सिस्टम स्टॅक पूर्णपणे भिन्न असेल.
तथापि, प्रोग्रामिंगवरील भर कमी झाल्याने आणि एकूण सॉफ्टवेअर विकासाचा खर्च कमी झाल्याने, या भिन्न सिस्टम स्टॅक असलेल्या सॉफ्टवेअरला एकत्र करणाऱ्या जटिल प्रणालींचा विकास वाढण्याची शक्यता आहे.
अशा विकासासाठी अनेक भिन्न फुल-स्टॅक अभियंते एकत्र करणे आवश्यक असले तरी, संपूर्ण प्रणालीवर लक्ष ठेवून मूलभूत डिझाइन हाताळू शकणाऱ्या अभियंत्यांची भूमिका महत्त्वपूर्ण असेल.
याचा अर्थ, व्यक्तिगत सिस्टम स्टॅकच्या सीमा ओलांडून, अनेक सिस्टम स्टॅकमधील सर्वव्यापी ज्ञान आणि कौशल्ये असलेल्या अभियंत्यांची मागणी असेल.
अशा अभियंत्यांना कदाचित ओम्निडायरेक्शनल अभियंते म्हटले जाईल.
आणि ज्याप्रमाणे जनरेटिव्ह एआयमुळे केवळ प्रोग्रामिंग करू शकणाऱ्या अभियंत्यांची मागणी कमी होईल, त्याचप्रमाणे एकाच सिस्टम स्टॅकपुरते मर्यादित असलेल्या फुल-स्टॅक अभियंत्यांची मागणीही कमी होण्याचा काळ येईल.
जर तुम्हाला त्या युगातही आयटी अभियंता म्हणून सक्रिय राहायचे असेल, तर तुम्ही तात्काळ ओम्निडायरेक्शनल अभियंता बनण्याच्या मार्गावर धावण्यास सुरुवात केली पाहिजे.
ओम्निडायरेक्शनल अभियंत्यांची भूमिका
विकसित केल्या जाणाऱ्या प्रोग्रामिंग भाषा, प्लॅटफॉर्म्स आणि फ्रेमवर्क्स (frameworks) वैविध्यपूर्ण आहेत.
परंतु, एका ओम्निडायरेक्शनल अभियंत्याला या सर्वांवर प्रभुत्व मिळवण्याची गरज नाही, कारण ते जनरेटिव्ह एआयकडून (generative AI) मदत घेऊ शकतात.
जर तुम्ही हे जनरेटिव्ह एआयवर सोपवले, तर तुम्ही यापूर्वी कधीही वापरल्या नसलेल्या प्रोग्रामिंग भाषा, प्लॅटफॉर्म्स किंवा फ्रेमवर्क्स देखील केवळ तोंडी सूचना देऊन तयार (generate) करता येऊ शकतात.
अर्थात, यामध्ये दोष (bugs) किंवा सुरक्षा भेद्यता (security vulnerabilities) येण्याचा, किंवा भविष्यातील बदलांना कठीण करणारे तांत्रिक कर्ज (technical debt) जमा होण्याचा धोका असतो.
हे धोके ओळखण्यासाठी आणि कमी करण्यासाठी, विशिष्ट भाषा किंवा लायब्ररीचे (library) ज्ञान आवश्यक आहे. तथापि, हे ज्ञान जनरेटिव्ह एआयकडून देखील मिळू शकते. एका ओम्निडायरेक्शनल अभियंत्याला केवळ या समस्या शोधण्यासाठी आणि त्यांना प्रतिबंध करण्यासाठी, किंवा घटनेनंतर त्यांना हाताळण्यासाठी प्रक्रिया आणि यंत्रणा (procedures and mechanisms) मजबूतपणे तयार करता यायला हव्यात.
या प्रक्रिया आणि यंत्रणा वेगवेगळ्या सिस्टम स्टॅकनुसार (system stacks) मोठ्या प्रमाणात बदलत नाहीत. जर दोष आणि सुरक्षा भेद्यता रोखण्यासाठी आणि भविष्यातील विस्तारक्षमता सुनिश्चित करण्यासाठी प्रक्रिया आणि यंत्रणा औपचारिकपणे तयार केल्या गेल्या, तर बाकीचे काम जनरेटिव्ह एआय किंवा त्या विशिष्ट क्षेत्रातील विशेषज्ञांवर सोपवले जाऊ शकते.
ओम्निडायरेक्शनल अभियंत्यांना प्रत्येक वैयक्तिक सिस्टम स्टॅकचे सखोल ज्ञान किंवा दीर्घकाळचा अनुभव असण्याची आवश्यकता नाही.
एका ओम्निडायरेक्शनल अभियंत्याची एक प्रमुख भूमिका म्हणजे, फंक्शन्सचे (functions) वितरण कसे केले जाते आणि वेगवेगळ्या सिस्टम स्टॅकवर एकत्रितपणे कार्य करणाऱ्या अनेक जटिल सॉफ्टवेअर प्रणाली कशा परस्परांशी संवाद साधतात हे डिझाइन करणे.
याव्यतिरिक्त, संपूर्ण सॉफ्टवेअर कसे विकसित करावे आणि कसे व्यवस्थापित करावे याचा विचार करणे देखील एका ओम्निडायरेक्शनल अभियंत्याची महत्त्वपूर्ण भूमिका आहे.
ओम्निडायरेक्शनल सॉफ्टवेअर
ओम्निडायरेक्शनल अभियंत्याची कोणत्या प्रकारच्या सॉफ्टवेअर विकासासाठी गरज आहे, याचा विचार करूया.
यापूर्वी, मी ई-कॉमर्स वेब ऍप्लिकेशन (e-commerce web application) विकसित करण्याचे उदाहरण दिले होते.
कंपनीच्या उच्च व्यवस्थापनाने या ई-कॉमर्स वेब ऍपला अद्ययावत करण्याची जबाबदारी सोपवलेल्या कार्यकारीच्या निर्देशानुसार, नियोजन टीम पुढील गरजा घेऊन येऊ शकते:
वापरकर्ता समुदाय प्लॅटफॉर्म एकत्रीकरण (User Community Platform Integration): याचा अर्थ केवळ समर्पित ई-कॉमर्स ऍप किंवा साइटसाठीच नव्हे, तर एक प्लॅटफॉर्म प्रदान करणे जिथे वापरकर्ते उत्पादनांबद्दल आणि त्यांचा कसा वापर करावा याबद्दल संवाद साधू शकतील. याचे उद्दिष्ट वापरकर्त्यांना टिकवून ठेवणे (user retention), तोंडी प्रचाराचा प्रभाव (word-of-mouth effect), वापरकर्त्यांच्या योगदानातून सामग्री समृद्ध करणे (content enrichment), आणि उत्पादन विकास, नवीन उत्पादन नियोजन आणि मार्केटिंगमध्ये प्रतिक्रियांचे (सकारात्मक आणि नकारात्मक दोन्ही) एकत्रीकरण करणे हे आहे.
ओम्नी-डिव्हाइस सुसंगतता (Omni-device compatibility): यामुळे वापरकर्ता समुदाय आणि उत्पादन माहिती विविध उपकरणांमधून उपलब्ध होते, ज्यात केवळ वेब ऍप्सच नव्हे, तर स्मार्टफोन ऍप्स, व्हॉइस असिस्टंट (voice assistants), वेअरेबल डिव्हाइसेस (wearable devices) आणि स्मार्ट होम उपकरणे (smart home appliances) यांचा समावेश आहे.
ओम्नी-प्लॅटफॉर्म सुसंगतता (Omni-platform compatibility): यामध्ये केवळ कंपनीचा स्वतःचा वापरकर्ता समुदाय प्लॅटफॉर्मच नव्हे, तर उदाहरणार्थ, व्यापक ई-कॉमर्स साइट्सवर उत्पादन सूची आणि पुनरावलोकन सामायिकरण (review sharing), सोशल मीडियासह एकत्रीकरण (integration with social media), आणि विविध एआय साधनांसह कार्यशील आणि माहितीपूर्ण संबंध (functional and information linkage) यांचा समावेश आहे.
व्यवसाय प्रणाली अद्ययावतीकरण (Business system refresh): सध्याच्या विक्री व्यवस्थापन (sales management) आणि उत्पादन वितरण प्रणालींशी तात्पुरते जोडणी करताना, या प्रणालींना अद्ययावत करणे देखील यात समाविष्ट आहे. अद्ययावतीकरणानंतर, योजनेत रिअल-टाइम विक्री डेटा एकत्रीकरण (real-time sales data aggregation) आणि मागणीचा अंदाज (demand forecasting), तसेच इन्व्हेंटरी व्यवस्थापन प्रणालींशी एकत्रीकरण (integration with inventory management systems) यांचा समावेश आहे. याव्यतिरिक्त, वितरण कंपन्यांद्वारे प्रदान केलेल्या प्रादेशिक वितरित इन्व्हेंटरी प्रणालींशी (regionally distributed inventory systems) आणि कॅरियर बाजूकडील वितरण सेवांशी जोडणी टप्प्याटप्प्याने केली जाईल, ज्यामुळे माहिती प्रणालीला त्यानुसार आपले एकत्रीकरण हळूहळू जुळवून घ्यावे लागेल.
लिक्विडवेअर सुसंगतता (Liquidware compatibility): वापरकर्त्यांसाठी असलेले सर्व इंटरफेस (interfaces) अर्थातच लिक्विडवेअर सुसंगत असतील. याव्यतिरिक्त, उत्पादन विकास आणि नियोजनासाठी (जसे की माहिती एकत्रीकरण आणि प्रतिक्रिया) अंतर्गत वापरकर्ता इंटरफेस, सिस्टम ऑपरेशन्स विभाग आणि व्यवस्थापनासाठी अहवाल देखील लिक्विडवेअरमध्ये रूपांतरित केले जातील.
जर अशा जटिल सॉफ्टवेअरसाठी विकास योजना सादर केली गेली, तर पारंपरिक सॉफ्टवेअर विकास टीम कदाचित ती लगेच स्वीकारणार नाही. किंवा, सिस्टम तपशिलांवरील चर्चेतून, ते मोठ्या विकास खर्च आणि वेळेची आवश्यकता तार्किकपणे दर्शवतील, ज्यामुळे तपशिलांमध्ये लक्षणीय कपात करण्यास प्रवृत्त केले जाईल.
परंतु, जर जनरेटिव्ह एआय बहुतेक प्रोग्रामिंग स्वयंचलित करू शकले, आणि प्रस्तावित सिस्टम स्टॅकपैकी अर्ध्याहून अधिक टीममधील एखाद्याला आधीच अनुभव असेल तर काय होईल? आणि जर टीमकडे जनरेटिव्ह एआयच्या मदतीने नवीन सिस्टम स्टॅक, प्लॅटफॉर्म्स आणि फ्रेमवर्क्स (frameworks) यशस्वीरित्या सुरु केल्याचा अनुभव असेल तर काय होईल? आणि जर तुम्ही, एक ओम्निडायरेक्शनल अभियंता म्हणून, या मार्गावर आधीच सुरुवात केली असेल आणि पुढे जाण्याचा तुमचा विचार असेल तर काय होईल?
या दृष्टिकोनातून पाहिल्यास, हा एक अत्यंत आकर्षक प्रकल्प वाटायला हवा. तुम्हाला उच्च व्यवस्थापनाकडून महत्त्वाकांक्षी प्रस्ताव आणणाऱ्या नियोजन टीमसोबत आणि ओम्निडायरेक्शनल सॉफ्टवेअर विकास टीममध्ये विकसित होण्याची क्षमता असलेल्या विकास टीमसोबत काम करण्याची संधी मिळेल.
विद्यमान प्रणालींचे आश्वासन देखील आहे. हा एक असा प्रकल्प आहे जो ऍजाइल (agile) विकास प्रक्रियेद्वारे हळूहळू वाढवला जाऊ शकतो, ज्यामुळे जलद आणि उच्च-प्रभावित वैशिष्ट्यांसह सुरुवात करून, लवकर स्वीकारणाऱ्या वापरकर्त्यांकडून प्रतिक्रिया मिळवत तो टप्प्याटप्प्याने विकसित करता येतो.
या सर्वांचा विचार केल्यास, या ओम्निडायरेक्शनल सॉफ्टवेअरचा विकास हा एक अत्यंत आकर्षक प्रकल्प वाटायला हवा.
निष्कर्ष
जनरेटिव्ह एआयद्वारे (generative AI) चालवल्या जाणाऱ्या स्वयंचलित प्रोग्रामिंगमुळे, लिक्विडवेअर (Liquidware) आणि ओम्निडायरेक्शनल सॉफ्टवेअर विकास (omnidirectional software development) आता वास्तवात येत आहे.
या संदर्भात, आयटी अभियंत्यांना (IT engineers) फुल-स्टॅकच्या (full-stack) पलीकडे जाऊन ओम्निडायरेक्शनल अभियंते बनण्याचे उद्दिष्ट ठेवण्याची वाढती गरज आहे.
त्यापलीकडे, त्यांची व्याप्ती आणखी वाढेल, आयटी प्रणालींच्या क्षेत्राच्या पलीकडे जाऊन ओम्निडायरेक्शनल व्यवसाय अभियांत्रिकीपर्यंत (omnidirectional business engineering)—ज्यात ग्राहक, अंतर्गत कर्मचारी आणि एआय यांना जोडून संस्थात्मक क्रियाकलाप स्वतःच अभियांत्रिकीद्वारे सुधारणे—आणि ओम्निडायरेक्शनल समुदाय अभियांत्रिकीपर्यंत (omnidirectional community engineering) पोहोचेल.
आणि त्याही पलीकडे, समाजाला सर्वसमावेशकपणे सुधारण्यासाठी ओम्निडायरेक्शनल सामाजिक अभियांत्रिकी (omnidirectional social engineering) नावाचे एक क्षेत्र उदयास येईल, अशी माझी अपेक्षा आहे.