I’ve seen a lot of times throughout my career, the request from clients to have a full senior development team on their software projects. While I can perfectly understand, from their point of view why this would seem as a good idea to have, honestly, I don’t feel that it is in their best interest, and I also saw it fail more times than it worked.
Now don’t get me wrong, there are project where you absolutely need this, but in regular projects a mixed skill level team would perform better in my opinion.
One of the issues you see hindering the very beginning of the project is a ton of strong opinions regarding tools used, third party packages, project structuring, heck even coding styles, etc leading to decisions done slower or not in a constructive manner.
Let’s not forget that somebody needs to take out the trash from time to time, and what I mean by that is, projects don’t always have exciting and complex tasks for every senior to work optimally. This can leads to situations where simple tasks are carried out by seniors who, in time, become less motivated and they can choose to leave the project. I take a motivated middle developer over an unmotivated senior every day of the week.
Developers don’t tend to like being on the same project for a very long time and in multi-year projects you might be better of ramping up middle developers, who in a few years can take over the more tough tasks from seniors, and you can let seniors pursue more interesting projects.
I was the technical lead on a project that ran for 5+ years having 20+ developers in multiple different feature teams. I managed to convince the client to try out having mixed skill level teams, which not only balanced their monthly budget, but also helped us with recruitment, migration, and improvement of several colleagues.
Happy New Year!