अपने डेवलपर्स को कैसे फायर करें और एपीआई से सॉफ्टवेयर असेंबल करें (केथरमन स्वामीनाथन)

अपने डेवलपर्स को कैसे फायर करें और एपीआई से सॉफ्टवेयर असेंबल करें (केथरमन स्वामीनाथन)

स्रोत नोड: 1985529

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

राजेश बापू
.

मैं अपनी नवीनतम यात्रा के दौरान राजेश से मिला और उसे अपने परिवार से उस व्यक्ति के रूप में परिचित कराया जिसने "इलेक्ट्रॉनिक सर्किट बनाया जो भारतीय रेलवे ट्रेनों के एसी कोचों पर बैटरी पैक का प्रबंधन करता है"।

उन्होंने मुझे सुधारते हुए कहा, "मैंने इसके हर हिस्से का निर्माण किए बिना उपलब्ध एकीकृत सर्किट का उपयोग करके सर्किट को इकट्ठा किया।"

12μF कैपेसिटर (स्रोत: Amazon.com)

हाँ, वास्तव में। प्राचीन काल से, ऑटोमोबाइल, मुद्रित सर्किट बोर्ड और कई अन्य उत्पादों को मानक घटकों से इकट्ठा किया जाता है, जिन्हें कैटलॉग से प्राप्त किया जा सकता है।

लेकिन सॉफ्टवेयर नहीं.

मैं दो दशक पहले सॉफ्टवेयर उद्योग में शामिल हुआ था। तब से आज तक, मैं एसओए, सीबीएसए और माइक्रोसर्विसेज जैसी प्रौद्योगिकियों के बारे में सुन रहा हूं जो कथित तौर पर प्रोग्रामर को पूर्वनिर्मित कार्यक्षमता को असेंबल करके सिस्टम बनाने की अनुमति देते हैं।

लेकिन वह सपना अभी भी हकीकत में नहीं बदल पाया है.

एक समय की बात है, डेवलपर्स को शुरुआत से ही सॉफ्टवेयर सिस्टम बनाना पड़ता था, शायद इसलिए क्योंकि वहां कोई पूर्वनिर्मित कार्यक्षमता नहीं थी।

फिर, इसकी काफी संभावना है कि डेवलपर्स ने SOA जैसी तकनीकों का उपयोग करके पुन: प्रयोज्य घटकों का निर्माण किया हो। लेकिन, सीबीएसए जैसी पद्धतियों के अस्तित्व के बावजूद, विकास टीमों को अभी भी नए सिरे से सॉफ्टवेयर बनाना पड़ा क्योंकि उन्हें पुन: प्रयोज्य घटकों के अस्तित्व के बारे में पता नहीं था।

फिर ओपन सोर्स रिपॉजिटरी और ओपन एपीआई मार्केटप्लेस जैसे नवाचार आए।

शुरुआती लोगों के लिए, एक खुला स्रोत भंडार (जैसे
GitHub
) में उन घटकों के लिए पूर्वनिर्मित स्रोत कोड शामिल है जिनका उपयोग प्रोग्रामर अपने स्वयं के सिस्टम को विकसित करने के लिए कर सकते हैं; और एक खुला एपीआई बाज़ार (उदा
Algorithmia) रेडीमेड कार्यक्षमता को उजागर करें जिसे डेवलपर्स द्वारा एप्लिकेशन प्रोग्रामिंग इंटरफेस के माध्यम से अपने सिस्टम से एक्सेस किया जा सकता है।

सिद्धांत रूप में, यदि आप एक नई प्रणाली विकसित करना चाहते हैं, तो आपको इन प्लेटफार्मों पर कैटलॉग की समीक्षा करने, आपके लिए आवश्यक घटक या एपीआई चुनने और पूर्वनिर्मित कार्यक्षमता को अपने नए सिस्टम में एकीकृत करने में सक्षम होना चाहिए।

व्यवहार में, इसने सॉफ्टवेयर पायलट/अवधारणाओं के प्रमाण/एमवीपी के निर्माण में काफी अच्छा काम किया है।

हालाँकि, जब पूरी तरह से विकसित एंटरप्राइज़ सिस्टम की बात आती है, तो इन प्लेटफार्मों ने स्क्रैच से सॉफ्टवेयर सिस्टम बनाने के पारंपरिक तरीके में कोई बड़ी सेंध नहीं लगाई है।

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

  1. एक 12μF (बारह माइक्रोफ़ारड) कैपेसिटर किसी भी पीसीबी पर काम करेगा। जबकि, चूंकि सॉफ्टवेयर विषम है, इसलिए .NET घटक जावा सिस्टम में काम नहीं करेगा।
  2. आप चाहकर भी आरंभ से ही कैपेसिटर का निर्माण नहीं कर सकते - कम से कम अधिकांश पीसीबी विकास परियोजनाओं के समय-सीमा के भीतर नहीं। जबकि, अधिकांश विकास टीमों का मानना ​​है कि वे सॉफ्टवेयर परियोजना के समय-सीमा के भीतर जमीनी स्तर से सॉफ्टवेयर के किसी भी टुकड़े को विकसित कर सकते हैं।
  3. आप कैपेसिटर का वैसे ही उपयोग करें जैसे वह है। जबकि डेवलपर्स को अनिवार्य रूप से उधार लिए गए कोड को अपने सिस्टम में एकीकृत करने से पहले उनमें कुछ बदलाव करने की आवश्यकता होती है। ओपन सोर्स फाउंडेशन नियमों के अनुसार, आपको उन्नत/संशोधित कोड को समुदाय के साथ साझा करना आवश्यक है। यदि इसमें किसी कंपनी की गुप्त चटनी शामिल हो तो यह मुश्किल हो सकता है। या तो आप ओएसएफ नियमों का उल्लंघन करते हैं - या तो माइकल लुईस की पुस्तक में वर्णित निवेश बैंक का
    फ्लैश बॉय - या ओपन सोर्स कोड को पूरी तरह से छोड़ दें।
  4. आप एक कैपेसिटर खरीद सकते हैं. लेकिन आप केवल एक एपीआई को लाइसेंस दे सकते हैं, जो इसे खरीदने के समान नहीं है। लाइसेंस एपीआई मालिक ("ओईएम") की सेवा की शर्तों के अधीन है। अब, इनमें से कई टीओएस अस्पष्ट हैं और बिना किसी गलत इरादे के इनका उल्लंघन करना आसान है। डेडपूल उन स्टार्टअप्स से अटा पड़ा है जो 800 पाउंड के गोरिल्ला एपीआई के टीओएस के गलत पक्ष पर आ गए हैं।
  5. एक बार जब आप कैपेसिटर को अपने पीसीबी में प्लग कर देते हैं, तो यह अपने पूरे जीवनकाल में उसी तरह काम करेगा। जबकि एक एपीआई ऐसा नहीं करेगा. जब इसका ओईएम अपना अगला संस्करण जारी करेगा, तो आपको अपने सॉफ़्टवेयर को इस तरह संशोधित करना होगा कि यह अद्यतन एपीआई के साथ काम करे। हमें अपने लिए एक महँगे परिवर्तन का सामना करना पड़ा हीटमैप360 सोशल इंटेलिजेंस प्लेटफॉर्म जब ट्विटर ने अपने एपीआई विनिर्देशों को बदल दिया।
  6. यदि कैपेसिटर (जिसे "ओईएम" भी कहा जाता है) का निर्माता फोल्ड हो जाता है, तो आपका पीसीबी अभी भी काम करेगा। लेकिन, यदि एपीआई का ओईएम समाप्त हो जाता है, तो आपका सिस्टम काम करना बंद कर देगा और आपको उक्त कार्यक्षमता के लिए एक वैकल्पिक स्रोत ढूंढना होगा। जैसा कि उदाहरणों में दर्शाया गया है
    क्या क्लाउड विक्रेता जोखिम बढ़ाता है?कुछ एपीआई ओईएम की मृत्यु ने कई सॉफ्टवेयर सिस्टम और उनके मालिकों के लिए अस्तित्व संबंधी संकट पैदा कर दिया है।
  7. फिर कमरे में वह बड़ा हाथी है जिसके बारे में कोई बात नहीं करता: प्रोग्रामर अपने अलावा किसी और के द्वारा लिखे गए कोड पर काम करना पसंद नहीं करते हैं।

इन चुनौतियों के परिणामस्वरूप, पूर्व-निर्मित कार्यक्षमता को असेंबल करके एंटरप्राइज़-ग्रेड सॉफ़्टवेयर सिस्टम विकसित करना कठिन हो गया है।

इसका मतलब यह नहीं है कि यह नहीं किया जा सकता।

लेकिन सॉफ्टवेयर इंजीनियरिंग की पवित्रता को तोड़ने के लिए सॉफ्टवेयर को पैक करने और बेचने के तरीके में संरचनात्मक बदलाव की आवश्यकता होगी। सॉफ़्टवेयर की खरीद प्रक्रिया इलेक्ट्रॉनिक घटकों की तरह होनी चाहिए जिससे ग्राहक:

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

यदि आप सोच रहे हैं कि सॉफ़्टवेयर उत्पाद विक्रेता के लिए "इसमें क्या है", तो आप अकेले नहीं हैं।

दरअसल, यह मॉडल आईटी सेवाओं के साथ अधिक निकटता से जुड़ा हुआ है। फॉलो-ऑन पोस्ट में उस पर और अधिक।

समय टिकट:

से अधिक फिनटेक्स्ट्रा