प्रिय साथी प्रोग्रामर,
जब अकादमिक शोध शामिल हो तो आप "सॉफ्टवेयर प्लानिंग" कैसे करते हैं? और, एक साइड नोट पर, आप अपने बॉस को कैसे मनाते हैं कि सॉफ्टवेयर लिखना घर बनाने जैसा नहीं है और यह उपन्यास लिखने जैसा है ?
गोर विवरण नीचे हैं।
मैं एक रिसर्च में काम करने वाली एक छोटी सी देव टीम का प्रभारी हूं। हमने एक दिन सार्वजनिक होने के उद्देश्य से एक सॉफ्टवेयर विकसित करना शुरू किया (यानी बेचो और पैसा कमाओ)। ऐसा सॉफ्टवेयर अन्य बातों के अलावा, कम से कम दो स्वतंत्र अनुसंधान लाइनों पर निर्भर करता है: यानी, कम से कम दो पीएचडी हैं। उम्मीद है कि उम्मीदवारों, एक दिन हम क्या जरूरत के एक कार्यान्वयन के साथ बाहर आ जाएगा।
मुख्य सॉफ्टवेयर अन्य, अधिक ठोस संसाधनों पर भी निर्भर करता है जिन्हें हम डेवलपर्स के रूप में देख सकते हैं: ग्राफिक्स रेंडरिंग, सॉफ्ट बॉडीज विरूपण, आदि।
मेरे मालिक ने मुझे पूरी परियोजना के विनिर्देशों, आवश्यकताओं और एक खूनी गैन्ट चार्ट को लिखने के लिए कहा। इस तथ्य का सामना करते हुए कि मेरे पास अनुसंधान भाग के बारे में कोई सुराग नहीं है, और इस तरह के अनुसंधान सॉफ्टवेयर के लिए मौलिक है, उन्होंने कहा "धारणाएं बनाएं।" तर्क की स्पष्टता के लिए, वह एक प्रोफेसर हैं जिनके पीएच.डी. छात्रों को हमारे द्वारा आवश्यक अनुसंधान के साथ आना चाहिए। और वह एक कड़ाई से इंजीनियरिंग पृष्ठभूमि से आता है: पहले सब कुछ की योजना बनाएं, नीचे विनिर्देशों को लिखें और उसके बाद ही कोड लिखें कि "यह अंतिम भाग है"।
अब मैं क्या कर रहा हूँ:
- मैंने सुविधाओं में उत्पाद को तोड़ दिया; प्रत्येक 'फीचर' एक वास्तविक उत्पाद है;
- प्रत्येक सुविधा पिछले एक के ऊपर बनाई गई है;
- एक बार जब एक फीचर (ए) में एक कार्यशील प्रोटोटाइप होता है तो टीम अगली सुविधा (बी) पर काम करना शुरू कर सकती है, जबकि ए के लिए क्यूए किया जा रहा है (यदि पैसा अनुमति देता है, तो और लोगों को इसमें लाया जा सकता है, आदि);
- अनुसंधान पर निर्भर करने वाली विशेषताएं अंतिम रूप से आ जाएंगी: तब तक, उम्मीद है, अनुसंधान भाग पूरा हो जाएगा ( जब अभी भी एक बड़ा सवाल है);
इसके अलावा, मैंने कुछ महीनों में 'संस्करण 1.0 ' के विकास के लिए SCRUM का उपयोग करने के लिए टीम निर्धारित की । यह समय सीमा उचित मान्यताओं के आधार पर निर्धारित की जा सकती है: हमने सभी आवश्यक सुविधाओं को सूचीबद्ध किया, हमने अपनी उपलब्धता गिना, और हमने एक उचित अनुमान दिया।
तो मेरे सवाल, फिर से हैं:
- मैं अपने मालिक को कैसे खुश कर सकता हूं जबकि एक ही समय में दरवाजे के बाहर कुछ मिलता है?
- हम कुछ डेवलपर के लिए विनिर्देश कैसे लिखते हैं -डेवलपर्स के पास कोई सुराग नहीं है कि क्या यह करना संभव है या नहीं? (हमने अभी भी यह तय नहीं किया है कि कुछ कार्यों के लिए किन पुस्तकालयों का उपयोग करना है? हम ऐसा तब करेंगे जब हमें इसकी आवश्यकता होगी)
- मुझे इस बात की आवश्यकता कैसे है, यह देखते हुए कि अभी तक कोई ग्राहक नहीं हैं और न ही निवेशक, बस बहुत सारे हित और वादे हैं?
- मुझे दुनिया में शांति कैसे मिलेगी?
मुझे यकीन है कि कम से कम मेरे एक प्रश्न का उत्तर दिया जाएगा :)
पीएस: मैं यह गुमनाम रूप से लिख रहा हूं क्योंकि एक संभावित निवेशक को खोजा जा सकता है। आशा है आप समझ जाएंगे। हालाँकि मुझे कहना होगा कि मुझे 'सच्चाई को छुपाने' की यह मानसिकता पसंद नहीं है: इस कार्यक्रम से कई लोगों को लाभ होगा, और इस बारे में खुलकर बात नहीं कर पाना (मेरे नाम और मेरी प्रतिष्ठा से जुड़ी) सेंसरशिप जैसा लगता है। लेकिन अफसोस, मुझे अब आपके सुझावों की परवाह है।