A process of identifying the underlying cause of a problem, not just the symptoms.
Software development