In the last article, we discussed the disappointing fact that there is no silver bullet, no magical converter that will convert your 20 years of hand-crafted code, work-arounds and one-off solutions into a modern Visual FoxPro application. You're going to have to do it the hard way, as the E.F. Hutton commercial use to say, by earning it.
Since then, a number of folks have emailed me about alternatives to doing it the hard way. I'll discuss those at more length in an upcoming article.
In the meantime, let's look at what you've got to begin with.
The Question of Resources
So you're looking at a new development project. Because, after all, this is what an upgrade is – a new project. Do you have the resources necessary to undertake this project? Let's look at what they are.
First, of course, is your time. Even if you hire someone to do the entire upgrade, your expertise will be needed throughout the project. I've run into more than one developer whose day to day tornado precluded them from being involved on a regular basis.
Next will be the expertise to do the work, be that your own, someone on your staff, or an outside contractor.
And finally, money, because this isn't open source or kickstarter. You'll need to pay someone else or you'll need a stream of income while you are spending your own time.
“It's working just fine”
At this point, I've found that many folks resist the idea of spending appreciable resources to upgrade an application that is, essentially, working just fine (well, working 'good enough') right now. Yes, it's tough to dish out money for something that doesn't seem like it's going to do much for you.
I offer the analogy of a HQ building (and those of you out there who are 'software gardeners' are rolling your eyes...) Twenty years ago, you paid for a new HQ building, and at the time, it was state of the art. As your company grew, you made modifications to the building, at first the blue prints were updated, but over the years, as changes become urgent, more and more of those changes were done on the fly, and now there are no plans that reflect the current state of the building. And it's gotten long in the tooth. Things that broke weren't fixed, areas that aren't used were just blocked off, the plastic sheet to handle the roof leaks was never replaced, and so on. And then one day the government came by and hinted that maybe your building is out of compliance, and one day it's going to get shut down, without any warning.
As you've heard rumblings of this happening to other building owners, you're thinking that maybe you should make plans now, instead of being surprised. But there's always something more urgent to deal with at the moment, so nothing has been done.
You wish there was a magic bullet to fix your building problems, but, alas, you can't simply snap your fingers and fix the rusting girders and crumbling brick and mortar and holes in the roof. You're going to need to build a new building. Hopefully you'll be able to move some of the existing machinery to the new building, but you won't be able to tell until you do a thorough evaluation.
Have you put the money aside to pay for a new building? Or do you have the financial resources necessary to fund it? Sadly, most people haven't. Such as the developer who called me a couple of weeks ago, with a dozen FoxPro/DOS apps that he needs to move to VFP because his customer's machines aren't running FoxPro/DOS anymore. He actually *had* put some money aside to pay for the work, was still cautious, because he found that he spent most of his budget to buy VFP 9.
Where Does That Leave You?
So what are your choices?
A few people are out of luck. Their 1.x/2.x application is dying and they have no resources of any kind (time, money, expertise) to upgrade it. Darwin in action. Fortunately, those folks are few and far between.
A few more people will struggle along, gradually moving their systems to VFP, painfully, likely losing a few customers, but eventually getting the job done.
Most people, though, still have a window, if they act now. Either they've got a small budget and time, and with some mentoring and some late nights, will get their app upgraded, or they have the wherewithal to have someone do the heavy lifting and will be mentored on the technology transfer once the majority of the system has been upgraded.
The articles that follow are for those folks with the aforementioned window. I warn that there isn't a single upgrade path that will work for everyone; rather, I'll offer some pointers, and you can pick and choose according to what is applicable for your situation.
In the next article, I'll discuss how to inventory your current system in order to lay out a game plan for upgrading.
Naturally, if you can't wait, or if you already know you want a hand with upgrading your application, anywhere from occasional mentoring to full scale development, please contact me directly at whil /at/ whilhentzen.com.
Want to be informed when the next article is ready? Sign up on our new mailing list here. You'll be asked to confirm your being added to the list and then you're all set.