- Who ?
- What ?
- When ?
- Where ?
- Why ?
Understanding Why is really good. I encourage it. But sometimes even the original programmers don't understand why something works, or doesn't work.
(Shhhh, don't tell them I let on. They like to pretend they understand everything.)
You'd be amazed at how often you can fix bugs without really understanding why they happen.