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