views:

120

answers:

7

My company has a desktop app originally developed for Windows XP. The original programmer has since been fired (fired with extreme prejudice I might add). I have fixed the app various times but overall try to avoid it, it is a mess and the only real way to fix it is to completely rewrite it, which could take a year.

We have been trying to "forget" about this app, and instead steer clients towards our web version, which is more up to date, easier to maintain, easier to extend, and WAY easier to support. Most clients agree, the web version is just better all around.

However we have one client that insists on using the desktop app. The app required a little duct tape to get working on Vista, but now completely breaks on Windows 7. I'm not even sure WHAT all the fixes are to get it working on Win7 (the current time estimate stands at "miracle") but after both installing the RELEASE build, and running the DEBUG build from Visual Studio, the app has errors on nearly every user action, and from what I can see from a high level test run, none of them are related.

Since Windows 7 did not exist when this app was developed, is my company really expected to make all the required changes to make it function as "smoothly" as it did on XP?

EDIT: Management wants to know "What is the industry norm for supporting new OS's?" because I dont really have a good answer for that one either.

+5  A: 

Obvious question, sorry, have you tried http://www.microsoft.com/windows/virtual-pc/download.aspx

I was under the impression that running it in "XP SP3 Compatibility Mode" was the same thing. As a friend just pointed out to me, this is not the case, I will give this a try.
Neil N
+1  A: 

That's a question for you and your customer. If they are worth enough to you, yes, if not no and cut them loose.

High Performance Mark
+1  A: 

Windows 7 XP mode will be your best bet here.

http://www.microsoft.com/windows/virtual-pc/download.aspx

lol took to long to post this but yeah support it to run under XP mode, otherwise it isn't worth the cost to support developing a new app. If he wants to continue to run it put it in XP Mode.

videos as well

http://www.microsoft.com/windows/virtual-pc/support/default.aspx

Aduljr
Videos really helped.
Neil N
+1  A: 

Just a thought: "Since Windows 7 did not exist" is not a good reason to crash on Windows 7. I as a customer expect an app to run flawlessly on Windows 7, if it ran flawlessly on Windows XP. That you don't support new Windows 7 features is fine, but crashing usually means that there is something inherently wrong (like writing to a file in the program directory - you shouldn't have done that in Windows XP, and on Windows Vista and later, you're stopped even on home systems). For the few cases where an app has an incompatibility, I'll expect it to be fixed.

This was my thought as a customer. Here comes my developer view:

So, no you're not required to make the changes to make it run on Windows 7. You should have written the program so that it works on Windows 7 in the first place, even if it was written for Windows XP. That said, I'd expect, even though you said they aren't, that the errors are all related, like writing to a log file in the application directory or loading a 32 bit DLL when compiled for Any CPU, running on 64 bit Windows. Windows 7 is almost everywhere compatible with Windows XP.

Anyway. If it is really important to run on Windows 7, tell the customer to run the application in Windows XP Mode, available for Professsional and greater, because that thing has been added especially for cases where someone (i.e. a company) relies on Windows XP software that is not compatible with Windows 7, for whatever reason. So while it's not great, it seems that a lot of custom software doesn't run on Windows 7 natively. Especially if the app has a successor and is not supported anymore.

Or, well. You could create an application that runs your web application in a WebBrowser control and tell the client that it's the new desktop version. Maybe he just doesn't want to open a browser to use your app.

OregonGhost
If I could go back to the "should have's" I "Should have" not hired the guy in the first place. Interview processes have been modified to prevent another one like him from being hired in.
Neil N
@Neil N: While that's true, you (or rather your management) asked "What is the industry norm for supporting new OS's?" - and the industry norm is (or, again, *should be*) that an application written **properly** for Windows XP will not crash on Windows 7. That your interview process has been improved for this is a great thing though :)
OregonGhost
Right, and that's part of the problem I am facing. We can't exactly tell the client "We can't support Win7 because we coded the app wrong in the first place" I think mgmnt was looking for an escape by possibly falling back on some industry norm regarding breaking changes in new OS's
Neil N
Guess you're right. We had a problem with a .NET application - it was written without considering 64 bit Windows, knowing though that it will take years before it would be used on Vista or later (it's a custom network management application for building automation system integrators, with service technicians having either Windows XP or Windows 2000). It loads native 32 bit components, crashing if the app itself is jitted to x64. Luckily I discovered this some time ago and changed it to build only to x86 for the next release. But then, the application will be supported for years to come.
OregonGhost
+3  A: 

My personal perception (as a user, former IT specialist, and developer in a fairly specialized market):

If it's a product that you're still selling and supporting, then in general, customers may expect you to support new operating systems within a reasonable time frame. (The definition of "reasonable time frame" depends on your customers - a more specialized market, or customers who are slower to upgrade OS'es, means you can take longer; a more commoditized market, or more bleeding edge customers, means you may not have long at all.)

If you can work it out with your customers, and if you're in a more specialized market (where you face less mass market competition), then you may be able to get away with postponing support for new OS'es for quite a while. (For example, we never got any real demand for Vista support, and I'm certain there are still IE6-only web apps out there.) However, lagging for too long may run the risk of making your company look unprofessional or second-rate. (That at least was always my profession when I was working in IT and had to support out-of-date apps. Non-technical customers could easily have different perceptions.)

Regarding your specific issues, as others said, Windows 7 XP mode is a great idea.

Josh Kelley
+1  A: 

Yes, it is reasonable for the customer to expect you to support your product on later versions of Windows. It is also reasonable for your company to decide it doesn't want to support the product any more, at the risk of losing customers.

But it doesn't really matter what the industry norm is, does it? You either need to convince this customer to switch to the web version, make your product work on Windows 7, or abandon this customer.

Christopher Barber
+4  A: 

Of course, every case is different. But I would imagine it would depend mostly on whether or not the company wanted to continue selling/supporting the product.

For example, even though StarCraft was released 12 years ago, if Windows 7 came out and StarCraft didn't work on it, I imagine Blizzard would fix it. Why? Because it's still selling! Doesn't matter that it's old, if you want to keep your customers happy and continue getting new customers, you'll fix it.

On the other hand, some companies simply decide to abandon a product after a while, if it no longer makes sense to support or sell them. For example, Microsoft recently decided to discontinue MS Money. If you have MS Money already you can continue to use it, but if MS came out with a new version of Windows (Windows 8?) and your old copy of MS Money didn't work, you'd probably be SOL. They're just not interested in it anymore.

In this particular case, you're selling your client a desktop product that they are redistributing to their customers. (You didn't say that in your question, but I know that to be true). If their customers can't use the product with minimal effort, the product is useless to them. The consumers downloading this product WILL gradually move to Windows 7, so for this program to continue to be useful to your client, you would need to update it. So the question you really need to ask is: "is refusing to update this program worth angering this client?".

However, I'm not sure if you have a support agreement with your client. If your question is "are we obligated to upgrade this program to Windows 7 compatibility even though we didn't sign a contract stating that we would and they aren't paying us to", then legally I'd say the answer is no. If you do have a support agreement, the specific wording of that agreement prevails. Most likely though, if you don't have a contract that states that you will keep the app compatible with new OSes, you probably aren't obligated to do so.

Hint: I suggest specifing which platforms and OS versions your product will run on in your contract!

IANAL, TINLA, etc.

Joshua Carmody
+1 for StarCraft reference ;)
Neil N
StarCraft is the oldest program that I know of that you can still walk into just about any software store and buy.
Joshua Carmody