अच्छा Developer Experience
(developerexperience.io)Good Developer Experience
- TL;DR
डेवलपर्स को खुश रखना और उनकी खुशी बनाए रखना न भूलें।
# अच्छा Developer Experience (Developer Experience, DX) क्या है
Developer Experience वह अनुभव है जो डेवलपर्स को किसी प्रोडक्ट का उपयोग करते समय या उसे विकसित करते समय होता है।
लेकिन कई कंपनियों में इसकी प्राथमिकता UX(User Experience) से भी पीछे रह जाती है। डेवलपर भी यूज़र होते हैं, और वे प्रोडक्ट का उपयोग करते हैं।
उनकी संतुष्टि और खुशी किसी प्रोजेक्ट की सफलता के लिए बहुत महत्वपूर्ण है। खुश डेवलपर बेहतरीन software बनाते हैं और टीम छोड़ने की संभावना भी कम होती है।
हम अच्छे Developer Experience को नीचे दिए गए 4 तत्वों से परिभाषित करते हैं।
-
उचित architecture
अगर architecture बहुत सरल हो, तो बाद में परेशानी होगी; और अगर बहुत जटिल हो, तो अभी परेशानी होगी।
प्रोजेक्ट और टीम के आकार को ध्यान में रखकर architecture चुनना चाहिए। अच्छा architecture आसानी से टूटता नहीं, उसका feedback cycle छोटा होता है, और वह resilient होता है। -
अच्छे tools
जहाँ संभव हो, automation की सिफारिश की जाती है। बार-बार होने वाले काम थका देते हैं। -
development के बाद को सहारा देने वाली process
यह process automated checklist की तरह काम करनी चाहिए और consistent steps प्रदान करने चाहिए। परिभाषित process टीम training में मदद करती है।
अगर कंपनी पर्याप्त बड़ी है, तो QA, deployment, feedback, onboarding जैसी processes का उपयोग करें। -
हानिकारक न होने वाली team culture
कंपनी का उद्देश्य परिभाषित करें। सिर्फ पैसा कमाना ही एकमात्र लक्ष्य नहीं होना चाहिए।
culture सबसे महत्वपूर्ण brainware है (यानी वह software जो दिमाग में चलता है) जिसे आप कंपनी और टीम में स्थापित कर सकते हैं।
डेवलपर्स द्वारा लिए जाने वाले सभी निर्णय इसी स्थापित brainware से छनकर आते हैं।
अगर वे उस brainware से सहमत नहीं होते, तो उसे नज़रअंदाज़ कर देते हैं।
# अच्छा Developer Experience क्यों ज़रूरी है
## अच्छे Developer Experience वाली टीमें अधिक productive होती हैं और उनमें निम्नलिखित विशेषताएँ दिखाई देती हैं:
-
प्रभाव का एहसास
वे समझते हैं कि बात सिर्फ पैसा कमाने की नहीं है। वे जानते हैं कि उनका काम महत्वपूर्ण है और दूसरों के जीवन को बेहतर बनाता है। -
ownership और responsibility
वे सफलता के लिए जवाबदेह होते हैं। टीम के हर सदस्य को कंपनी की सफलता के प्रति जिम्मेदारी महसूस करनी चाहिए। -
साझा लक्ष्य
टीम, विभाग और पूरी कंपनी के समान लक्ष्य होते हैं। -
दयालुता और ईमानदारी
हम इसे 'hey bro' culture कहते हैं। हम गहरे सम्मान के साथ sincerity पर ज़ोर देते हैं। -
असफलता की अनुमति
डेवलपर्स को साहसी होना चाहिए और जोखिम उठाना चाहिए। लेकिन risk हमेशा सोच-समझकर लिया जाना चाहिए, और डेवलपर्स को पता होना चाहिए कि हर काम कितनी समस्याएँ पैदा कर सकता है।
## खराब Developer Experience वाली culture की विशेषताएँ:
-
उंगली उठाना
टीम के सदस्य गलत कामों के लिए एक-दूसरे को दोष देते हैं। यह बहुत हानिकारक है, लेकिन अक्सर होता है। -
असफलता पर कठोर दंड
उदाहरण के लिए, ऐसा मैनेजर जो कहे कि deadline पूरी नहीं की तो नौकरी से निकाला जा सकता है। -
कभी न खत्म होने वाला crunch time और टीम पर लगातार overload
-
शत्रुता और अनिश्चितता
टीमों के बीच अस्वस्थ प्रतिस्पर्धा। (उदाहरण के लिए, यह व्यक्ति मुझसे बेहतर है इसलिए इसका promotion हो गया) -
कमजोर पड़ती जिम्मेदारी
बड़ी कंपनियों में ऐसा महसूस हो सकता है कि कोई भी जिम्मेदारी नहीं लेता। 'माफ़ करना, यह मैंने बिगाड़ा' कहने के लिए साहस चाहिए। जिम्मेदारी लेने में सक्षम होना महत्वपूर्ण है।
# वे समस्याएँ जिन्हें अच्छा Developer Experience हल कर सकता है
- ज्ञान का संचय
- गलत product-market fit
- उत्साहहीन टीम
- 'यह मेरी समस्या नहीं है' वाली मानसिकता
- असफल product
- असंतुष्ट client
- business और IT के बीच disconnect
- हानिकारक team culture
- खराब code quality
- बढ़ती लागत
- अर्थहीन काम
# अच्छा Developer Experience कैसे लागू करें
1980 के दशक के मध्य में Dr. Martin Barnes ने 'Scope Triangle' बनाया था। यह तीन बुनियादी शक्तियों के बीच संबंध दिखाता है।
समय, पैसा, गुणवत्ता
इस triangle का मतलब है कि quality बढ़ानी हो तो पैसा या समय समायोजित करना होगा। (अनुवादक: समझ को आसान बनाने के लिए मूल पाठ में हल्का बदलाव) लेकिन हमारा मानना है कि वास्तविक दुनिया में चीजें ऐसे काम नहीं करतीं। उस triangle में emotional cost भी जोड़नी चाहिए।
अगर डेवलपर्स को काम पूरा करने के लिए देर रात तक रुकना पड़ता है, तो निवेश सिर्फ समय का नहीं होता। इस निवेश का एक और हिस्सा emotional cost है। शानदार Developer Experience इस emotional cost को नियंत्रण में रखने में मदद करता है। अगर आप डेवलपर्स को खुश रखना चाहते हैं, तो emotional cost कम रखें।
# अच्छे Developer Experience की आम गलतियाँ
- बहुत जल्दी के चरण में डेवलपर्स को जरूरत से ज्यादा जानकारी दे देना।
- जब अधिक जानकारी की जरूरत हो, तब डेवलपर्स को बहुत कम जानकारी देना।
- process का अत्यधिक उपयोग 'हर चीज़ एक जैसी फिट होती है' वाली सोच पैदा कर सकता है।
- over-engineering की प्रवृत्ति
- Agile = डेवलपर्स से और अधिक काम करवाने का बहाना
1 टिप्पणियां
अनुवाद के लिए धन्यवाद!