There are so many factors that go into a successful development team that it can seem like an impossible task. The technology and requirements seem to change daily, and there are always options for staff to move to another job. All that being said, there is a considerable value in keeping core staff in the team and creating long-term stability. This is not a goal that will just magically be accomplished. It takes some planning and effort as well as communication with the team.
A Career Path
One of the traits that all good developers share is a passion for advancing their career. It is important to recognize that career advancement is not just a title or higher pay. Both of those are important, if not critical. However, there is far more to a successful career path.
It may seem obvious, but the best among IT staff tend to the technical. They may advance to where they do not write code every day, but that does not mean they will not be technologists. There are managerial, mentor, and architect roles that can be very technical in day-to-day tasks. Thus, the career path you offer should be a steady growth towards scaling the skills of your best staff, not a choppy series of steps.
This approach does make titles sort of “fuzzy” in their application. That can be a challenge, but it does allow for a natural progression of skills, experience, and responsibilities. For example, There should be a lead role that is not a senior developer nor a manager. This provides a path into testing (and refining) management and leadership skills from a developer. The staff can progress without a trial by fire approach where they are thrown into a role 100% and without much support.
Perpetual Mentoring Everywhere
A good team starts at the top and carries through to the bottom a culture of nurture or mentoring. Every role must include a mentorship or teaching aspect. Thus, the team will have an internal drive to improve itself by improving every member. When you have this sort of environment you have one that is not only positive for the team, it also attracts the best from elsewhere.
The thing about an environment that fosters growth is that it is not easy to find. When a “guru” or “superstar” developer hears about a job that exists in this environment, they are immediately attracted to it. Of course, that creates a snowball effect where the team that builds itself draws those that desire to develop the team. Before you know it, you have an organization like Google or Amazon where everyone is knocking on your door to be a part of your story.
For better or worse, money is an important part of keeping core staff. You can be an incredible organization that does not pay very well. However, that will soon fade as the best on your team are lured away by better compensation. On the other hand, developers often like to stay where they are and avoid the “headaches” involved in moving to a new job.
This is where momentum works to your advantage. You do not have to be the best deal in town. A compensation plan and approach that shows your respect for the team members will offset that deficiency. Likewise, stay competitive in how you compensate staff and include some bonuses that factor in the savings associated with a stable team. I love the idea of retention bonuses that payout based on staying with the company for another year. This sort of plan can do wonders in keeping staff around for a while. Better yet, it often stops them from looking for another job based on cold calls. Yes, they will still leave a negative situation. They just will not be as likely to consider out-of-the-blue offers throughout the year as they will be steadily focused on the next bonus day.
In the same way, there should be regular reviews and raises. It is difficult to wait until a team member complains about their situation before acting. They may have already decided to leave no matter what your response whereas being proactive can win back a member before they are lost for good.
The bottom line in all of this is to value your team members. Show them the respect you have for them as people and workers on a regular basis. Make it evident that they are appreciated and that you desire them to grow as individuals, not just as a team. This goal can be achieved without spending much more money. However, it cannot be reached without being intentional about bringing forth the best from every member.