1

We have two different 'suites' of software: the windows-side software and the firmware. And, unfortunately, only certain versions of the windows-side software work with certain versions of the firmware.

For example, if a customer calls up with firmware version 10 we need an easy way for everyone (techs, developers, secretaries, etc) to know what this certain firmware works only with versions 12, 13, 14, and 15 of the windows software.

We have a wiki page just listing the versions and it worked fine, but there are enough 'hiccups' of people not following the process that we needs something a bit more forceful.

We have mercurial as a versioning system, but I can't see how this would be helpful for this problem (we are fine with forcing everyone to install hg).

Any ideas of programs / setups / anything that will help us alleviate the problem?

EDIT: So far most of the discussion is what I can do with the code from now on. I'm working on fixing that, too, but what can we do about all the previous releases where I can't go back and change any code? Thanks everyone for your help so far! Very appreciated!

DanTheMan
  • 3,207
  • 2
  • 19
  • 40
  • The easiest thing to do would be to make the Windows application check if one is running a compatible firmware revision? That, or maybe (may not apply to the situation) force versioning by using auto-update. – ChristopheD Jan 13 '11 at 22:49
  • Yes, that's be fine, but I can't go back, merge a change, and re-release all this software, which (I believe) both of these suggestions force me to do. – DanTheMan Jan 13 '11 at 22:53

4 Answers4

1

To add to ChristopheD's comment, one way would be to make the software check the compatibility:

  • either through Internet (to download the latest updated list of compatible firmware and see if one of those version is present on the local computer)
  • or through a simple local text file if no WAN connection is available (which is easier to communicate and update than a full application release)
Community
  • 1
  • 1
VonC
  • 1,042,979
  • 435
  • 3,649
  • 4,283
  • Yeah, long term I definitely realize this. I just inherited this mess and am trying to clean it up! I'm getting the 'low hanging fuit' first, I guess. – DanTheMan Jan 14 '11 at 11:22
1

You might take a look at ClickOnce deployment. It allows more advanced configurations such as minimal versions. The deployment server might be on the internet or on the intranet.

I do think that you will have to change the implementation to solve this problem anyway. You cannot force an update (if you could that would be very virus-like)

Emond Erno
  • 48,121
  • 11
  • 77
  • 106
1

I suddenly thought of this.

Think in the case of your software developed in .NET, and as well as the .NET framework (various versions). Maybe you want to follow that.

The client's host may be installed with firmware version 10 and 11; but your application requires firmware version 12. so your installer will download and install version 12.

However if your application requires firmware version 10, and the installed version is 12, maybe version 12 will also contain files from the previous versions (non-conflicting) and thus allowing the application (which requires version 10) to run from version 12.

mauris
  • 39,624
  • 14
  • 92
  • 128
0

I hate to answer my own question, but I wanted to mark something as the answer (it's ruining my perfect score!):

All that we did (and it ended up mostly fixing this problem) is rearranging the wiki so that if you wanted a windows version, you had to select which firmware you were using (and vice versa). I guess people ignore text enough, but forcing them to click on something was enough to get them to think.

DanTheMan
  • 3,207
  • 2
  • 19
  • 40