There has been quite a bit of discussion online lately about which version of SQL Server new applications should target. Members of the SQL Server product group were saying they can't see any reason why new applications should use anything less than SQL Server 2016 as a real base line.
I'd love to see any new application using the absolute latest version of SQL Server. Unlike the bad old days where you needed to wait for a service pack before using the product, the best tested version of SQL Server is invariably the one that's just released. (And there aren't service packs any more anyway).
However, I spend a lot of time in software houses and I know only too well why they are still working with older versions. There are two aspects to this:
- Which version that they'll use features from
- Which version they'll support customers using
The first one is easy. They only want to write code once, and so even though they might be using a later version, they'll keep their code to the earliest version that they support ie: even if an ISV (Independent Software Vendor) is supporting SQL Server 2017, they might have a restriction on using any features later than SQL Server 2012 because they want to be able to deploy on any version from 2012 to 2017.
The second one is tough. After they answer the first question, many then get really slack and don't put the effort in to test and support later versions. I understand that testing is costly and the more versions that you support, the worse this gets.
This is the true pain point though, as unless they do that, their customers will be stuck on those old versions. The problem is multiplied when the customer has to support applications from many vendors concurrently.
There is no way to fix this except pushing the application vendors to test later versions. As well as direct customer pressure, I'd love to see Microsoft reaching out about this more.