आप कैसे जानते हैं कि किसी विशेष परियोजना के कितने प्रोग्रामर को सफल होने की आवश्यकता है?
जिस कंपनी के लिए मैं काम करता हूं, वह क्लाइंट कंपनियों के लिए ऑर्डर पूरा करती है। हमने एक इन-हाउस वेयरहाउस मैनेजमेंट सिस्टम लिखा है जो स्थान आधारित इन्वेंट्री प्रबंधन, ऑर्डर प्रोसेसिंग, बिल-ऑफ-लेडिंग जनरेशन, इनवॉइसिंग, फ्रेट ऑडिटिंग और रिपोर्टिंग (शायद 50 रिपोर्ट) को संभालता है। इसमें दर्जनों अन्य छोटे फीचर्स के साथ बारकोड स्कैनिंग फंक्शन और एक क्लाइंट पोर्टल भी है। इसमें एक पूर्ण कर्मचारी टाइमक्लॉक भी शामिल है। यह क्विकबुक, यूपीएस और फेडएक्स के साथ एकीकृत है। यह कम से कम 50 ग्राहकों के लिए काम करता है जो उनकी कार्यक्षमता में थोड़ा अंतर रखते हैं। उदाहरण के लिए, हम ग्राहकों द्वारा भेजे जाने वाली फ़ाइलों से ऑर्डर आयात करते हैं, लेकिन प्रत्येक ग्राहक एक अलग फ़ाइल प्रारूप (csv, एक्सेल, फ्लैट फ़ाइल और वेब सेवाएँ) भेजता है, इसलिए हमारे पास एक दर्जन से अधिक ऑर्डर रूपांतरण विधियाँ सेटअप हैं। निर्यात एक ही कहानी है।
यह परियोजना हर दिन कोड की एक चौथाई मिलियन लाइनों के साथ जटिल और बढ़ती जटिलता में है। यह VB.NET कोड की लगभग 250,000 लाइनें, Ruby कोड की 6,200 लाइनें और PHP की शायद 5,000 लाइनें हैं। इसमें लगभग 200 टेबल के साथ MySQL डेटाबेस भी है।
दर्जनों ग्राहकों की लगातार बदलती आवश्यकताओं और अलग-अलग जरूरतों के कारण, कोड खुद ही बेहद खराब से अपेक्षाकृत अच्छे कोड की गुणवत्ता में बहुत भिन्न होता है।
वर्तमान में, इस परियोजना में केवल एक ही प्रोग्रामर है - स्वयं। मैं भी वर्तमान में 75 लोगों की कंपनी के लिए सभी उत्पाद समर्थन करता हूं। इसमें समस्या निवारण और नए क्लाइंट सेट करना और किसी भी नई सुविधाओं की आवश्यकता होती है। इसके अलावा, हम पूरी तरह से रेल पर आधारित 100% रूबी को फिर से लिखने की कोशिश कर रहे हैं। और हम अगले वर्ष के भीतर पूरी प्रणाली का विपणन करना चाहेंगे या अन्य कंपनियों द्वारा उपयोग किया जाएगा।
वर्तमान में, हमारे पास केवल एक प्रोग्रामर के रूप में ही है, लेकिन मुझे विश्वास नहीं है कि यह पर्याप्त है। क्या किसी के पास कोई सिफारिश है कि कितने प्रोग्रामर के पास इस परिमाण की परियोजना होनी चाहिए या हमें उस प्रश्न का उत्तर निर्धारित करने के बारे में कैसे जाना चाहिए? विशेष रूप से इस तथ्य को देखते हुए कि प्रबंधन अगले वर्ष तक उत्पाद को व्यावसायिक गुणवत्ता वाला बनाना चाहेगा?