First of all, popularity doesn't say much when it comes to whether a question is on topic or not. Consider these questions:
They are all great! And there are a lot more! Why are these closed?
One less obvious reason is that these highly rated but off topic questions will keep generating lesser quality questions on similar topics. People will keep asking those, as long as they feel they are on topic, and it will be impossible to explain why their questions were closed when similar popular questions are open.
And of course the FAQ very clearly defines that on topic questions should be discussing topics that apply uniquely to programming:

The whole point of Stack Exchange is for questions to be expertly answer. Although the question in question is an extremely interesting one, I fail to see how it can be expertly answered by software developers. And even if one amongst us can expertly answer it, it still doesn't matter, because most of as aren't knowledgeable enough to verify if the answer is a good one.
The core question is:
I need a team who can learn to do things right autonomously, not just follow instructions. How does one correct a junior developer, but still encourage him to think for himself?
Can you tell me how this question is any different than this:
I need a team who can learn to do things right autonomously, not just follow instructions. How does one correct a junior member, but still encourage him to think for himself?