This applies when building software (especially web apps) and also to real life!

From the spurious pundit: Picture Hanging.:


The key thing here is that there's a lot of stuff, from the detailed technical level to the long-range business level, that you just have to know. Your junior guy can't puzzle it out in advance, no matter how smart he is. It's not about being smart; it's just accumulating facts. You may have been working with them for so long that you've forgotten there ever was a time when you didn't understand them. But you have to learn to spell things out in detail, and make sure your junior folks are comfortable asking questions.