I go for a blend of #1 and #2, but the problem with #1 is that it cannot solve the problem alone, and the problem with #2 is that many many people resist being educated ("I wouldn't have to understand a crash log if you just did your job and programmed right!/I don't have time to do this, this is your job/Not everyone has a degree, you know") or are incapable of understanding ("you said it crashed because both IDs were 45, but I made them both 46 and it crashed the same way!/"I made one of the IDs 348954894589, why does it still crash?").