This would be an interesting article to write. I’m not entirely sure if it can be written, however. I think if people—developers—had a clear grasp of why they created bugs then they would be in a position to do something about it. And yet, in spite of countless methodologies, millions of books, endless hours of seminars, we’re frankly no better today than we were decades ago.
People may point at NASA, but NASA’s solution, such as it is, is to scale back problems until they’re tiny, spec the hell out of them, and then write code. It’s extremely expensive, extremely slow, totally non-scalable—and there are still bugs at the end of it.