views:

253

answers:

8

There are clients of mine who are content with their VB6 and SQL 2000 applications that I have written them many moons ago. The applications run fine, require some maintenance, some bug fixes from time to time but really run OK for the client. There is no reason in their mind to upgrade (or have my rewrite these in the current versions).

Some of my clients have even had me add on to the code, new features and one has had me develop an entirely new product for them - in VB6. Their request, against my recommendation not to.

My question is, as this may come up again soon, do I start to charge them more for writing software with older technologies? What about maintaining existing software? Access 2000, VB6, SQL Server 2000, even the first versions of Dot-Net as some examples of some of my smallest clients who are perfectly happy and dont wish to pay for new versions written in current technologies.

+2  A: 

Generally speaking, charge them in accordance with the value of your work to their business.

I would agree though, that if they insist on keeping older versions, then the maintenance charges they incur will have to increase. This may also give them the nudge they need to upgrade.

Galwegian
I dont want to lose these clients but to keep working in the older environments also hinders my ability, career-wise, to move forward. Would you agree, then, that the value of providing a service for older technologies increases with time?
Optimal Solutions
Yes, I would agree with that. But it is incumbent upon you to ensure that your client(s) understands the full implications of keeping the older software and why you must increase maintenance charges.
Galwegian
Cobol programmers were charging a premium right before Y2K. When your technology is actually considered obsolete, you can definitely charge for "being hindered".
Steve Moyer
@Galwegian: I have done that and they seem to understand. It is my assumption that they are trying to squeeze out as much time from the software as possible - which I do understand. Maybe time to find NEW clients and move along..
Optimal Solutions
@Steve Moyer: I was doing that for a while, in COBOL. Rates have come back down and you'd be surprised at how much COBOL work there is at large financial institutions out there. Thanks for the reply..
Optimal Solutions
@Optimal - If your software solves a business problem for your client, then they *will* be back to you when a) it breaks, or b) they need additional features.
Galwegian
@Galwegian: There is no question that they come back.. the question is how to move them to upgrade so that I dont have to spend my time back in the "past".. Right now its not a major issue but I see it becoming one as the more VB6 work I do, the less VB2008 work I may do.
Optimal Solutions
@Optimal - offer them a price for redevelopment that looks quite good compared to the 'spiraling maintenance projections'.
Galwegian
A: 

You should charge your clients as much as they'll pay such that you are able to continue to bill for a sufficient number of hours per week.

You are a business and need to consider this as a profit optimization function. If you can bill $200 per hour, but only get 10 hours of work a week, or you can bill $100 and get 20 hours of work per week, which would you pick?

It's pretty common for consultants whose work-load is too large to raise their prices as a means of eliminating some of those hours.

Steve Moyer
I know a few attorneys, and the use this approach. They often request clients to come in prepared because in the end its cheaper for the client to come in with as much documentation and homework done, rather than having them do it at $350/hr. It also weeds out clients who probably shouldnt be there.
Optimal Solutions
+1  A: 

I would keep charging your normal (hourly?) rate if I were you. They're sticking with those technologies to save money. It doesn't cost you more to work in those technologies that you already know. If you can't come up with a good reason for their business to switch to newer technology, then let them keep using what works for them.

You can learn new technologies yourself by working for different clients part time, or on your own. New employers don't only look at what bleeding edge tech you know, they also look at how you save money for your employer.

Bill the Lizard
I see your point, and generally I agree. However, as I asked Galwegian - wouldnt the value of providing assistance with older technologies rise with time? There is a cost to maintain the older tech on your dev machines, a cost to your career if you're stuck working with the old and not the new...?
Optimal Solutions
He said it does - he's saying that it's hindering his career.
ConcernedOfTunbridgeWells
I wouldn't say it's career-hindering if it's his smaller clients (as he said). He's still getting exposed to new tech with other clients. It doesn't cost him more (hourly) to work in older technologies unless they're so old (COBOL, Fortran) that they're a nuisance.
Bill the Lizard
+1  A: 

I've encountered the exact scenario you describe here.

My personal resolution of it was to charge them my normal hourly (+ inflation year on year) for any development in it, but I have also told them that eventually a version of windows will come out on which the applications will fail to work due to deprecated features being removed and at that stage they will have to pay for a full redevelopment of the product.

They are happy with this situation, and so am I.

In your case I would probably do the same, but perhaps charge them a small premium due to the fact that you will need to keep the old ides and versions of the database server around to allow you to test in the same environment that they are still using.

Interesting take.. thank you.
Optimal Solutions
+4  A: 

Of course you can only charge what your work is worth, but pricing yourself is an economic decision for you as well -- there is an opportunity cost for you spending time working on older technologies, since they have a shorter remaining life span.

Working in newer technologies is not only more productive (in most cases) but also better for your career in the long term. If you spend a year working on VB6, you need to charge more than if you spent that year working on WPF, since at the end of the year you may have a longer "bench time" to bring yourself up to date, and you may miss out on better paying opportunities because of working with the older tech.

Guy Starbuck
+1  A: 

Depending on how complex the projects are you might want to suggest that in the long run maintaining the VB client application will cost them more (In hours of work) than allowing you to rewrite the application.

That said for a sufficiently complex codebase it can take a very long time to rewrite it so it wont be worth your time or their money. We were in this situation at my last employer where we had a legacy VB6 and C++ application that we just maintained because it was too big and complex to rewrite.

Omar Kooheji
"for a sufficiently complex codebase it can take a very long time to rewrite" This is probably true in one of my cases. And I fully understand that for my client. I just dont want to do VB forever and it is beginning to feel as I may, unless I seek new work from new clients, and will probably do so
Optimal Solutions
+2  A: 

It really depends on what your future aspirations entail and how comfortable you feel working in VB6 personally.

You could continue working on older technologies, which might take away time from other opportunities in newer technologies. So you might increase your fees to reflect this risk or if you feel this inhibits your growth professionally.

On the other hand, VB6 is reaching certain support milestones and is slowly being phased out by Microsoft. This might mean an opportunity to offer lucrative maintenance services for those unwilling to migrate to newer languages.

Additionally, what do you like doing the most? Do you like developing or do you like maintaining code? Your prices should reflect what you enjoy and what you don't enjoy, if only to incentivate getting more of the projects you're interested in. Plus I've always found it useful to receive a bonus for doing jobs which I find distasteful. The client is always free to find someone cheaper if they feel the rates are unfair.

This of course assumes you don't need the job and have other possibilities lined up.

And as others have said, your rates should reflect the value you bring with your efforts while trying to maximize your profits.

Esteban Brenes
A: 

Also consider the situation in terms of that overused phrase "win-win".

From the client's perspective, keeping the old technology may be a win, because it's in place, working, debugged, etc.

Most of what we communicate with clients is on their terms, i.e. what makes the deal a win for them.

But if working in old technologies is too much of a loss for you, it's prudent and necessary for you to consider that fact, and adjust your business relationships accordingly. Raising your rates for those projects may be part of that adjustment.

Clients work with you because you help them win, but you can only do so if you also take care of your own business needs. If you neglect those too long, you may begin to resent the client, taper off working for them, etc.

It's better to share these facts with the client than to keep them a secret. The client can then choose to hire someone else, pay a little more for work on the old technology, or move to a new technology, depending on the situation.

Adam Leffert