જ્યારે પણ સોફ્ટવેરમાં ફેરફાર કરવામાં આવે છે દરેક ફેરફારના કંઈક કારણ હોય છે જેવા કે કોઈ ભૂલ સુધારવી, કોઈ કાર્યપ્રણાલીમાં વધારો કરવો, કદાચ પર્ફોર્મન્સ વધારવી વગેરે.
ஒவ்வொரு முறையும் நாம் ஒரு மென்பொருளை பல்வேறு காரணங்களால் மாற்றம் செய்யப்படலாம், ஒரு பிழையை சரிசெய்யலாம், செயல்பாட்டை மேம்படுத்தலாம், ஒருவேளை அது அதை ஒரு சிறந்த செயல்திறனாக மாற்றலாம்.