In a development team with a leader, should this leader be a line manager or is it better to separate the two roles?
How much admin/HR should a hands-on leader actually do before it becomes the responsibility of somebody else?
I'm an advocate of not having people reporting into other members of their immediate team. Having a line manager in the room can affect the honesty of things like retrospectives and it avoids some awkward situations (would you want to pair program with someone who just put you/you just put on performance review?).
At my place, we have a lead developers who provide technical leadership to the team they work in and managing developers who people outside of their immediate team report into for the career development aspects (and managing lead devs who do technical leadership for their team and line manage people outside it).
Added following question in comments:
People have regular catch ups with their line managers and I think it's helpful to be able to ask for advice about an issue within the team from someone who isn't emotionally involved in the problem.
I don't think most people really view it as an employee/employer relationship. It's more like having an impartial peer you can talk to about problems and development. Probably more accurate to call them mentors rather than line managers for the most part although they are expected to tackle issues like lateness/sickness where the team are unable to do so themselves.
Team Leaders and Line Managers are different depending on your organisation structure.
A Line Manager is generally used in a vertical structure with responsibility for direct supervision of line workers, in this case, developers. They duties such as scheduling, training, hiring, firing and writing performance evaluations.
A Team Leader works a lot closer with colleagues to provide motivation for team members. There may be some administrative duties like scheduling, but is generally not considered as a supervisor to colleagues.
I guess your question is more to do with developers fitting into either of these roles and where you want your better developers to be.
The more knowledgeable/senior developers would be more suited to the team leader role being able to provide technical consultation and also meaning they wouldn't have the burden of carrying out as many administrative duties as a line manager.
A lot depends on the ambitions of the "better" developers, whether they want to continue to do what they enjoy doing as developers or if they want to move into more administrative line manager role.
I couldn't find any reason why it is a good idea to separate the roles. In fact, most of the team leaders I know are members of the line organisation. If you think about it, the responsibilities of a leader is quite the same as the responsibilities of a line manager. For example: the general "well being" of the team members, technical and personal growing, motivation etc.
The leadership has nothing to do with "admin". So answering the question you need none, but then you can an ask, "what do I need then?" Unfortunately, that question is too general, and I cannot answer.