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