Team balance is a topic which is often ignored when setting up IT teams. I see too many companies trying to hire only the best of the best super geek developers and not think of the longevity of their system and how it will be supported. If you are not an IT business be careful of hiring the super geek.
Now I can imagine my above statement may be controversial but hear me out. The way I see it is you get two types of developers.
The Super Geek
They are passionate about coding and spend much of their free time researching new technologies and frameworks. They love to start projects and hate to support them. Generally they are job hoppers and don’t stay at companies for more than two to three years. You want these guys to design and build your software but don’t want them to support it.
The Stable Developer
They are often interested in working with new frameworks but are generally content with what they have. They generally stick around in companies for long periods of time and like stability. While they may be good coders you wont get a cutting edge system out of them.
A balance of these two roles is critically important for your business. It is almost a guarantee that when your project goes live you will have most of your geeks complaining about support and they will most likely leave your team. It is often better to rely on external consultants for the super geek roles. This allows the geek to move on to the next best thing when development is complete. Another plus is that if they know they will be moving on they will focus on supportability in the design phase.
The Stable Developer is the permanent hire. They should be on the project from the beginning and should be constantly reminded that they are going to have to support the system in production. Have regular meetings with them asking them how they will handle outages and issues.
Estimating the ratio of these two roles is quite complex but I think a safe rule would be one super geek for every two stable developers.
Another aspect to look at is technical leadership. One of the tech leads responsibilities would be to define how the system will be supported. They need to look at how the system will be monitored and turn around time on issues. They also need to make sure that the systems are built in such a way that new features can be added easily.
It is often best to not hire someone as a tech lead but to rather wait for the natural leader to emerge. In many cases teams are assembled with leads assigned but it soon becomes clear they are not the natural leader in the team. IT people are smart and can self organize, try to rely on this to find your leader.
Think hard about your team setup and be sure to build a team which can support your system far into the future.