हर बार जब हम किसी सॉफ़्टवेयर को बदलते हैं तो बदलाव की आवश्यकता विभिन्न कारणों से हो सकती है, हो सकता है कि बग को ठीक करना हो, हो सकता है कि कार्यक्षमता को बढ़ाना हो, हो सकता है कि यह एक बेहतर प्रदर्शन के लिए हो इत्यादि।