-
हम कल्पना करते हैं कि software development एक साफ़-सुथरे और व्यवस्थित flow का पालन करेगा
- design document लिखा जाता है, और छोटे बदलावों को PR के ज़रिए roll out करके feature implement किए जाते हैं
- Git history साफ़ और सुव्यवस्थित दिखती है
- लेकिन वास्तविकता अलग है
-
design document और वास्तविक implementation के बीच अंतर
- design document को ज्यों का त्यों implement करना एक भ्रम है
- coding शुरू करते ही design document की सामग्री बदलनी पड़ती है
- योजनाएँ दुश्मन के संपर्क में आते ही टिक नहीं पातीं
-
नई design methodology: coding में डूबकर काम करना
- draft PR का उपयोग करके prototype implement किया जाता है
- शुरुआत में feedback लेकर approach को समायोजित किया जाता है
- draft PR को ऐतिहासिक design ideas के documentation के रूप में रखा जाता है
- draft PR को पूरी तरह छोड़ देने के लिए तैयार रहा जाता है
- draft PR से धीरे-धीरे PR को चरणबद्ध तरीके से आगे बढ़ाया जाता है
- हर PR को चरणबद्ध तरीके से test किया जाता है और उसकी robustness को मजबूत किया जाता है
-
परिपक्वता का महत्व
- लिखे गए code ideas को छोड़ सकने की क्षमता महत्वपूर्ण है
- code lines नहीं, बल्कि organizational knowledge का हस्तांतरण अधिक महत्वपूर्ण है
- महत्वपूर्ण हिस्सों पर शुरुआत में ही alignment कर लिया जाता है ताकि prototype work बेकार न जाए
-
documentation के रूप में PR का उपयोग कैसे करें
- PR, developers के लिए documentation के सबसे अच्छे रूपों में से एक है
- PR किसी खास समय की स्थिति को दर्शाने वाला एक historical artifact है
- design document अक्सर वास्तविकता से अलग जानकारी देता है
-
prototype का महत्व
- एक prototype, 1000 design documents से अधिक मूल्यवान है
- बदलाव को आगे बढ़ाना है तो दस्तावेज़ों से नहीं, code से करना चाहिए
- संगठन को prototype को जवाब नहीं, बल्कि सवाल के रूप में देखना चाहिए
-
design document की उपयोगिता
- विभिन्न stakeholders के feedback को व्यवस्थित करने और archive करने में उपयोगी है
- जब कोई idea बहुत conceptual या long-term हो, तब उपयोगी है
- जब coding की तुलना में लिखकर idea व्यक्त करना अधिक efficient हो, तब उपयोगी है
- जब संगठन में पहला solution छोड़ देने का discipline न हो, तब उपयोगी है
- यह ऐसा वातावरण देता है जहाँ junior staff, senior developers के ideas पर सुरक्षित तरीके से सवाल पूछ सकते हैं
-
design document का गलत उपयोग
- कम अनुभवी developers के लिए process को धीमा करने के लिए इसका उपयोग किया जाता है
- documentation के रूप में उपयोग होता है, लेकिन जल्दी outdated हो जाता है
- यह हर design problem को हल करने की कोशिश करता है, जबकि असली समस्याएँ coding के दौरान सामने आती हैं
-
अगर टीम में discipline हो, तो hacking design से कहीं अधिक efficient है
- संगठन के भीतर ऐसा discipline बनाने की सिफारिश की जाती है
- अंततः code, शब्दों से ज़्यादा ताकत रखता है
1 टिप्पणियां
Hacker News राय
प्रोटोटाइपिंग design प्रक्रिया का एक महत्वपूर्ण हिस्सा है, और समस्या को परिभाषित करना तथा समाधान को स्पष्ट करना ज़रूरी है
लिखना समस्या को explore करने में उपयोगी है, और ऐसा अनुभव रहा है कि लगा था समस्या समझ ली है, लेकिन लिखते समय नए सवाल पैदा हुए
project को deadline के भीतर पूरा करने के लिए temporary solution इस्तेमाल करने का अनुभव रहा है
design document की सबसे बड़ी समस्या यह है कि उसे कोई पढ़ता ही नहीं
code और design पर मिलने वाले feedback में बड़ा अंतर होता है
अगर बहुत सारा code लिखकर यह देखना ही job description है कि क्या काम करता है, तो GPT उसे ज़्यादा तेज़ और सस्ते में replace कर सकता है
बहुत कम लोग यह कल्पना करते हैं कि software development किसी साफ़-सुथरे और व्यवस्थित flow का पालन करता है
ऐसे मामले देखे हैं जहाँ code Jenga की तरह जम जाता है और फिर कोई उसे छूना नहीं चाहता
design decisions को document करने के लिए लगातार चलने वाले comment thread का उपयोग करने वाली प्रक्रिया पसंद है
इस approach पर विचार कर रहे हैं, और सबसे बुरे मामले में बहुत समय बर्बाद हो सकता है