Jon Seeley wrote
I think it is all a matter of perspective. To some people SQL 2000 is legacy, to others it isn't. Simply put, however,
it is 10 years old and, as mentioned, in software terms that is ancient. Put it into perspective -- that's like still running Windows 98 or MAC OS 8.5.1...
...
...We can't support old technology forever or it will hurt forward momentum. I say get with the times, we aren't partying like its 1999 anymore.
Trading Costs
Jon nailed it, in my opinion. Those who refuse to move along and keep within one very major revision of the current version are simply trading one cost for another. Instead of taking on the cost and effort of upgrading up front, they're implicitly agreeing to accept severe limitations (no new modules available) and the cost of maintenance later down the road (pay a developer to write a custom legacy-compatable module just for you). Such maintanance can also come at an inflated price: what happens when you need a new module but can't find a developer who remembers the quirks and limitations of SQL2000 (and/or IE5, etc). Sure, a decent developer will be able to figure things out.....eventually. How much extra are you willing to pay to have that developer spend part of their billable hours re-training his/herself in aging software?
Example: Good contractors in my area charge $110+ per hour. If one contractor working to produce a legacy-compatable product spent the equivalent of one day (8 hours) getting refreshed / troubleshooting items specific to SQL2000 that would be $880. SQL2005 Standard Edition retails at $885. Why pay the contracter for an extra day to refresh on SQL2000 (and then walk away with the knowledge I paid for) when I could spend the same to get a SQL2005 license? Upgrading isn't free, of course (time = money), but every effort saved due to having SQL2005 over SQL2000 knocks down the cost of the upgrade until it eventually (hopefully) starts making me money thanks to future costs avoided.
Let's take the premise beyond SQL Server. Compare writing a DB-connected, web-aware app in VB6 versus VB.Net 2.x+. There's a huge advantage in simplicity and stability under VB.Net over VB6. Such an advantage should translate into shorter dev cycles and, therefore, less paid to that contractor for custom development. But, wait -- perhaps the features you need doesn't require custom dev because the new version of your software already has it. If so, perhaps you won't need to hire that contractor at all...
Consider DNN:
- How much more work to add a custom "deny role" permission setting to a module under DNN 3.x or 4.x compared to 5.x where this feature is included by default?
- How much work is required under DNN 3.x or 4.x to create a custom module to allow non-admins to manage user accounts compared to 5.x where the feature is included by default?
- What about developing a MS AJAX-enabled app under DNN 3.x versus DNN 4.5+? It's simple enough to include the MS AJAX library under 3.x once you know how but under 4.5+ you don't even have to spend the time to learn how. In addition, under 4.5+ you're more likely to end up with a module that conforms to DNN's MS AJAX-implementation standards and "plays well with others" therefore requiring less maintenance development down the road. Time saved = money saved.
Would you make the same "developers should support legacy software environments" argument and demand that DNN module developers write and support two versions of every module in order to support both the legacy DotNet 1.1 framework as well as 2.x+? As Jon and others have already said, "you have to draw the line somewhere".
Opportunity Costs
I don't think anyone has a problem with the idea that, if you want new functionality in your legacy DNN site, the very first step is for you to UPGRADE your copy of DNN. Why should this be different with regards to SQL Server? Ahhh....because SQL Server is not free. It's perfectly understandable that you'd try to avoid the cost of a new SQL license(s) if possible. By not upgrading, though, you accept the "opportunity cost" of not being able to always take advantage of newer software solutions and, potentially, having to pay much extra in terms of having legacy-compatable solutions developed instead of picking up some $80 module on SnowCovered.
Cost managers must recognize and accept that tech won't wait -- not as long as ten years, at least. You must strike a good balance between "upgrade costs" and "opportunity costs". Where is the break-even line between the two? If you are truly concerned with managing costs, you have to draw it somewhere...
-mamlin