The "Solo Developer" does not work anymore. "Is a good developer, but... he can't work in a team..." is no longer good enough. Even I think, that the practices that works well for you but are not shared among the team are not good practices anymore.
Given this premise, it surprises me that there are lot of discussions about if the technical practices works for each one of us. This is doesn't matter... What matters is whether the practices work well for the team. Each one should have the expertise, the capability, or the eager to learn the practices, but only to use the practices as a team.
Lot of the XP (extreme programming) practices are oriented toward the creation of high performance teams that share the knowledge about the business and the system. Specially the "Collective Ownership", the "Pair Programming" or nowadays the "Mob Programming", force the collaboration, the communication and the empathy. And for sure without this soft skills these practices won't work well.
IMHO this profession don't require neither Rock Stars, nor Ninjas, nor wizards... Require professional teams (a minimum of two), that know the tools and the practices and that continuously try to improve (learning new ways of using the tools, improving the practices or even discovering new ways of work).