As a manager of a ColdFusion centric development team I've had to deal with the shortage of talented CF developers on numerous occasions, and when speaking to other managers of CF teams they tell of similar stories.
It's not so much that there's a shortage of CF developers, but can't seem to find ones that are at the level I'm looking for. And typically you'll come across folks who had the title of Sr. Developers, but their advanced skills are lacking and earned the title from sheer tenure.
The problem is there is no catalyst for many CF developers to push their skills higher.
ColdFusion's awesomeness is based on how easily and fast you can create applications, but an unfortunate negative drawback of that is from a business perspective if the application works and does what it needs, there's no driving factor to do anything beyond that.
That may change slowly over time as new jobs often require advanced skills thus providing that driving factor to keep ones skills current in order to have marketable value.
However in the meantime, my perspective is there's a big skills gap in the talent pool range which I'd summarize as:
- 0.1% Architect level
- 2% Sr. level
- 5% Mid-level (advanced intermediate)
- 92.9% Mediocre level
So what I don't want is that mediocre level, and this situation has often lead businesses to bite the bullet and migrate from CF to a platform that has a larger talent pool to draw from.
BUT! With all that being said, ColdFusion does allow a small team to output at the level of much larger teams that use different technologies. I've personally seen at various companies where it was decided to redo a CF application into Java or .NET, and how much more time and resources it took vs. the CF team. This is a significant advantage if you are a small team, and advantages are hard to come by in the land of business.
Is it the only factor? Of course not, and does that advantage outweigh the disadvantages? Or do other options provide a greater advantage? In our case, ColdFusion continues to be the most advantageous option – but we need talent to leverage it.
So if you can't find them, make them.
Instead of banging our heads against the wall over the problem, why not contribute to the solution?
We're at a point in our company's evolution where we're not dependent on having an entire team of rock stars. So the strategy I'm employing is to take someone who has raw talent, brain power, and enthusiasm and grow them into these various levels that are hard to find.
The key is you need just enough (true) Sr. level and/or Architect level guys that can provide direction, guidance, and mentoring to these inexperienced (but eager to grow) staff. To really put the cherry on the top, if you couple that with basic development standards and modern MVC frameworks you now have an environment where junior and intermediate level staff can be successful.