Another virtue of procedure abstraction is that you can debug your programs more easily. By dividing a program into small, independently debuggable pieces, you exploit the powerful divide-and-conquer problem-solving heuristic.