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