My last post discussed migrating to a new technology stack as part of extending the life of a software system. Next, I'll explore people considerations. The first topic is skills related to the technology stack. My next post will discuss the role of domain experience. Finally, I'll attempt to tie it all together with a summary post.
Chances are your current team possesses skills to evolve and maintain the existing system. Unfortunately, these may not be the technical skills needed by the new technology stack. This may be a source of fear among the team. While there are no easy solutions, here are some thoughts:
- Get expertise in the new technology stack
The most effective way I've seen this done is to hire additional people to supplement the team. Find people who know the new technology well and have demonstrated its use in bringing to market solutions that have some matching characteristics to your product.
You need people with experience, otherwise you will end up with the old solution implemented in new technology - not at all what you intend.Your goal is to quickly apply best practices with the new technology. Consultants have their place, but in this situation I find that nothing beats employees who are fully dedicated to the project.
- Commit to trainingFor those who want to, provide training in the new technology. It's OK if some want to stay with the older stack. it will be around for a while and you will need to maintain it. However, show people that you are willing to invest in their future and they will be more likely to stay with you through the transition.
In addition to training, integrate new employees with existing teams to increase the pace of learning. This will create one team, demonstrate by example how to apply the new tech stack, and allow new employees exposure to existing rationale, business rules, and architecture.
Understand that for some, they will equate their value to their existing skills. My next post will address this directly.