2009-01-29 12 views
6

आप अपने प्रोजेक्ट लाइफ चक्र का प्रबंधन कैसे करते हैं?आप अपने प्रोजेक्ट लाइफ चक्र का प्रबंधन कैसे करते हैं?

उदाहरण के लिए: क्या आप टेम्पलेट से शुरू करते हैं? क्या आप एसवीएन जैसे आधिकारिक स्रोत के रूप में संस्करण का उपयोग करते हैं? क्या आप परियोजनाओं को संग्रहित करते हैं, यदि ऐसा है तो कब और कैसे? जब एक परियोजना को पुनर्जीवित किया जाता है (काम फिर से शुरू होता है), यह कैसे संभाला जाता है? क्या आप आईआईएस साइट्स, डीबी, आर्काइव, लॉन्च इत्यादि जैसी चीजों को करने के लिए स्वचालित स्क्रिप्ट का उपयोग करते हैं?

विशेष रुचि के विकास के विभिन्न बिंदुओं पर कई परियोजनाओं का प्रबंधन है।

उत्तर

6

विकास: हम एक टेम्पलेट के साथ शुरू नहीं है क्योंकि दुनिया पर्याप्त त्वरित टेम्पलेट रखरखाव एक पूर्णकालिक काम करने के लिए बदल जाता है। हम सभी को एक ही आईडीई (ग्रहण) का उपयोग करने के लिए प्रोत्साहित करते हैं, ताकि वे एक दूसरे को अपने वातावरण के साथ मदद कर सकें।

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

संस्करण: हालांकि हमने एसवीएन की कोशिश की, फिर भी हमने सीवीएस पर स्विच किया क्योंकि यह हमारी आवश्यकताओं को बेहतर तरीके से फिट करता है और ठीक काम करता है।

बैकअप: हमारे GForge सर्वर, हमारी सभी परियोजनाओं और स्रोत कोड का आवास, एक वीएमवेयर EX सर्वर पर चल रहा है। वीएम स्तर पर प्रतिदिन बैकअप किया जाता है और हम वीएम स्नैपशॉट्स बनाते हैं यदि हमें लगता है कि हमें किसी कारण से अधिक बार बहाल करने की आवश्यकता है।

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

लगभग सभी परियोजनाएं मेवेन का उपयोग करके बनाई गई हैं, जो हमारे डेवलपर्स के लिए जीवन को आसान बनाती है। Ususally एक परियोजनाओं को पुनर्जीवित केवल कुछ ही कदम लेता है: (extssh ग्रहण में बनाया गया है)

  • परियोजना (डिफ़ॉल्ट "चेक आउट" विकल्प) चेक बाहर SSH पर

    • डाउनलोड सीवीएस को ग्रहण
    • कनेक्ट
    • "मैवेन ग्रहण" चलाएं और ग्रहण
    • ग्रहण में unittests चलाएं यह देखने के लिए कि सबकुछ काम कर रहा है या नहीं।

    बनाता है: हमारी सभी परियोजनाएं एक अलग निर्माण सर्वर पर बनाई गई हैं। हर सुबह बिल्ड सर्वर पूरी तरह से निर्माण करता है और सीवीएस टैग करता है अगर सभी unittests सफल होते हैं। दिन के दौरान, घंटे के निर्माण किए जाते हैं और जब विफलता होती है तो टीम को स्वचालित रूप से एक ईमेल प्राप्त होता है। आम तौर पर हम प्रति परियोजना एक बिल्ड सर्वर का उपयोग करते हैं, और यह एक साधारण लंटबिड सर्वर (लिनक्स, टोमकैट, लंटबिल्ड) है।

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

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

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

    बजट प्रोजेक्ट के लिए कुछ बाहरी स्प्रेडशीट्स के अतिरिक्त, पूरे परियोजना जीवनशैली को GForge में प्रबंधित, दस्तावेज और ट्रैक किया जाता है क्योंकि यह आसान है।

    Wether आपके पास एक एकीकृत प्रोजेक्ट सर्वर है या नहीं, मुझे लगता है कि सिस्टम होना वास्तव में महत्वपूर्ण है। यह आपको डेवलपर्स को खोए बिना परियोजनाओं के बीच स्विच करने में सक्षम बनाता है। यह समय बचाता है। विशेष रूप से जब कोई ग्राहक पुराने सॉफ्टवेयर पर संशोधन के लिए 2 या 3 वर्षों के बाद आपके पास वापस आता है (हाँ, ऐसा होता है)।

    हमारे द्वारा उपयोग की जाने वाली सभी सामग्री ओपन सोर्स है (आप GForge के ओपन सोर्स कांटे का भी उपयोग कर सकते हैं)। यह उपकरण में नहीं है, इस तरह आप उनका उपयोग करते हैं।

  • 2

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

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

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

    +0

    धन्यवाद एली। अच्छा बिंदु भी, मुझे काम की प्रकृति में थोड़ा सा जोड़ने दो। – ccook

    1

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

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

    +0

    क्या यह एक आम फ़ाइल साझा है? प्रबंधन में svn के साथ समस्या है? – ccook

    +0

    हाँ हमारे पास एक सबवर्जन सर्वर है। अगर प्रबंधन को एक फ़ाइल की आवश्यकता होती है जिसे हमने उन्हें ईमेल किया है। –

    +0

    ठीक है शांत। हमारा प्रबंधन सीधे फाइलों के साथ काम करता है इसलिए हमें डॉक्स को svn से बाहर रखना होगा:/ – ccook

    1

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

    सभी दस्तावेजों एक रिलीज से संबंधित के लिए के रूप में - नियोजन & संसाधन चादरों से विनिर्देशों, testcases, उपयोगकर्ता और तकनीकी मैनुअल सॉफ्टवेयर के लिए करने के लिए हम आदि बना सकते हैं - हम उन्हें एक शेयरप्वाइंट पोर्टल साइट में संग्रहीत करते हैं। इस शेयरपॉइंट साइट के फायदे यह है कि उपयोगकर्ताओं को वेबसाइट के माध्यम से पहुंच है (इसलिए आपके भंडार में प्रबंधन पहुंच प्रदान करने की कोई आवश्यकता नहीं है ;-), आप पहुंच अधिकारों पर बारीकी से नियंत्रण कर सकते हैं, और आप वर्जनिंग चालू कर सकते हैं। हम यह टैग करने के लिए टैगिंग का भी उपयोग करते हैं कि कोई दस्तावेज़ किसी विशिष्ट रिलीज (उदा। सर्विस पैक xy) या उत्पाद से संबंधित है या यह सामान्य रूप से वैध है या नहीं।

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

    +0

    +1 तोड़ने के लिए। आप नैन स्क्रिप्ट कैसे पा सकते हैं? – ccook

    +0

    हमने वास्तव में नैन स्क्रिप्ट्स को स्वयं लिखा है (कुछ उदाहरण ऑनलाइन हैं, और इन्हें हमारी विशेष जरूरतों को अपनाना डेवलपर्स के लिए बहुत कठिन नहीं था)। – ISW

    +0

    क्षमा करें, मेरा मतलब है, उनके साथ आपका अनुभव कैसा रहा। लगता है जैसे यह अच्छा था हालांकि? – ccook

    संबंधित मुद्दे