I think the advice can be more general than just "make a training program", too, because the point is that you can't stick a junior next to a senior and hope knowledge will transfer by osmosis. That's lazy management. Instead, responsibilities should be clear ("Bob will spend 4 hours a week mentoring a junior") and employee strengths should be factored in ("Steve prefers not to mentor, but knows the software internals very well and will spend some time improving documentation for Bob").
I don't think "4 hours mentoring per week" works well. From my experience some weeks you need way more and some weeks way less. I would much prefer if I would get evaluated by the progress of the people I am mentoring.