but so far it works. The software I'm working on that is.
I made the deadline but only just; I was still running the installer builder and testing the installs at midnight Monday night my time. Well I was trying to test the installs but that's nearly impossible without virgin hardware. Unfortunately I have neither Virtual PC (or VMWare) here let alone the resources to run it so I had to resort to blowing away my product directory and registry key and then run the installer and see what happens. Fortunately we have a very limited audience for the software and better than 99% of the time the installer is really doing an upgrade.
It all looked good so I did a final build and went to bed. Today, Tuesday, it was crunch time. Front up with the new installer on a memory stick, install it on an oven and see what happens.
One of the things I wrote in January whilst here in the Philippines was a 'version switcher'. A utility that knows how to create a zipped backup of all the vital settings and files and can switch between version X and version Y. It would have been much easier to write if the filesystem was transacted but it isn't so we do it the hard way. The whole point being that if something goes wrong it will undo filesystem and registry changes and you end up with a consistent and workable installation. I may write a CodeProject article about it.
The version switcher (officially it's the Version Manager) has been an invaluable tool. In just a month it's saved my bum more than once. Strange then that some parts of management puzzled over whether the time I spent writing it would have been better spent on other things. My direct manager didn't puzzle; he understood instantly so I let him argue the point with the luddites. He's worth his weight in gold!
It turns out that so far I haven't needed to switch back to a previous version. But it's early days yet. There's an oven full of devices going through test as I write; tomorrow I get to deal with the backend folks who will find at least one thing to complain about.
Almost all the work I've done for the past month has been writing code to record things we never before needed to record. Major database revision and lots of new code to update records. Most galling to have someone in your face demanding to know why we didn't record that piece of data. 'Because we never needed to.' You're about as convinced as I am about how good that answer was. Yet it's true. We really didn't (and from our point of view still don't) need to know who started a session and who ended it. The backend folk do. So I had to add new code to capture and store that information. And much more information than that.
But the backend folk only care about the Philippines facility. They don't care about the facilities in Houston or Dallas or Hiji or Nice. I do. The new stuff that the Philippines are demanding is meaningless to the other locations. In my more mischevious moments I've thought of writing only to the Philippines demands and when the other locations complain about more steps blaming it on the Philippines.
But I really can't do that, tempting though the thought is. So we now have a new concept; production ovens and engineering ovens.
Did that satisfy the Philippines? If you reckon it did I have a great deal on bridges that you might be interested in!
'You mean that we have to run the configuration utility to set production for every oven?'
Uh huh. No matter that it's a one off setting that never needs to be revisited. I reckon these folk would complain if you hanged them with a new rope!
I'm definitely not being paid enough to do this job!