This is from a software development view, but I keep seeing this problem where the lead is promoted from a well performing individual. Leading a team is greatly different than shipping code so that drives the new leads to focus on learning how to manage that part of the process, usually leaving less time to work on the code. After a while there start to be a disconnect between the lead and the code base causing friction on performing as a developer. So why do we keep promoting the great coders to team leads where their output as a developer drops dramatically?