इन-हाउस बनाम सॉफ्टवेयर-विकास पर्यावरण [बंद]


13

उद्योग में, एक 'इन-हाउस डेवलपमेंट' वातावरण के बीच एक अंतर होता है, जहाँ सॉफ़्टवेयर डेवलपर कोड लिख रहे होते हैं, जिसका उपयोग कंपनी स्वयं करती है और एक उचित 'सॉफ़्टवेयर डेवलपमेंट' वातावरण, जहाँ सॉफ़्टवेयर को बेचा / वितरित किया जाता है। जनता के लिए।

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

एक छात्र के रूप में (अधिकांश अन्य छात्रों की तरह), मैं खुद को एक सॉफ्टवेयर विकास के माहौल में काम करने की उम्मीद करता हूं, लेकिन मैंने एक ऐसे फर्म में अपना पहला स्थान प्राप्त किया, जो घर में अधिक फैशन में काम करता है।

कभी-कभी, मुझे आश्चर्य होता है कि क्या मैं पूर्ण विकसित सॉफ्टवेयर विकास के अनुभव को याद कर रहा हूं। क्या इस भावना का कोई आधार है? क्या मुझे एक उचित सॉफ्टवेयर विकास वातावरण में शामिल होना चाहिए?


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

आपके द्वारा लगाए गए दोनों प्रश्नों का उत्तर केवल आप ही दे सकते हैं।
leo

6
IMHO, आपकी समस्या का इन-हाउस बनाम सॉफ्टवेयर कंपनी से गायब होने से कोई लेना-देना नहीं है। आप ध्वनि करते हैं जैसे आप एक असंरचित विकास के माहौल में होने से पीड़ित हैं और एक मजबूत संरक्षक नहीं हैं जो आपको सर्वोत्तम प्रथाओं का पालन करने में मदद करता है।
maple_shaft

1
चाहे सॉफ्टवेयर बिक्री के लिए या आंतरिक उपयोग के लिए विकसित किया गया हो, इसे सभी "सॉफ़्टवेयर डेवलपमेंट" कहते हैं। कमर्शियल एक बेहतर टर्म हो सकता है जिसे आप 'सॉफ्टवेयर डेवलपमेंट' कहते हैं।
कालेब

1
आप सॉफ्टवेयर विकास के दो आयामों का सामना कर रहे हैं - तदर्थ बनाम संरचित विकास प्रक्रिया, और घर में उत्पाद विकास। प्रत्येक की डिग्री स्वतंत्र रूप से भिन्न हो सकती है।
सीन मैकमिलन

जवाबों:


13

मेरे अनुभव में, "घर में" और "वितरण योग्य उत्पाद" के बीच जो अंतर आप कर रहे हैं वह झूठा है।

ऐसी कंपनियां हैं जो अपने सॉफ्टवेयर विकास की प्रक्रिया को गंभीरता से लेती हैं और जो नहीं करती हैं। चाहे वे "घर में" हों या "बीस्पोक" या "सिकोड़ने के लिए" सिकुड़ते हों, वे इसमें ज्यादा नहीं आते (हालाँकि यदि वे "सिकोड़ें लपेटें" प्रदाता हैं, तो अगर उनके पास प्रक्रिया नहीं है तो वे शायद व्यवसाय के लिए नहीं होंगे) लंबा)।

आपको एक ऐसी जगह की तलाश करनी चाहिए जिसमें विकास के मानक हों, जिन्हें आप खोज रहे हैं - जब साक्षात्कार के लिए आपको ये सवाल पूछने की ज़रूरत है कि यह सुनिश्चित करना है कि इस संबंध में आपकी पसंद क्या है (साथ ही साथ अन्य)।


जब आप पोस्ट कर रहे थे तब मैं इसके समान कुछ लिख रहा था। +1 केवल अंतिम वाक्य के लिए, हालांकि यह सभी मान्य बिंदु हैं।
थॉमस ओवेन्स

@ThomasOwens - हाँ, मेरे उत्तर को पोस्ट करने के बाद प्रश्न के लिए आपकी टिप्पणी देखी और आप से अच्छी तरह से एक उत्तर की उम्मीद कर रहा था;)
Oded

10

आप इस लेख को पढ़ सकते हैं

http://www.joelonsoftware.com/items/2007/12/04.html

जोएल स्पोल्स्की का, जो आपके प्रश्न से बिल्कुल निपट रहा है।

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

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


6

बहुत समय पहले, मैंने एजाइल प्रोजेक्ट मैनेजमेंट पर एक पुस्तक पढ़ी (काश मैं शीर्षक याद रख पाता), जहाँ लेखक ने सिस्टम के दोषों के लिए उनकी सहिष्णुता के स्तरों के आधार पर सिस्टम को प्रतिष्ठित किया। दोषों के लिए सहिष्णुता बहुत अधिक हो सकती है - उदाहरण के लिए, अन्य डेवलपर्स द्वारा उपयोग की जाने वाली एक उपयोगिता (जहां कीड़े महज एक असुविधा हैं), बहुत कम - उदाहरण के लिए, एक प्रणाली जो अंतरिक्ष यात्रियों के लिए जीवन समर्थन चला रही है (जहां एक बग सकता है) जानलेवा हो)।

लेखक का कहना था कि विकास की कार्यप्रणाली (और औपचारिकता) को सिस्टम की विफलता सहिष्णुता (या आलोचनात्मकता) से अलग करने की आवश्यकता है। मुझे लगता है कि यह वितरण सबसे महत्वपूर्ण है, जैसा कि सामान्य वितरण के लिए इन-हाउस विकास बनाम सॉफ़्टवेयर के बीच अंतर करने के लिए किया जाता है।

एक ऐसे अस्पताल की कल्पना करें जिसमें मेडिकल रिकॉर्ड बनाने वाले इन-हाउस डेवलपर्स हों जो चिकित्सा देखभाल की गुणवत्ता को प्रभावित कर सकते हैं। इस मामले में, इन-हाउस दुकान संभवतः वेब साइट कंसल्टेंसी की तुलना में अधिक कठोर होगी, जो आम जनता द्वारा उपयोग किए जाने वाले वेब उत्पादों का निर्माण कर रही है।


3

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.