
Have you ever returned to your own code after six months, only to find it completely unreadable? Or have you ever fixed a bug in one part of your program, only to have two new, mysterious bugs pop up somewhere else? This is an incredibly common-and frustrating-part of...