अन्य डेवलपर्स के लिए कार्यों में एक प्रोग्रामिंग प्रोजेक्ट को कैसे तोड़ना है? [बन्द है]


164

मैं हाल ही में एक विकास परियोजना में शामिल हुआ हूं और अचानक उसे लीड डेवलपर की नौकरी दी गई। मेरी प्राथमिक जिम्मेदारी परियोजना के प्रोग्रामिंग भाग को कार्यों में विभाजित करना है, इन कार्यों को अन्य डेवलपर्स को दें, और फिर सुनिश्चित करें कि टुकड़े एक साथ मिलें।

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

मेरे पास ऐसा करने के लिए मेरी योग्यता के बारे में मेरे बॉस के साथ बातचीत हुई और मुझे इस मामले में कोई विकल्प नहीं दिया गया। मुझे नहीं पता कि मैं क्या कर रहा हूं, इसलिए सही दिशा में किसी भी सुझाव और नग्नता की बहुत सराहना की जाएगी।


27
क्या आपने कभी कोई वास्तु सॉफ़्टवेयर डिज़ाइन किया है? आपका बॉस या तो यह मानता है कि आप ऐसा कर सकते हैं, या आपको असफलता के लिए खड़ा कर रहे हैं।
रॉबर्ट हार्वे

15
क्या आप git जैसे वर्जन कंट्रोल सिस्टम के बारे में जानते हैं ? यह विभिन्न स्थानों पर एक ही फ़ाइल को संपादित करने में मदद कर सकता है , बशर्ते लोग इसका सही उपयोग करें!
बेसिल स्टारीनेवविच 18

2
मुझे हमेशा पहले लिखा हुआ तकनीकी विनिर्देश पसंद है। फिर यह जानना आसान है कि क्या आवश्यक है। उसके बाद नौकरी को "डेटाबेस, व्यवसाय, यूआई, टेस्ट-केस" में विभाजित किया जा सकता है। यदि परियोजना बड़ी है, तो आप मॉड्यूल (उदाहरण) "उपयोगकर्ता मॉड्यूल, चालान मॉड्यूल, अनुबंध मॉड्यूल" में विभाजित कर सकते हैं। इसके अलावा, तकनीकी विनिर्देश होने से यह जानना बहुत आसान है कि प्रत्येक कार्य के लिए कितना समय लगेगा (उदा: हमारे पास 3 टेबल, 10 स्टोर की खरीद होगी, इसमें 4 दिन लगने चाहिए। इकाई में 15 व्यावसायिक नियम हैं, 3 को लेना चाहिए। दिन)
the_lotus

6
उपलब्ध समय, लोगों की संख्या, अनुमानित घंटे, कार्यों की संख्या आदि के संदर्भ में आपके दायरे का आकार क्या है?
rmayer06

1
ऐसा लगता है कि बहुत से लोग किसी परियोजना को प्रबंधित करने के तरीके के बारे में सुझाव दे रहे हैं (काम के टूटने की संरचना के साथ आना, परियोजना प्रबंधन में आपके द्वारा की जाने वाली पहली चीजों में से एक है)। क्या यह वास्तव में एक पीएम ट्यूटोरियल के लिए एक अच्छा प्रारूप है?
rmayer06

जवाबों:


214

आपके प्रश्न का उचित उत्तर कई पुस्तकों को भरता है । मैं बुलबुल शब्दों की एक बुलेट लिस्ट लेकर आऊंगा जो इस बारे में मेरे दिमाग में आती है, Google और किताबें आपके लिए बाकी काम करेंगे।

  1. मूल बातें

    • अकेले मत जाओ । अपनी टीम के साथियों को अधिक से अधिक शामिल करने की कोशिश करें।
    • यात्रा हल्की करें
    • लोकतंत्र, लेकिन बहुत ज्यादा नहीं। कभी-कभी, यह इस बारे में नहीं होता है कि लोगों की सबसे बड़ी संख्या को क्या संतुष्ट करता है, लेकिन क्या कम से कम लोगों को नुकसान पहुंचाता है।
    • रखें ( क्या किया जाना चाहिए) और कैसे (यह किया जाता है) अलग
    • स्क्रम ("क्या"), एक्सपी (एक्सट्रीम प्रोग्रामिंग, "कैसे"), कंबन ("कितना"), लीन ("क्या नहीं") और देवओप्स ("जिनके साथ") के बारे में जानें ।
    • झुक भी प्रवाह के बारे में है : समग्र दक्षता के लिए, प्रवाह दक्षता आमतौर पर व्यक्तिगत दक्षता से अधिक महत्वपूर्ण है।
    • सॉफ़्टवेयर शिल्प कौशल , स्वच्छ कोड और व्यावहारिक प्रोग्रामिंग के बारे में जानें ।
    • अच्छा आर्किटेक्चर निर्णय नहीं लेने की संख्या को अधिकतम करने के बारे में है ।
    • स्क्रम / एक्सपी / लीन / एजाइल काम की मात्रा को अधिकतम करने के बारे में है जो नहीं किया गया है : YAGNI
    • सॉफ्टवेयर के प्राथमिक मूल्य है कि आप कर सकते हैं आसानी से बदलने यह। यह वही करता है जो इसे करना चाहिए, लेकिन यह केवल इसका द्वितीयक मूल्य है।
    • एक पुनरावृत्त और वृद्धिशील दृष्टिकोण को प्राथमिकता दें , लगभग हर चीज के लिए समय बक्से का उपयोग करें , विशेष रूप से बैठकें, पार्किंसंस कानून को अपना दोस्त बनाएं क्योंकि हॉफ़स्टैटर लॉ लागू होता है।
    • कॉनवे के नियम और टकमैन के चरणों का टीम विकास की समझ के साथ संतुलन टीम संरचना ।
    • प्रोग्रामिंग एक विचित्रता है, यह विज्ञान , इंजीनियरिंग , कला और शिल्प सभी एक ही समय में है, और जिन्हें संतुलन में रखने की आवश्यकता है।
    • सिर्फ इसलिए कि Scrum / XP / XYZ किसी के लिए अच्छा है (मेरे सहित) जरूरी नहीं कि यह आपके लिए अच्छा हो / आपके वातावरण के अनुकूल हो। आँख बंद करके प्रचार का पालन न करें, इसे पहले समझें।
    • निरीक्षण और अनुकूलन! (स्क्रम मंत्र)
    • दोहराव से बचें - एक बार और केवल एक बार! (एक्सपी मंत्र) उर्फ डीआरवाई - डोंट रिपीट योरसेल्फ उर्फ स्पॉट - सिंगल पॉइंट ऑफ ट्रूथ
  2. "क्या दुनिया" काम टूटने की प्रक्रिया

    • उत्पाद बैकलॉग में उपयोगकर्ता कहानियों / नौकरी की कहानियों के रूप में आवश्यकताओं को इकट्ठा करें ।
    • उपयोगकर्ता (यूजर स्टोरी की) अभिनेता (यूएमएल में) की तरह पर्सला की भूमिका के समान है ।
    • उपयोगकर्ता की कहानियाँ परिष्कृत जब तक वे अपनी टीम के पूरा तैयार की परिभाषा के आधार पर निवेश (स्वतंत्र, बातचीत योग्य, मूल्यवान, बहुमूल्य, छोटे, Testable)। (स्क्रैम मीटिंग: बैकलॉग शोधन )
    • व्यवसाय मान द्वारा उत्पाद बैकलॉग को सॉर्ट करें ।
    • रेडी रेडी ( रेडी की परिभाषा के अनुसार तैयार) से पहले एक कहानी पर काम शुरू न करें ।
    • स्टोरी पॉइंट्स में स्टोरीज के प्रयास का अनुमान लगाने के लिए प्लानिंग पोकर का उपयोग करें । अनुमानों की स्थिरता सुनिश्चित करने के लिए त्रिकोणासन तुलना का उपयोग करें ।
    • कल का मौसम सबसे अच्छा अनुमान है, सबसे खराब उम्मीद है।
    • स्प्लिट स्टोरीज अगर वे बहुत बड़ी हैं।
    • पूर्णता की परिभाषा के साथ वितरण संस्कृति में सुधार करें ।
    • एक उपयोगकर्ता कहानी इससे पहले कि यह है के कार्यान्वयन स्वीकार न करें हो गया हो गया (डन की परिभाषा के अनुसार किया जाता है)।
    • समान कोड आधार पर कई टीमों को सहमत होना चाहिए और समान परिभाषा (विशेष रूप से कोडिंग मानकों ) को पूरा करना चाहिए।
    • बरंडाउन चार्ट के साथ अपनी प्रगति की जाँच करें ।
    • अपने हितधारकों के साथ नियमित रूप से जांच करें कि क्या टीम उद्धार करती है जो वास्तव में आवश्यक है। (स्क्रम मीटिंग: स्प्रिंट रिव्यू )
  3. कहानी ब्रेकडाउन

    • सूची और विवरण दें उपयोगकर्ता / Personas / अभिनेता / भूमिकाएँ (उत्पाद मालिक)
    • महाकाव्य -> ​​कहानियां (उपयोगकर्ता कहानी या नौकरी की कहानी) (उत्पाद स्वामी)
    • कहानी -> स्वीकृति मानदंड (उत्पाद स्वामी)
    • कहानी -> उपशीर्षक (देव टीम)
    • स्वीकृति मानदंड -> स्वीकृति परीक्षण (युक्ति: उत्पाद स्वामी, Impl: देव टीम)
    • एक चलना कंकाल के साथ शुरू करें जो एक न्यूनतर एंड-टू (हॉफ-एंड) है
    • एक एमवीपी बनाएँ - न्यूनतम व्यवहार्य उत्पाद
    • SMURFS का उपयोग करके MVP का विस्तार करें - विशेष रूप से विपणन योग्य, उपयोगी, भरोसेमंद फ़ीचर सेट
  4. "कैसे दुनिया" अहसास

    • OOA / D , UML और CRC कार्ड्स का उपयोग करें , लेकिन बड़े डिजाइन से बचें ।
    • लागू वस्तु उन्मुख , संरचित और कार्यात्मक एक ही समय जितना संभव हो उतना पर, प्रोग्रामिंग भाषा की परवाह किए बिना।
    • संस्करण नियंत्रण (अधिमानतः वितरित ) का उपयोग करें ।
    • स्वीकृति टेस्ट से शुरू करें ।
    • TDD लागू करें , TDD के तीन कानूनों को देने से आपको Red-Green-Refactor-Cycle , Single-Assert-Rule , 4 A's , GWT (गिवेन व्हेन व्हेन) के साथ BDD से ड्राइव करता है
    • " यूनिट टेस्ट ऐसे परीक्षण हैं जो तेजी से चलते हैं ।" - माइकल पंख
    • युग्मन और सामंजस्य का प्रबंधन करने के लिए SOLID और पैकेज सिद्धांतों को लागू करें । उदाहरण: एसओएलआईडी में एसआरपी एसआरपी = सिंगल रिस्पॉन्सिबिलिटी सिद्धांत है, जो एडिट-रिस्पांस की संख्या को काफी कम करता है। टीमों में विलय-संघर्ष।
    • पता है लॉ ऑफ़ डेमेटर / बताओ, मत पूछो
    • कंटीन्यूअस इंटीग्रेशन का उपयोग करें , यदि कंटीन्यूअस डिलीवरी (DevOps) भी लागू हो ।
    • सामूहिक कोड स्वामित्व का उपयोग एक सहमत सामान्य कोडिंग मानक (जो कि परिभाषा की परिभाषा का हिस्सा होना चाहिए ) के आधार पर करें।
    • कंटीन्यूअस डिज़ाइन इंप्रूवमेंट (fka Continuous Refactoring) लागू करें ।
    • सोर्स कोड डिज़ाइन है । अभी भी अग्रिम सोच अपरिहार्य है, और कोई भी कुछ अच्छे यूएमएल आरेखों को स्पष्ट नहीं करेगा।
    • XP का मतलब यह नहीं है कि कोई दिन आर्किटेक्चर डे नहीं है, इसका मतलब है कि हर दिन आर्किटेक्चर डे है। यह आर्किटेक्चर पर फोकस है, डिफोकस पर नहीं, और फोकस कोड में है।
    • आपके रखें तकनीकी ऋण कम चार डिजाइन से बचने बदबू आ रही है नाज़ुक , कठोरता , गतिहीनता और चिपचिपापन
    • वास्तुकला व्यवसाय तर्क के बारे में है, न कि दृढ़ता और वितरण तंत्र के बारे में।
    • आर्किटेक्चर एक टीम स्पोर्ट है ( आर्किटेक्चर में कोई 'I' नहीं है )।
    • डिजाइन पैटर्न , रीफैक्टरिंग और ट्रांसफॉर्मेशन प्रायरिटी परिसर
    • प्रोजेक्ट कोड प्राथमिकताओं के साथ एटीपी-ट्रिनिटी है : 1. स्वचालन कोड , 2. परीक्षण कोड , 3. उत्पादन कोड
    • अपनी टीम के साथियों के साथ नियमित रूप से जांच करें कि क्या टीम का उद्धार कैसे हो सकता है। (स्क्रम मीटिंग: स्प्रिंट रेट्रोस्पेक्टिव )
    • टेस्ट होना चाहिए सबसे पहले - फास्ट, स्वतंत्र, repeatable, स्व मान्य और समय पर।

उपरोक्त सूची निश्चित रूप से अधूरी है, और कुछ हिस्से विवादित भी हो सकते हैं!

अगर यह सब आपको डराता है - चिंता न करें, क्योंकि यह आपको डराने चाहिए ! टीमों में सॉफ्टवेयर विकास परियोजनाओं को सफल करना एक आसान काम नहीं है, और शायद ही कभी लोग इस कला में ठीक से प्रशिक्षित और शिक्षित होते हैं। यदि यह आपको डराता है, तो आपका अंतर्ज्ञान ठीक से काम कर रहा है, इसे सुनें। आप तैयार रहना चाहते हैं। अपने बॉस से बात करें, थोड़ा समय और प्रशिक्षण प्राप्त करें।

यह सभी देखें

आगे पढ़ने (ऑनलाइन)

आगे पढ़ने (किताबें)

  • रॉबर्ट सी। मार्टिन द्वारा क्लीन कोड
  • एजाइल सॉफ्टवेयर डेवलपमेंट: रॉबर्ट सी। मार्टिन द्वारा सिद्धांत, प्रतिरूप और अभ्यास
  • द प्रैगमैटिक प्रोग्रामर - एंड्रयू हंट और डेविड थॉमस द्वारा जर्नीमैन से मास्टर तक
  • माइकल पंख द्वारा विरासत कोड के साथ प्रभावी ढंग से काम करना
  • रिफैक्टरिंग - मार्टिन फॉलर द्वारा मौजूदा डिजाइन के कोड में सुधार
  • यहोशू केरिव्स्की द्वारा प्रतिमानों को फिर से तैयार करना
  • स्टीवन सिलबिगर (सिक!) द्वारा दस दिवसीय एमबीए
  • एरिक इवांस द्वारा डोमेन-संचालित डिज़ाइन
  • माइक कोहन द्वारा लागू उपयोगकर्ता कहानियां
  • ऑब्जेक्ट-ओरिएंटेड एनालिसिस एंड डिज़ाइन विथ एप्लीकेशंस विथ ग्रे बूच एट अल
  • चार के गिरोह द्वारा डिजाइन पैटर्न
  • केंट बेक द्वारा टेस्ट ड्रिवेन डेवलपमेंट
  • केंट बेक द्वारा चरम प्रोग्रामिंग
  • [यदि जावा] जोशुआ बलोच द्वारा प्रभावी जावा

1
+1, दिलचस्प जवाब जो एक संदर्भ के रूप में इस्तेमाल किया जा सकता है। इसकी शैली से मुझे लगता है कि साइट को सार्वजनिक करने से पहले वेब एप्लिकेशन के प्रोग्रामर को क्या तकनीकी विवरणों पर विचार करना चाहिए?
Arseni Mourzenko

3
पुस्तकें कि मदद कर सकता है (कुछ के रूप में ई-किताबें उपलब्ध हैं): Addison Wesley - The Pragmatic Programmer, From Journeyman To Master by Andrew Hunt, David Thomas & Addison Wesley - 1999, O'reilly - The Productive Programmer by Neal Ford, Prentice Hall - Clean Code, a Handbook of Agile Software Craftsmanship ny Robert C. Martin, ..., O'Reilly - Head First Object-Oriented Analysis & Design by Brett D. McLaughlin, Gary Pollice & David West, और कई और अधिक ...
BlueCacti

4
क्षमा करें, महोदय, मैं इसका उत्तर लूंगा, इसे एक पीडीएफ
बनाऊंगा

1
@AgustinMeriles आगे बढ़ो, बस तीन मामूली अनुरोधों के साथ - यदि संभव हो, और यदि आप चाहें। 1. उल्लेख प्रोग्रामर .stackexchange.com स्रोत के रूप में। 2. मुझे लेखक के रूप में उल्लेख करें। 3. यदि आपके सहकर्मियों के पास प्रतिक्रिया या परिवर्धन है, तो कृपया इसे यहां पोस्ट करें ताकि मैं और समुदाय के बाकी सभी लोग उत्तर को बेहतर बना सकें।
ईसाई हुजेर

हां, उस के साथ कोई समस्या नहीं है :)
अगस्टिन मर्ल्स

34

चुस्त हो जाओ

मैं निम्नलिखित सुझाव दूंगा:

उसी फाइलों का संपादन

सबसे पहले, 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 अंक ही उद्धृत करते हैं। हो गया, अतिरिक्त काम करता है, लेकिन बहुत अच्छा लगता है और टीम को बढ़ावा देता है।


6
"जब तक आप एक ही फाइल के अलग-अलग हिस्सों को संपादित कर रहे हैं, तब तक आप संघर्ष नहीं करेंगे। यदि आप संघर्ष करते हैं, तो उन्हें स्पष्ट रूप से चिह्नित किया जाएगा।" यह बहुत सरल है। "भौतिक" संघर्ष एक बात है, लेकिन कोड के साठ लाइनों को बदलकर साठ लाइनों से किसी के कोड के शब्दार्थ को तोड़ना बहुत आसान है, इसके बिना संस्करण नियंत्रण प्रणाली आपको इसके बारे में बताने में सक्षम नहीं है। यह महत्वपूर्ण है कि डेवलपर्स मर्ज के दौरान अलग-अलग पढ़ और व्याख्या कर सकें ।
को ऑर्बिट

मैं लाइटनेस से सहमत हूं। आपको कभी भी ऑटो मर्ज नहीं करना चाहिए। डेवलपर्स को यह सुनिश्चित करने के लिए हर बदलाव की जांच करनी चाहिए कि उनके परिवर्तन उस फ़ाइल के अनुरूप हैं जो वे विलय कर रहे हैं।
डुबोना

@LightnessRacesinOrbit - हां, मैं चीजों को थोड़ा सरल कर रहा हूं। गिट एक रामबाण नहीं है, लेकिन कम से कम विलय वास्तव में संभव है। मुझे संभवतः इकाई और स्वीकृति परीक्षण का भी उल्लेख करना चाहिए।
superluminary

3
फुर्तीली हर समस्या का समाधान नहीं है, और यदि आप बुनियादी परियोजना योजना और प्रबंधन अवधारणाओं को नहीं जानते हैं तो यह मदद नहीं करेगा।
rmayer06

1
@superluminary आप हमेशा अच्छे डिजाइनरों और छोटी परियोजनाओं के साथ काम करने के लिए पर्याप्त भाग्यशाली रहे हैं, और शायद केवल एक मौजूदा प्रणाली में छोटे बदलाव किए हैं। कोई भी बड़ी परियोजना (कई प्रोग्रामिंग टीमों के साथ, उदाहरण के लिए), कोई भी परियोजना जो एक नई प्रणाली स्थापित करती है, या किसी मौजूदा प्रणाली में बड़े बदलाव की आवश्यकता होती है, या कम अनुभवी डेवलपर्स के साथ किसी भी परियोजना को डिजाइन चरण की आवश्यकता होती है। और यहां तक ​​कि आपके साधारण मामले में, आपको अभी भी कार्यात्मक (कार्यात्मक) फीचर आवश्यकताओं को डिजाइन आवश्यकताओं (वे सिस्टम को कैसे प्रभावित करते हैं) में अनुवाद करने की आवश्यकता है।
मछली पालन

10

समान फ़ाइलों को संपादित करना अपने आप में कोई समस्या नहीं है। यह केवल एक समस्या है अगर आप एक ही फ़ंक्शन को दो अलग-अलग काम करने के लिए संपादित करते हैं।

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

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

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

लेकिन सबसे अधिक संभावना है, आप इसे गलत करेंगे, और यह वह जगह है जहां अनुभव होता है। आप बस एक छोटा सा (या बहुत कुछ) विफल हो जाएंगे, समय के अनुमानों को गलत कर देंगे और आपकी परियोजना की तुलना में थोड़ा अधिक समय लगेगा। अगली बार आप बेहतर होंगे।

मैं केंट बेक द्वारा "एक्सट्रीम प्रोग्रामिंग" पढ़ने का सुझाव भी दूंगा। जब मैं एक प्रोजेक्ट मैनेजर बनने वाला था, तब महान पुस्तक ने मेरी मदद की।


1
यदि टीम के सदस्य एक-दूसरे से बात करते हैं, तो कभी-कभार संघर्ष (संस्करण नियंत्रण अर्थ में) आसानी से हल किया जा सकता है। दैनिक स्टैंड-अप मीटिंग इसकी मदद करती है।
जनवरी को जन हडेक

10

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

सुनिश्चित करें कि आप डेवलपर्स पर टीडीडी लागू करते हैं, यह गारंटी देने के लिए कि मॉड्यूल सभी व्यक्तिगत रूप से काम करते हैं।

आपको मेरे उदाहरण का एक उदाहरण देने के लिए:

मान लें कि आप अपने एक डेवलपर्स को SQL लकड़हारा बनाना चाहते हैं।

आप एक इंटरफ़ेस को परिभाषित करते हैं और अपने डेवलपर्स में से एक से पूछते हैं ( या यदि आप एजाइल का उपयोग कर रहे हैं तो एक कहानी बनाएं ) जिसे आप निम्नलिखित विनिर्देश के अनुसार SQL विशिष्ट लकड़हारा चाहते हैं:

interface ILogger
{
    void Log(string message, int level);
}

एक डेवलपर से मुझे जो उम्मीद है, वह निम्नलिखित है:

  1. लकड़हारा के लिए SQL विशिष्ट कार्यान्वयन

    class SqlLogger : ILogger
    {
        private readonly SqlLogRepository _logRepository;
    
        public SqlLogger(SqlLogRepository _logRepository)
        {
            this._logRepository = _logRepository;
        }
    
        public void Log(string message, int level)
        {
            _logRepository.CreateLog(message,level);
        }
    }
  2. कोई भी आश्रित कोड, जैसे कि कार्यान्वयन के लिए SqlLogRepository

  3. यूनिट या मॉक टेस्ट के आधार पर जो मांगा गया था। उपरोक्त मामले में एक मॉक टेस्ट (जहां हमारे पास अन्य बाहरी निर्भरताएं हैं), या यदि यह एक साधारण उपयोगिता फ़ंक्शन जैसे कि है String.ReverseCharacters(string input), तो मैं बस यूनिट परीक्षण देखना चाहूंगा जो कुछ अलग परिदृश्यों का परीक्षण करते हैं।

इस का मतलब है कि:

अब आप और आपकी टीम इस इंटरफ़ेस का उपयोग करके विकास जारी रख सकते हैं। जैसे

class SomeModuleThatUsesLogging
{
    private readonly ILogger logger;

    public SomeModuleThatUsesLogging(ILogger logger)
    {
        this.logger = logger;
    }

    public void DeleteFiles()
    {
        logger.Log("user deleted files",1);
    }
}

और यदि आपको SqlLoggerजगह होने से पहले अपना कोड चलाने की आवश्यकता है, तो आप सरल बना सकते हैं NullLogger:

class NullLogger : ILogger
{
    public void Log(string message, int level)
    {
    }
}

और इस तरह से आप इस बीच परीक्षण कर सकते हैं (मैं सुझाव निर्भरता इंजेक्शन के लिए एक ICO को देखने का सुझाव)

void Run()
{
    var someModuleThatUsesLogging = new SomeModuleThatUsesLogging(new NullLogger());
    someModuleThatUsesLogging.DeleteFiles();
}

सारांश

मुझे आपके प्रोजेक्ट के आकार का कोई पता नहीं है, लेकिन यह काफी चुनौतीपूर्ण काम हो सकता है और यदि आपने पहले कभी विकास का नेतृत्व नहीं किया है, तो मैं आपको सुझाव दूंगा कि आप इस कार्य को बहुत गंभीरता से लें और अगले कुछ हफ़्ते पढ़ने में बिताएँ सॉफ्टवेयर डिजाइन और अभिलेखीय पर कर सकते हैं। और अपने काम ( सॉफ्टवेयर गुणवत्ता आदि ) के बारे में बहुत पारदर्शी हो अन्यथा आप अपने आप को एक गहरी गड़बड़ी में पाएंगे कि आप नहीं जानते कि कैसे बाहर निकलना है।

मेरा यह भी सुझाव है कि आप डिज़ाइन और ऑब्जेक्ट ओरिएंटेड प्रतिमान पर पढ़ें। आप इस परियोजना के लिए OOP पर बहुत अधिक भरोसा करेंगे।


3
मैं आपके पहले पैराग्राफ से सहमत हूं, लेकिन दूसरे से असहमत हूं। TDD इस संदर्भ में संभावित रूप से एक उपयोगी उपकरण है, लेकिन यह कुछ भी गारंटी नहीं देता है, और निश्चित रूप से इसकी आवश्यकता नहीं है।
रॉबर्ट हार्वे

मुझे लगता है कि टीडीडी पर पैराग्राफ "मोक्स के साथ एक परीक्षण हार्नेस" के साथ कम किया जा सकता है ताकि लोग "कोड जो व्यक्तिगत रूप से संकलित न हों लेकिन एक साथ नहीं चलेंगे" लिख रहे हैं। टीडीडी एक डिजाइन तकनीक है, कुछ लेखक पहले से ही पेंसिल और कागज के साथ करने की कोशिश कर रहा था।
rwong

1
यह सिद्धांत में अच्छा है, लेकिन जब तक आप पूरे सिस्टम को पहले से निर्दिष्ट और समझ नहीं सकते, बिना बदलाव के यह काम नहीं कर सकता है। गैर-तकनीकी हितधारकों के साथ यह असंभव है। एकदम मेरे विचार।
superluminary

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

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

2

अन्य उत्तरों ने प्रोग्रामिंग पहलुओं के बारे में बात की है, लेकिन मैं सिर्फ कार्यक्रम प्रबंधन पहलू का उल्लेख करना चाहता था। मैं एक अस्वीकरण के साथ शुरू करूंगा: मैं एक प्रोग्राम मैनेजर नहीं हूं। मैंने कार्यक्रम प्रबंधन के लिए स्नातक स्तर पर एक पाठ्यक्रम लिया है और मेरे कार्य अनुभव में छोटी परियोजनाओं के लिए बोली लगाने के घंटे शामिल हैं जो आमतौर पर 500 घंटे से कम होते हैं और कभी भी 1000 घंटे से अधिक नहीं होते हैं।

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

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

ऐसा लगता है कि आप बहुत पहले से ही ऐसा कर रहे थे जहां तक ​​कलम और कागज चला जाता है, लेकिन मुझे हमेशा यह वास्तव में गैंट चार्ट को देखने में मददगार लगता है। कार्यों को देखते हुए क्रमिक रूप से वास्तव में मुझे यह सोचने के लिए मिलता है "रुको, क्या टास्क एक्स को वास्तव में कार्य वाई से पहले किया जाना है? (अब तक के मेरे अनुभव में, मुझे आश्चर्य हुआ है कि उत्तर वास्तव में 'नहीं' है)


1

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

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

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