Why Application Failure Happens And How To Avoid It