For many developers, debugging is about making problems go away, not understanding the system. This fundamental misalignment perverts every aspect of the process and leads to: fixes that don't actually fix the problem (or worse, introduce new ones) bug reports that are unceremoniously closed out as "works for me" or "can't reproduce" or "will not fix" frustrated users who are told to "try restarting" or "log out and log back in" As bad as these are,...