Julie Lerman's DevLife

DevLife Part I [May 2005 - March 2007]

My Links

Blog Stats

News

A blog for DevSource.com.

This blog was originally part of the blogs.ziffdavis.com site from May 2005 through June 2007 when the blog was moved to the Movable Type blog engine and hosted at blog.devsource.com/devlife.
The original blog was eventually shut down and I was given the posts so that I could host them on my own site.


Archives

Letting go of a legacy application

Legacy applications are old. But how old? I tend to think of my VB6 apps as legacy. But heck, they are modern compared to another app I have hanging around. I have avoided accepting the fact that I was working with an application that was at least 16 years old. The oldest file I can find in there is from early 1991.

But I have finally given it up and replaced it with a shiny new WinForms 2.0 application.

I originally wrote this app for a client to solve a very difficult data processing and reporting problem that they had. It is still a complex problem, in fact. The program was used to create a series of about 300 reports each month and required twisting data in a very strange way and presenting it in what was nearly an impossible fashion. But there's no such thing as impossible!

Shortly after I delivered the application, they asked if I would be interested in using it myself to do the data entry and produce the reports. I had created the app using a new developer tool called FoxPro 2.0 (that 0 is not a typo!). I accepted their proposal. A few years later I was still doing the project and ported the application to the new fangled Windows platform using FoxPro 2.6. All these years later, I am still doing this project for them every month and thanks to backwards compatibility, still able to run the FoxPro Windows app. although with fast processors, a problem with the 16-bit platform required me to reboot occasionally for FoxPro to run.

Over the years as my client's business model changed, I put a lot of bandaids on this program to accommodate their requirements. That is a lot of years and a whole lotta bandaids. Eventually, I was doing too much manual work in the data and having to follow checklists of reminders prior to printing the report because there were a lot of places to make mistakes in this semi-manual process. It had become a house of cards.

Also over these years, I left FoxPro to learn Visual Basic and evolved from VB4 to VB5, VB6, .NET and now Visual Studio 2005 (and beyond). I frequently considered rewriting the app but continued to weigh the amount of unbillable time it would take to do this and always opted out.

But the house of cards was getting wobbly and even my client was starting to notice. So in November, after considering giving up this project and client that had become a part of my life, I committed to writing a new app for myself in Visual Studio 2005. As soon as I accepted my fate, I was already excited and quite relieved!

It was insanely time consuming. I was a demanding client! But in the long run it was more than worth it and I keep kicking myself for not doing it sooner  - like 10 years ago!

I took advantage of a lot of the databinding tools in VS2005 - something I don't normally do when building applications for my clients and this definitely helped speed up the development process.

But what has been golden is that the work I perform monthly now for my client is worry free. The application does what it needs to do, it is very flexible to accommodate the ever changing needs of my client (which I have learned quite well over the years). Another huge benefit of moving into the modern age is I can now print digital reports and email them to my client. The old process required PRN formatted printing direclty to my laser printer - which meant a lot of paper, an extra day for mailing the reports and a whole lot of headaches.

The biggest lesson for me though was that of letting go of a legacy application and seeing the value (despite the cost) of building the new application. It was a cost I was personally able to absorb because, unlike a normal business, what it cost me was my own personal time - nights and weekends, skiing and hiking too. It also meant that I was not spending time getting a competitive edge learning a lot of the new technologies that are coming out of Microsoft and I am paying for that now as well.

But still, it is worth it. Because of the long term relationship, I didn't want to abandon my client but I did not want to lose their confidence and faith that I had very deservedly earned over the years. I have also become so much more agile for this client. They can request quick changes and reprints; there are no more emergencies that are made devastating by the day we had to pad in for shipping the reports. Most of all, I have coded away all of the places that I could easily make errors in the data entry.

The hardest part of this was facing up to the fact that it had to be done. I can't imagine running a large business with a huge enterprise application and having to make the same decision. I had a huge advantage because I did not have to deal with a learning curve... I was already very competent and confident with Visual Studio 2005.

posted on Friday, February 23, 2007 4:47 PM