A Comprehensive Software Maintenance Guide: Prevent it From Turning Antique