I find that in software development, and also in life, people learn best within the context of painful experiences. I’m not suggesting that software development mentors go out of their way to create painful experiences for their teams. On the contrary, just start listening. It doesn’t take very long to identify pain points within a team. Equipping teams to solve their own problems is drastically more effective than teaching people the right way to think. When I teach large groups I often describe my points as hooks or link where they can go back and expand their understanding. This large-scale map is essential so teams have a shared road map. But this is rarely enough.