Across my career, I’ve seen many managers and executives promote and press for IT groups to consider alternative technologies. The mass media has often promoted new platforms and languages as a more efficient way to build software. Some of their claims might be true, but I think there’s a much bigger factor than technology in how well your software is written.
Your employees’ skills are probably the most important influence on the quality of your systems. The technology doesn’t matter if the staff doesn’t understand it. I think it’s even more important to be sure that you can replace your staff. People will come and go in your organization.
I was reading about the development of RavenDB, which is a another platform. It’s written in C#, and the maintainer of the project was asked about moving to F#. His answer, which I found fascinating, was about the supply of F# programmers, both in numbers and cost. There is a lot of debate in the comments, and I find it interesting how differently many people see the world with regards to this issue.
I think about this as we look at NoSQL platforms, or even other RDBMSes. How easy would it be to dramatically port your software to another data store? Probably not easy, and not inexpensive. The time for training and rewriting code would be very expensive, so much so that it’s often not worth the effort. However the more esoteric your choice of platform, the more difficult it can be to find staff that can even manage your system.
I don’t think any of the main RDBMSes have a shortage of talented people, but I do think that it can be hard to find employees in some of the NoSQL systems. While I think most smart people could learn a new system, it has to be worth it to your organization to pay someone to learn a new skill.