𝗪𝗵𝘆 𝗘𝘃𝗲𝗿𝘆 𝗟𝗶𝗯𝗿𝗮𝗿𝘆 𝗡𝗲𝗲𝗱𝘀 𝗮 𝗥𝗲𝗮𝗹 𝗣𝗿𝗼𝗷𝗲𝗰𝘁

कई लाइब्रेरी लेखक एक गलती करते हैं। उन्हें लगता है कि उदाहरण (examples) काफी हैं।

उदाहरण काफी नहीं हैं।

उदाहरण यह साबित करते हैं कि कोई फीचर काम करता है। असली प्रोजेक्ट यह साबित करते हैं कि एक लाइब्रेरी काम करती है। ये दोनों अलग चीजें हैं।

मैं कई डेमो एप्लिकेशन बनाता हूँ। मैं सैंपल वेबसाइट्स, APIs और कंपोनेंट्स बनाता हूँ। डेमो में सब कुछ एकदम सही दिखता है। डेमो 'हैप्पी पाथ' (happy path) दिखाते हैं। वे एक आदर्श वर्कफ़्लो (ideal workflow) दिखाते हैं।

डेमो नियंत्रित वातावरण (controlled environments) होते हैं। आर्किटेक्चर सरल होता है। आवश्यकताएं (requirements) अनुमानित रहती हैं।

असली प्रोजेक्ट अलग होते हैं।

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

असली प्रोजेक्ट लाते हैं:

  • सख्त समय सीमा (Tight deadlines)
  • बदलती आवश्यकताएं (Changing requirements)
  • जटिल लेआउट (Complex layouts)
  • एज केसेस (Edge cases)
  • मानवीय गलतियाँ (Human mistakes)

यहीं पर एक लाइब्रेरी अपनी असली ताकत दिखाती है। यह अपनी असली कमजोरी भी दिखाती है। एक लाइब्रेरी दबाव में खुद को प्रकट करती है, डेमो में नहीं।

असली प्रोजेक्ट आपकी धारणाओं (assumptions) को उजागर करते हैं। कोई विचार कागज़ पर बहुत शानदार लग सकता है। विकास (development) के दौरान यह सही लग सकता है। फिर वास्तविकता सामने आती है।

एक वर्कफ़्लो अजीब लग सकता है। एक कॉन्फ़िगरेशन दोहराव वाला (repetitive) लग सकता है। एक API अप्राकृतिक लग सकता है। आपका डिज़ाइन गलत नहीं है, लेकिन यह अभी तक वास्तविकता से नहीं टकराया है।

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

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

उपयोगकर्ताओं को इन चीज़ों की परवाह होती है:

  • रुकावट (Friction)
  • स्पष्टता (Clarity)
  • काम पूरा करना (Getting work done)

असली चीज़ें बनाने से आपके सवाल बदल जाते हैं। आप यह पूछना बंद कर देते हैं कि "हमें कौन से फीचर्स जोड़ने चाहिए?" इसके बजाय, आप पूछते हैं:

  • यह वर्कफ़्लो अजीब क्यों लग रहा है?
  • मैं बार-बार एक ही चीज़ क्यों कर रहा हूँ?
  • इसमें इतना समय क्यों लगा?

इन समस्याओं को हल करना किसी भी ब्रेनस्टॉर्मिंग सेशन (brainstorming session) की तुलना में बेहतर सॉफ़्टवेयर बनाता है।

हर लाइब्रेरी को एक असली प्रोजेक्ट की ज़रूरत होती है। यह प्रोजेक्ट मार्केटिंग के लिए नहीं है। यह एक परखने की जगह (proving ground) है। यह लाइब्रेरी को वास्तविक समस्याओं को हल करने के लिए मजबूर करता है। यह आपके उपयोगकर्ताओं से पहले कमियों को ढूंढ लेता है।

लक्ष्य यह साबित करना नहीं है कि आपकी लाइब्रेरी एकदम सही है। लक्ष्य अपनी लाइब्रेरी को बेहतर बनाने का एक तरीका बनाना है।

Source: https://dev.to/stinklewinks/why-every-library-needs-a-real-project-1ae7