चुस्त हो जाओ
मैं निम्नलिखित सुझाव दूंगा:
उसी फाइलों का संपादन
सबसे पहले, Git (या समान समवर्ती संस्करण प्रणाली) का उपयोग करें। जब तक आप एक ही फाइल के विभिन्न हिस्सों को संपादित कर रहे हैं, तब तक आपको संघर्ष नहीं करना पड़ेगा। यदि आप संघर्ष करते हैं, तो उन्हें स्पष्ट रूप से चिह्नित किया जाएगा।
Git के बिना मल्टी-डेवलपर प्रोजेक्ट को प्रबंधित करने की कोशिश करना एक हलवा कटोरे के बिना हलवा बनाने की कोशिश करना है। यह संभव है, लेकिन यह बहुत तेजी से गड़बड़ हो रहा है।
जैसा कि टिप्पणियों में बताया गया है, Git एक रामबाण नहीं है, लेकिन स्वचालित परीक्षण के साथ संयुक्त रूप से यह निश्चित रूप से बहुत बड़ी मदद करता है।
सभी सुविधाओं को सूचीबद्ध करें
दूसरा, उपयोगकर्ता दृश्यमान विशेषताओं में प्रोजेक्ट को तोड़ दें। उदाहरण के लिए "जब उपयोगकर्ता साइन अप करता है, तो उन्हें एक ईमेल प्राप्त करना चाहिए" या "उपयोगकर्ता एक आइटम जोड़ सकता है"। यहां सभी हितधारकों को शामिल करें। एक कमरे में सभी को प्राप्त करें, और हर कोई अपनी विशेषताओं को चिल्लाए।
ये उपयोगकर्ता दृश्यमान विशेषताएं होनी चाहिए, आप बाद में कार्यान्वयन रणनीति के बारे में बात कर सकते हैं।
सभी सुझावों को इंडेक्स कार्ड पर लिखें, यहां तक कि डंबल भी। डुप्लिकेट को हटाने के लिए सूची को जल्दी से तर्कसंगत करें, और सभी कार्डों को एक बड़ी मेज, या यहां तक कि फर्श पर रख दें।
जो भी अतिरिक्त कार्ड की आवश्यकता हो, उसमें जोड़ें। कहते हैं कि आपका एप्लिकेशन एसएमएस टेक्स्ट अलर्ट भेजेगा। आप नहीं जानते कि ऐसा कैसे किया जा सकता है, इसलिए आपके पास एक सवाल है। एक कार्ड पर "इन्वेस्टिगेट एसएमएस पोर्टल्स" लिखें। इसी तरह किसी अन्य बड़े अज्ञात के लिए। आपको बाद में इन्हें अनपैक करना होगा। ये सुविधाएँ शायद आपके पहले स्प्रिंट में नहीं आएंगी।
अब अपने कार्ड को समूहों में क्रमित करें, उनके बारे में फेरबदल करें, उनके लिए एक अनुभव प्राप्त करें। यह आपकी परियोजना का दायरा है।
नियोजन पोकर
पोकर की योजना बनाएं। फिर भी सभी को एक साथ, सभी डेवलपर्स कार्ड दें जो "4 अंक" तक "1 अंक", "2 अंक" आदि कहते हैं। इसके अलावा एक "अधिक" कार्ड। एक बिंदु लगभग एक घंटे के बराबर है।
एक-एक करके फीचर लिस्ट से गुजरें। जैसा कि आप एक फीचर पढ़ते हैं, सभी को एक कार्ड खेलना होगा। यदि एक व्यक्ति 1 निभाता है, और दूसरा व्यक्ति 4 निभाता है, तो वहां एक संचार समस्या है। एक व्यक्ति दूसरे व्यक्ति से कुछ अलग करने की विशेषता को समझता है। चर्चा करें और समझें कि वास्तव में क्या था और इसे कार्ड पर नोट करें।
यदि आप सहमत हैं कि एक सुविधा "अधिक" है, तो वह सुविधा बहुत बड़ी है। आपको उस सुविधा को तोड़ना होगा। इसे पहले की तरह ही करें।
जैसा कि आपने अनुबंध किया है, कार्ड पर संख्याओं को एक अलग रंग पेन में लिखें।
अंक घंटे से बेहतर हैं
घंटों के बजाय बिंदुओं का उपयोग करने से माचो को लगता है "देखो मैं कितनी तेजी से कोड कर सकता हूं" वह चीज जिसे हम डेवलपर्स अक्सर संलग्न करते हैं। यह एक सूक्ष्म अंतर है, लेकिन मैंने पाया है कि यह अच्छी तरह से काम करता है।
अब एक स्प्रिंट लिखें
एक स्प्रिंट एक लक्ष्य की ओर एक त्वरित फट है। स्प्रिंट की लंबाई पर निर्णय लें, शायद 5 या 10 दिन। प्रति दिन अंकों की संख्या से डेवलपर्स की संख्या से दिनों की संख्या को गुणा करें।
शुरू में प्रति डेवलपर प्रति दिन 6 अंक मान लें। यह एक प्राप्त करने योग्य संख्या है। यदि आपके पास 5 लोग हैं, तो यह 5 * 5 * 6 = 150 अंक है। सभी डेवलपर्स और प्रबंधन के साथ मिलकर, सूची से 150 अंक तक की सुविधाओं को चुनें। वह तुम्हारा स्प्रिंट है।
कभी भी फिट होने के बजाय अधिक निचोड़ने का प्रलोभन न दें। ओवर-होनहार ने लंबे समय में आप सहित सभी को चोट पहुंचाई।
आपको यहां निर्भरताओं का ध्यान रखना होगा। उदाहरण के लिए, पर्यावरण सेटअप को स्पष्ट रूप से पहले स्प्रिंट में शामिल किया जाना है। यह वास्तव में अपेक्षाकृत आसान है जब हर कोई मौजूद है। आपके पास कमरे में 6 दिमाग हैं, सभी कह रहे हैं "यह इस पर निर्भर करता है", आदि आप निर्भरता प्रदर्शित करने के लिए कार्डों को फेरबदल कर सकते हैं।
एक बार जब आपके पास स्प्रिंट होता है, तो इसमें कुछ भी नहीं जोड़ा जा सकता है, यह 5 दिनों के लिए बंद है। फीचर रेंगना टीम को तनाव देगा, मनोबल को नुकसान पहुंचाएगा और सभी को धीमा कर देगा। आखिरकार, रेंगना एक परियोजना को रोक देगा। टीम लीडर के रूप में आपको अपनी टीम को फीचर रेंगना से बचाना होगा। यदि कोई नया सुविधा अनुरोध आता है, तो उसे अगले स्प्रिंट में जोड़ा जाना चाहिए। यदि अगला स्प्रिंट पहले से ही भरा हुआ है, तो कुछ और निकालना होगा।
एक्स्ट्रा में निचोड़ने के लिए कभी भी परीक्षा न करें। ओवर-प्रॉमिसिंग आपको लगभग 1 दिन का खुश ग्राहक देता है, इसके बाद टीम तनाव के 4 दिन, और अंत में, सबसे अधिक संभावना है, कई दुखी ग्राहक जब टीम समय पर वितरित नहीं कर सकती।
अब इस पर जाएं।
कार्ड को हाथ से देखें, पूछें कि कौन क्या करना चाहता है। आपके पास पूर्ण दृश्यता है कि क्या किया जा रहा है, और आप नीचे टिक बिंदुओं को शून्य तक गिन सकते हैं। प्रत्येक दिन की शुरुआत में एक स्टैंडअप लें ताकि सभी को पता हो कि कौन क्या काम कर रहा है और क्या किया गया है।
स्पष्ट रूप से परिभाषित प्रबंधनीय लक्ष्यों पर एक इकाई के रूप में एक साथ काम करने वाले 5 या 6 सभ्य प्रेरित डेवलपर्स 5 दिन के स्प्रिंट में बहुत अधिक मात्रा में सामान प्राप्त कर सकते हैं।
दृश्यता बनाए रखें
सुनिश्चित करें कि हर कोई देख सकता है कि परियोजना की स्थिति क्या है। सभी कार्ड को दीवार पर ब्लिटैक करें। बाईं ओर कार्ड हैं जिन पर अभी काम नहीं किया गया है। दाईं ओर कार्ड बनाए गए हैं।
जब कोई डेवलपर कार्ड पर काम कर रहा होता है, तो वे इसे दीवार से हटाकर अपनी मेज पर रख देते हैं। यह दृश्यता बनाए रखता है, और लोगों को एक दूसरे के पैर की उंगलियों पर बहुत अधिक कदम रखने से रोकता है।
इंडेक्स कार्ड के लिए तकनीकी विकल्प हैं, लेकिन दीवार पर परियोजना की स्थिति के बड़े पैमाने पर पेपर डिस्प्ले होने से कुछ भी नहीं धड़कता है।
यदि संभव हो, तो प्रोजेक्ट की अवधि के लिए सभी को एक ही कमरे में रखें। हितधारकों के चारों ओर जितना संभव हो सके, आदर्श रूप से हर दिन है।
जलाना
आप अपने बिंदुओं को एक चार्टडाउन चार्ट पर शून्य की ओर ले जा सकते हैं। यदि आपकी समय सीमा को हिट करने से पहले आपकी सबसे अच्छी फिट की रेखा शून्य को पार कर जाती है, तो आप ट्रैक पर होने की संभावना है। यदि आपको अपने ग्राहक को अभी पता करने की आवश्यकता नहीं है, तो इससे पहले कि आप समय सीमा के करीब पहुंचें।
यदि आप असफल होने जा रहे हैं, तो जल्दी असफल हो जाएं।
आप सॉफ्टवेयर का उपयोग करके एक बोझ बना सकते हैं, लेकिन मैं दीवार पर कागज का एक बड़ा टुकड़ा पसंद करता हूं। सब पर ड्रा और लिखें।
स्वचालित परीक्षण
जब आपके पास एक ही समय में एक ही सामान पर काम करने वाले कई डेवलपर्स हैं, तो वे समय-समय पर एक-दूसरे के कोड को तोड़ने जा रहे हैं। संचार और दृश्यता इससे मदद करती है, लेकिन आप शायद मुद्दों को खोजने के लिए कुछ प्रौद्योगिकी शुरू करना चाहते हैं।
यूनिट परीक्षण आपके कोडबेस के प्रत्येक व्यक्ति के हिस्से (आदर्श रूप से प्रत्येक विधि) के लिए परीक्षण लिखने की प्रक्रिया है। यदि संभव हो तो प्रत्येक बचत के साथ, आपकी इकाई परीक्षण अक्सर चलाया जाना चाहिए। ऐसे कई उपकरण हैं जो इसके साथ मदद कर सकते हैं, उदाहरण के लिए कर्म या आरस्पेक।
एंड टू एंड टेस्टिंग में एक आंतरिक रूप से ब्लैक बॉक्स के रूप में व्यवहार करते हुए, अपनी परियोजना का संपूर्ण परीक्षण करना शामिल है। अपनी उच्च स्तरीय व्यावसायिक आवश्यकताओं के आधार पर इन परीक्षणों को आधार बनाएं: "उपयोगकर्ता साइन अप कर सकता है" या "उपयोगकर्ता वस्तुओं की सूची देख सकता है"। वेब आधारित परीक्षण ढांचे के अंत के लिए प्रोटेक्टर एक अच्छा उदाहरण है।
परीक्षण पर पूरी किताबें लिखी गई हैं, लेकिन जगह में कम से कम कुछ स्वीकृति परीक्षण होने से यह सुनिश्चित करने में मदद मिल सकती है कि आप अपने प्रोजेक्ट पर काम करते समय कुछ भी टूट न जाए।
तकनीकी ऋण से बचने और काम करने के लिए
तकनीकी ऋण एक अवधारणा है जो उन चीजों का वर्णन करती है जिन्हें बाद में साफ करना होगा। ऋण का एक सामान्य स्रोत ऐसी विशेषताएं हैं जो किए गए के रूप में चिह्नित किए गए थे, लेकिन जो कभी भी "किए-किए गए" नहीं थे। Git में एक किए गए फीचर की जांच की जाती है, हितधारक द्वारा अनुमोदित किया गया है, और एक परीक्षण है।
अपनी सुविधाओं की जाँच तब तक न करें जब तक कि वे पूर्ण नहीं हो जाते। कभी भी ग्राफ की मालिश न करें। फिर, यह लंबे समय में आप सहित सभी को आहत करता है।
यह एक कारण है कि हम शुरू में प्रति डेवलपर प्रति दिन केवल 6 अंक ही उद्धृत करते हैं। हो गया, अतिरिक्त काम करता है, लेकिन बहुत अच्छा लगता है और टीम को बढ़ावा देता है।