कॉर्पोरेट वातावरण में, डेवलपर्स को अपने कंप्यूटर पर व्यवस्थापक अधिकार होना चाहिए? क्यूं कर?
तकनीकी वातावरण:
- विंडोज 7
- विजुअल स्टूडियो 2008 और 2010
- एस क्यू एल सर्वर
कॉर्पोरेट वातावरण में, डेवलपर्स को अपने कंप्यूटर पर व्यवस्थापक अधिकार होना चाहिए? क्यूं कर?
तकनीकी वातावरण:
जवाबों:
क्या उन्हें चाहिए? यह निगम के लिए है। व्यक्तिगत रूप से मुझे लगता है कि यह तब तक ठीक है जब तक कुछ नियम समझे जाते हैं।
आमतौर पर मैं हां कहूंगा। यदि सही तरीके से काम करने के अधिकार न हों तो डिबगर्स जैसी चीजों की बहुत अधिक आवश्यकता होती है। डेवलपर्स को अक्सर यादृच्छिक सॉफ़्टवेयर स्थापित करने की आवश्यकता होती है जो चैनलों से गुजरते समय स्थापित होने में दिन या सप्ताह लग सकते हैं। उस समय के दौरान डेवलपर आमतौर पर काम बंद कर दिया जाता है क्योंकि कंपनी के पास पैसे के अलावा कुछ भी नहीं होता है, खासकर अगर डेवलपर सलाहकार हो।
विकास में विज्ञान और कला दोनों हैं; यह उतना आसान नहीं है जितना "जानना" कि हमें क्या चाहिए। यदि हमारे पास पहले से ही उत्तर था तो हमारा काम आधा हो जाएगा; सही दृष्टिकोण खोजना अक्सर पुनरावृत्त होता है, और अप्रत्याशित तरीकों में कई उपकरण शामिल हो सकते हैं। इनमें से प्रत्येक को स्थापित करने के लिए एक मध्यस्थ की आवश्यकता होती है (अक्सर उच्च विलंबता के साथ), केवल खोजने के लिए (लगभग एक घंटे में) कि आपके परिदृश्य के लिए "सुपर-यूबर टूल एडऑन" की आवश्यकता है।
जबकि एक वीएम इसके लिए आदर्श है, वहाँ भी बहुत सारे विकास उपकरण हैं जो एक वीएम में (ठीक से या बिल्कुल भी नहीं) नहीं चल सकते हैं , क्योंकि वे खुद वीएम हैं - और मुझे जेवीएम जैसी चीजों से कोई मतलब नहीं है; मेरा मतलब है कि पूरी मशीन एमस / वीएमएस, जैसे उपकरण टूलकिट। अनुकूलता में सुधार है।
इसके अतिरिक्त, अधिकांश विकास साधनों में एक बहुत बड़ा पदचिह्न होता है - "नियमित" साधनों की तुलना में बहुत बड़ा (जिससे VM आपकी अपेक्षा के अनुसार थोड़ा अधिक दर्दनाक हो सकता है) को होस्ट कर रहा है, और अक्सर प्रक्रिया डिबगर होने की प्रकृति को उन्नत पहुंच की आवश्यकता होती है। इस तथ्य का उल्लेख नहीं करने के लिए कि वे जीयूआई गहन हो सकते हैं; वीएम जीयूआई पर पूर्णकालिक चलाने की कोशिश कर रहा है ... बेहद दर्दनाक।
प्रदर्शन एक विशाल है यहां; क्या आपको लगता है कि उपयोगकर्ताओं के लिए रजिस्टर करने के लिए उनकी कुंजी के लिए वर्ड में हर कुंजीपट के बाद 3 सेकंड इंतजार करना ठीक था? मैं मजाक नहीं कर रहा हूं - वीएम आदि पर विकास उपकरण इस बेकार हो सकते हैं ; अधिकांश विकास उद्देश्यों के लिए आपको जवाबदेही की आवश्यकता होती है । मस्तिष्क से कीबोर्ड तक जटिल तर्क के प्रवाह को बाधित करने से काम पूरा करना बहुत असंभव हो सकता है। और मुझे यह कहने से नफरत है, लेकिन हां: विकास का समय महंगा है।
विंडोज वातावरण में, और विशेष रूप से Microsoft डेवलपर उत्पादों का उपयोग करते समय, देव को अपनी मशीन पर व्यवस्थापक अधिकारों की आवश्यकता होगी। यदि आप उन्हें उन अधिकारों से वंचित करते हैं, तो उनकी नौकरियों को करने की उनकी क्षमता को प्रतिबंधित कर दिया जाएगा, अगर पूरी तरह से रोका नहीं गया।
एक डेवलपर होने के नाते, मैं हमें मूल उपयोगकर्ता के ऊपर विशेषाधिकार का एक स्तर प्रदान करता हूं, लेकिन सिस्टम प्रशासक (ओं) के नीचे।
मुझे इस अवसर पर, उत्पादन वातावरण में काम करने के लिए विकसित होने वाले एप्लिकेशन को प्राप्त करने के लिए एक अतिरिक्त पुस्तकालय की आवश्यकता हो सकती है, कहा जा रहा है कि मेरे पास एक सख्त नियम है जिसे मैं विकसित करता हूं: "किसी भी आवेदन के लिए जिसे तीसरे पक्ष के पुस्तकालयों की आवश्यकता होती है, उत्पादन तैनाती से पहले और अनुप्रयोग विकास से पहले कुछ मामलों में पुस्तकालयों को सैंडबॉक्स वातावरण में स्थापित किया जाना चाहिए। "
मैं जिस sysadmin के साथ काम करता हूं और मैं इस बात से सहमत हूं, और हम दोनों के बीच, हम उस नियम को सक्रिय रूप से लागू करेंगे और किसी भी आवेदन परिनियोजन में देरी करेंगे जो "निर्भरता जांच" को पारित नहीं किया है।
हालांकि, आपके प्रश्न का उत्तर देने के लिए, हां, डेवलपर्स को अपनी मशीनों तक पूरी पहुंच दी जानी चाहिए, लेकिन उन मशीनों को पर्यावरण से अलग-थलग किया जाना चाहिए, जो अंततः आवेदन पर तैनात किया जाएगा। जिस स्थिति में, यहां तक कि आवेदन तैनाती को सैंडबॉक्स किया जाना चाहिए जब तक कि उत्पादन वातावरण में तैनात करने के लिए सुरक्षित नहीं माना जाता है।
डिस्क्लेमर: मैं एक डेवलपर हूं।
मेरे लिए, यह प्रश्न (और उत्तर) गलत दृष्टिकोण से समस्या पर हमला करता हुआ प्रतीत होता है - अर्थात, बहस इस बात पर ध्यान केंद्रित कर रही है कि कौन से डेवलपर को क्या चाहिए / क्या चाहिए / क्या चाहिए। लेकिन आपने निर्दिष्ट किया कि हम एक कॉर्पोरेट वातावरण में हैं, तो आइए इसे इस तरह से देखें।
तो आइए कल्पना करें कि हम आईटी के निदेशक या संचालन के सामने यह तर्क दे रहे हैं, या हमारे बजट को नियंत्रित करता है , और ये प्रश्न पूछते हैं।
इन सवालों के जवाब के साथ, आप भावुक होने के बजाय एक सूचित निर्णय ले सकते हैं।
आपके विशिष्ट वातावरण के लिए , कुछ चीजें हैं जिनके लिए व्यवस्थापक अधिकारों की आवश्यकता होती है ( उपयोगकर्ता अधिकार और दृश्य स्टूडियो देखें ) - यदि वे उन चीजों को नहीं कर रहे हैं, तो आप 2 - 4 सवालों के जवाब दे सकते हैं।
एक सलाहकार के रूप में, मैंने इस नीति के दोनों छोरों को देखा है, और जब मैं हमेशा एक मशीन के लिए व्यवस्थापक पहुंच चाहता हूं , तो कुछ मामलों में इसका कोई मतलब नहीं था। और मुझे यकीन नहीं है कि क्या कारण है और क्या प्रभाव है, लेकिन अपवाद के बिना, हर जगह जो मैंने विंडोज़ के विकास को करते देखा है जहां देवों की प्रशासक पहुंच भी हर डेवलपर से उच्च उत्पादकता थी उन स्थानों की तुलना में जहां वे बंद थे।
मुझे लगता है कि आप गलत सवाल पूछ रहे हैं, आपको पूछना चाहिए:
क्या एक अच्छा डेवलपर एक नियोक्ता के लिए काम करेगा जो उसे / उसके पीसी पर उसके व्यवस्थापक अधिकार नहीं देता है?
किसी को "जरूरत" और वे क्या उम्मीद करते हैं, अक्सर एक ही चीज नहीं होती है, आखिरकार आपको किसी डेवलपर को काम के घंटों में कॉफी पीने की अनुमति देने की आवश्यकता नहीं है, लेकिन अगर आप नहीं करते हैं ...
(सुनिश्चित करें कि आप साक्षात्कार के चरण में अपनी नीति स्पष्ट कर देते हैं, अन्यथा आप लोगों को नौकरी ले सकते हैं जो तब व्यवस्थापक अधिकारों की कमी के कारण आपकी कंपनी को तुच्छ समझ सकते हैं - प्रोग्रामर से इस तरह की बात के बारे में तार्किक तरीके से सोचने की अपेक्षा न करें! )
यह वास्तव में इस बात पर निर्भर करता है कि आप किससे पूछते हैं, इसके बारे में वास्तव में किसे जरूरत है। यदि आप कॉर्पोरेट आईटी और जोखिम प्रबंधन समूहों से पूछते हैं कि वे डरावनी कहानियों के साथ आप पर होंगे (और यदि वे इसे आपको देते हैं, तो वे एक बकरी की मांग करते हैं जो वादा के पवित्र बंधन में बलिदान किया जाता है कि वे जिम्मेदार नहीं होंगे), डेवलपर्स दूसरी ओर, प्रशासन के अधिकारों की मांग करता है, क्योंकि नौकरी तनावपूर्ण है और मदद मांगने के लिए पर्याप्त है, ताकि डेस्क से रिसाव न हो सके। मामलों की दुखद स्थिति यह है कि अब इसके बारे में अधिक शक्ति का संघर्ष और सत्ता का विस्तार है, फिर यह व्यवसाय और उत्पादकता की जरूरतों के बारे में है (जैसे यह उबलता है कि हुप्स के माध्यम से अन्य कूद कौन करेगा)
IMHO, आज तक मैंने जो सबसे अच्छा काम का माहौल देखा है, वह यह है कि दोनों समूहों को अलग रखा जा रहा है। डेवलपर्स के पास जंगल में अपना स्वयं का डोमेन होता है (जिससे आईटी यह नियंत्रित करता है कि यह डोमेन और उसके उपयोगकर्ता कंपनी के बाकी हिस्सों में क्या कर सकते हैं) और वे सभी स्थानीय व्यवस्थापक हैं जिनमें MCSE के साथ अनुभवी लोग स्थानीय डोमेन व्यवस्थापक के रूप में कार्य करते हैं, उनके पास अपना स्वयं का परीक्षण वातावरण है और वे बहुत कुछ कर सकते हैं जो वे चाहते हैं और अपने स्थानीय लैन पर एक एकल आईटी नीति (कोई पायरेटेड सॉफ़्टवेयर) के साथ आवश्यकता नहीं है। कॉर्पोरेट IT ज़िम्मेदार नहीं है और वह devs को समर्थन नहीं देता है और केवल कुछ उच्च स्तर के कॉर्पोरेट नियमों को लागू करता है (कोई facebook, पॉर्न या समान फ़ायरवॉल के माध्यम से, devs कॉर्पोरेट लैन के साथ गड़बड़ करने की अनुमति नहीं देते हैं) और उन सभी के पास घर पर काम करने के लिए RSA आधारित वीपीएन हैं जो उन्हें सीधे अपने LAN के अंदर रखता है। नीट, है ना?
मैं कहूंगा कि प्रशासनिक अधिकार विकास प्रक्रिया के लिए महत्वपूर्ण हैं। हालांकि VM को सैंडबॉक्स में उपयोग करने के सापेक्ष आसानी को देखते हुए, कोई कारण नहीं है कि आप उन्हें VM में नहीं रख सकते हैं और सुरक्षा बनाए रख सकते हैं।
कुछ भी गलत हो जाता है और आप मिनटों में मिटा सकते हैं और पुनर्निर्माण कर सकते हैं।
निश्चित रूप से! आमतौर पर बहुत से विकास जो एक आभासी वातावरण में हो सकते हैं या नहीं होते हैं। व्यवस्थापक अधिकार स्थानीय रूप से सेवा हैंडलिंग, रजिस्ट्री प्रविष्टियों और IIS के ओवरराइड्स को दूर करने में मदद करते हैं। दूसरी ओर, यह इस बात पर निर्भर करता है कि आपको अपने डेवलपर्स पर कितना भरोसा है।
एक डेवलपर के रूप में, यह निराशाजनक है जब कुछ काम नहीं करता है क्योंकि हमारे पास पहुंच नहीं है।
निर्भर करता है। एक डेवलपर के रूप में, किसी को हमेशा कम से कम विशेषाधिकारों के सिद्धांत पर काम करना चाहिए। यदि आप एक सरकारी ठेकेदार के रूप में काम कर रहे हैं, तो आप अनुबंधित हो सकते हैं, उदाहरण के लिए, व्यवस्थापक पहुँच नहीं है।
एक जावा डेवलपर के रूप में, मुझे अपनी मशीन पर निरंतर आधार पर अधिकार रखने की आवश्यकता नहीं है । हालाँकि, वैध मामले हैं जब आपको ऑन-डिमांड एडमिन एक्सेस की आवश्यकता होती है (.ie। आपको अपने लैपटॉप को शारीरिक रूप से अलग-अलग डोमेन में स्थानांतरित करने की आवश्यकता होती है, और आपको अपने एनआईसी को तदनुसार बदलने की आवश्यकता होती है।) यही एकमात्र समय था जब मुझे वास्तव में आवश्यकता थी। मेरी मशीन पर स्थायी, चल रही व्यवस्थापक पहुँच।
कभी-कभी आपको व्यवस्थापक पहुंच की आवश्यकता होती है, क्योंकि आईटी समझ में आता है (या लाल टेप में अक्षम या काम पर रखा गया है।) लेकिन अगर आप एक सक्षम आईटी विभाग के साथ काम करते हैं, तो वे आपके लिए सामान को दूरस्थ रूप से भी स्थापित कर सकते हैं (या कस्टम इंस्टालर प्रदान करके जो कि "रन-अस" "केवल उन पर क्लिक करके आप के लिए सामग्री को प्रशासित और स्थापित करें।"
तो उत्तर (फिर से) है - यह निर्भर करता है। क्या आपके पास एक उत्तरदायी आईटी कर्मचारी है जो मांग पर चीजों को स्थापित कर सकता है (या उचित समय के भीतर)? क्या डेवलपर्स को उन कार्यों के लिए वास्तव में इसकी आवश्यकता है जिनके लिए उन्हें भुगतान किया जाता है ?
अगर डेवलपर्स को सही मायने में और वैध रूप से इसकी आवश्यकता होती है (जैसे कि "मैं सचमुच इसके बिना कुछ भी करने में सक्षम नहीं होऊंगा" ) एक सुविधा के विपरीत (जैसा कि "मैं जो भी चाहता हूं उसे स्थापित करना चाहता हूं" ), और यदि आईटी समर्थन करता है पर्याप्त रूप से उत्तरदायी नहीं है (जो भी कारणों के लिए), फिर हाँ, उन्हें अपनी मशीनों तक पहुंच प्राप्त करनी चाहिए।
नहीं तो नहीं। कम से कम विशेषाधिकार के सिद्धांत को याद रखें , लोग।
डेवलपर्स हैं और डेवलपर्स हैं। अगर एक "डेवलपर" कुछ $ 40 / घंटा JBoss java पुरुष लेखन नियमों के लिए एक नियम इंजन है तो निश्चित रूप से नहीं। यदि "डेवलपर" $ 350 / घंटा C / असेंबली का लड़का है, तो अपने वीडियो संपादन सॉफ़्टवेयर को GPU पर अधिक से अधिक तेज़ी से चलाने के लिए प्राप्त कर रहा है, तो हाँ, बिल्कुल।
सुरक्षा के बारे में चिंतित होने वाले निगमों के लिए, उनके पास सुरक्षा व्यक्तियों को एक नीति लागू करने और उनके विकास और प्रणालियों के मॉडल के साथ काम करने की नीति लागू करने का प्रयास करना होगा। एक विंडोज पर्यावरण में ज्यादातर लोग आपको बताएंगे कि आपके पास अपने कार्यों को करने के लिए जिस मेजबान पर वे विकसित हो रहे हैं, उस पर आपके पास प्रशासनिक अधिकार होने चाहिए।
आवश्यक रूप से यह सही नहीं है...
आप एक कस्टम नीति बना सकते हैं और एक प्रणाली पर विकास उपयोगकर्ताओं के साथ सभी कार्यक्रम और कार्य कर सकते हैं। आपको केवल वांछित डिज़ाइन के आधार पर समूहों या कस्टम समूहों के साथ प्रोग्राम / सिस्टम निर्देशिकाओं पर कस्टम अनुमतियों के साथ नीचे और गंदे और नीट ग्रिट्टी में उतरना होगा।
अधिकांश निगमों का कहना है कि डेवलपर्स के लिए खुले नेटवर्क पर सिस्टम होना बहुत खतरनाक है क्योंकि हैकर्स नियंत्रण हासिल कर सकते हैं और अपने स्वयं के टूल को संकलित करना शुरू कर सकते हैं इसलिए कार्य से गुजरना मेरे पेशेवर राय में जोखिम के लायक है।
डेवलपर्स को (आदर्श रूप से) दो डोमेन लॉगिन होना चाहिए।
एक जिसके पास स्थानीय व्यवस्थापक अधिकार हैं (विकास कार्य के लिए) और एक जिसके पास कंपनी में अन्य सभी के समान अधिकार हैं। फिर, वे अनुमतियों के प्रतिनिधि सेट पर अपने काम का परीक्षण कर सकते हैं।
इसके बाद ItWorksOnMyMachine-itis की संभावना को कम करना चाहिए जो कभी-कभार दिखाई देता है .....
मुझे (स्पष्ट रूप से) असंतुष्ट आवाज प्रदान करना है और न केवल "बल्कि बिल्ली नहीं" कहना है। मुझे कोई सैंडबॉक्स वाले VM पर devs admin अधिकार देने में कोई समस्या नहीं है जिसका कोई नेटवर्क एक्सेस नहीं है। Zypher यह लगभग सही था (सुधार बोल्ड):
1. " मेरे बॉक्स पर व्यवस्थापक की सुविधा एक अधिकार नहीं है।" ये प्रणालियां कॉर्पोरेट संपत्तियां हैं जिनके लिए मैं अंततः जिम्मेदार हूं। जब जो डेवलपर माइक्रोसॉफ्ट बॉब की अपनी पायरेटेड कॉपी स्थापित करता है ("क्योंकि मुझे इसकी आवश्यकता थी ") यह उसे नहीं होने जा रहा है जिसे यह बताना होगा कि ऑडिट से पहले यह कैसे नहीं मिला। डेवलपर्स नियमित रूप से सोचते हैं कि किसी भी तरह कॉर्पोरेट नियम सिर्फ उन पर लागू नहीं होते हैं। उन्हें एक सैंडबॉक्सेड वीएम देकर वे उन सभी नियमों का पालन कर सकते हैं, जिनका पालन हर किसी को करना है (क्योंकि अब केवल आईटी सिस्टम से फाइल को कॉपी कर सकता है)। जादुई रूप से अनुरोध प्रणाली को डेवलपर्स द्वारा फिर से उपयोग किया जाता है, आकाश अब गिर नहीं रहा है जब जो डेवलपर अपने विकास बॉक्स का प्रबंधन करता है - वह सिर्फ एक नया (या एक पुनर्स्थापना अगर वह बैकअप के लिए पूछा जाता है)
श्री डेनी ने डेवलपर्स को पैसे खर्च करने का उल्लेख किया जब उन्हें ऐप स्थापित करने के लिए इंतजार करना पड़ता है, ए ... हैलो ... मेरा समय आमतौर पर जो डेवलपर के रूप में मूल्यवान है (आमतौर पर अधिक तब से जब मैं बाहर निकलने वाले बकवास को चालू रखता हूं- और क्या मैं वास्तव में करता हूं सभी समय का उल्लेख करने में मदद करने के लिए जो डेवलपर को अपनी आखिरी कृति को डिबग करने में मदद करता है), और बी। जब देव अति व्यस्त हो जाता है क्योंकि वे एक आवेदन की प्रतीक्षा कर रहे थे और इसके लिए आईटी को दोषी ठहराने की कोशिश करेंगे:
सॉफ्टवेयर लिखने के लिए आपको क्या लिखने की आवश्यकता है, इसके लिए आपकी कमी मेरी ज़िम्मेदारी नहीं है, हमारे पास उपकरणों का एक मानक सेट है और यदि वह टूलबॉक्स अनुपलब्ध है, जिसकी आपको आवश्यकता है तो मुझे कूदने के प्रयास के बजाय अधिक उपकरण प्राप्त करने के लिए आपके अनुरोधों की आवश्यकता होनी चाहिए। इसके लिए हुप्स प्राप्त करें क्योंकि आपकी समय सीमा कल है।
यह सब कहने के बाद, डेवलपर्स के डेस्कटॉप बंद हो जाते हैं, बदबू आती है, यदि आप भद्दे डेवलपर्स को मात दे सकते हैं जो सोचते हैं कि उनके बेवाच संग्रह को देखने के हकदार हैं और यह जानने के लिए नाराज हैं कि वे उन्हें देखने के लिए बेवॉच प्लेयर स्थापित नहीं कर सकते हैं (लेकिन यह है) खुला स्रोत ") आप को ढीला करने में सक्षम हो सकता है। लेकिन हर महान डेवलपर के लिए यह है कि यह "हो जाता है", वहाँ 10 और अधिक है कि आपकी कंपनी उस 200 मिलियन डॉलर के ऊर्ध्वाधर आवेदन के लिए किराया करने जा रही है, और वह है जिसे आपको देखने की आवश्यकता है।
संपादित करें: यह काफी हद तक संभव है कि जिन डेवलपर्स को मैंने उजागर किया है, वे असामान्य रूप से सुस्त हैं (वर्तमान फसल को केवल 1 पर स्टैकओवरफ़्लो के बारे में सुना है, बेंचमार्क के कुछ स्तर देने के लिए)। देखने का शुरुआती बिंदु जो मैं शुरू करता हूं, "आपको वह करने की आवश्यकता है जो कंपनी आपको करने के लिए भुगतान कर रही है"। यदि आपको उन्हें प्राप्त करने के लिए व्यवस्थापक अधिकारों की आवश्यकता है, लेकिन आपको उनके साथ स्टकार्ट नहीं करना चाहिए और अगर मैं आपको एक बॉक्स दे सकता हूं जो स्पष्ट रूप से मुझे परवाह नहीं है कि आप इसे क्या करते हैं और यह काम करता है तो हम दोनों जाने के लिए अच्छे हैं।