मैं वर्तमान में अपने "सॉफ़्टवेयर डेवलपमेंट" अध्ययन के लिए अपने स्नातक स्तर पर काम कर रहा हूं, जिसमें मुझे किसी बाहरी कंपनी में व्यक्तिगत रूप से जटिल सॉफ़्टवेयर विकसित करना है। यह सभी संरचित तरीके से किए जाने की जरूरत है, सभी संबंधित दस्तावेजों को बनाते हुए।
इस परियोजना के लिए मैंने IEEE मानक दस्तावेजों के साथ काम करने के लिए चुना है: सॉफ़्टवेयर आवश्यकताएँ दस्तावेज़ (SRS), सॉफ़्टवेयर आर्किटेक्चर दस्तावेज़ (SAD) और सॉफ़्टवेयर डिज़ाइन दस्तावेज़ (SDD)। हालांकि स्कूल में अन्यथा सिखाया जाता है, इस परियोजना के लिए मैंने विकास के बाद एसडीडी बनाने के लिए चुना है (पहले के बजाय)। मेरा तर्क है:
जिस कंपनी में मैं अपनी इंटर्नशिप करता हूं, उसने मुझे प्रायोगिक तरीके से, आवश्यकताओं के एक निश्चित सेट को संतुष्ट करते हुए, एक जटिल सॉफ्टवेयर बनाने का निर्देश दिया है। स्वतंत्रता की मात्रा के कारण जो उन्होंने मुझे परियोजना की परिभाषा में दिया है, लगभग कुछ भी पहले से निश्चित नहीं है, और विकास प्रक्रिया में प्रयोग करते समय सबसे अच्छा सामना किया जा सकता है। इसके अतिरिक्त, मैं एक व्यक्तिगत तरीके से सॉफ्टवेयर बना रहा हूं , इससे कंपनी के किसी और को पहले से इस सॉफ्टवेयर डिजाइन को बनाने का मुझे कोई लाभ नहीं होगा। पहले से इसे करने में मुझे बाद में इसे बदलने के लिए बहुत समय लगेगा, क्योंकि मैं निश्चित हो सकता हूं कि परियोजना में अनिश्चितताओं के साथ, जो डिजाइन मैं पहले से बनाता हूं उसे बहुत बदलना होगा । यह मुझे उल्टा लगता है।
क्या विकास के बाद एसडीडी बनाने का यह अच्छा औचित्य है? यदि नहीं, तो क्या इसके लिए कोई अच्छा औचित्य होगा?
संपादित करें: बाद में एसडीडी बनाने का कारण भविष्य के डेवलपर्स के लिए परियोजना पर जारी रहेगा। मैं अपनी स्नातक अवधि में पूरी परियोजना को समाप्त करने में सक्षम नहीं होने जा रहा हूं, इसलिए अन्य डेवलपर्स को वर्तमान कोडबेस पर जारी रखना होगा।