Software contracts - any ideas

i want to move a client onto a software maintanance contract
basic specs
1. VB and access
2. Metwork application
3. 12 users

does anyone have some samples on maitanance contracts and the layouts that is a norm in the industry ?

thanx allot

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

I could also be interessed to see that :)
Ohhh you're about to step in it!

Software maintenance is tricky.

With hardware you can base your costs on the fact that the IRS allows three year straight line depreciation of the system. This means that you have 36 months to recoup 100% of the cost or a little under 3% per month. Software is much harder to price out.

Next you'll need a formal SPR (Software Problem Report) mechanism. This is a form that the client must use to submit all problems on. It includes as much detail about the problem as possible, inputs, states, data, etc. and must indicate wether problem is reproducable. Additionally problem severity is noted. A typo on a report is much less of an issue than a "run time" error. Generally the contract will state various levels of response to different categories of problems.

Cat 1 - Run Time - Data Lost
Cat 2 - Run Time - No Data Loss
Cat 3 - Abnormal Operation - Incorrect Result
Cat 4 - Operational Difficulty/Enhancement
Cat 5 - Typo

Category 1 is a "drop everything and fix it!", cat 5 is "when we get to it."

Be careful about specifying response time. You should phrase it so that a "response" is returning their call/fax of SPR and NOT a statement about when it'll be fixed.

There are three competing parameters, cost, time, and quality. You can only promise any two. Since cost and quality are fixed, the time variable will be uncontrolled.

You also need to spell out if "maintenance" entitles them to new versions as they come out or if it simply applies to patches for the current release. Generally it's a "maintenance" if the first digit of the version doesn't change. It's an upgrade if you move from 3.x.x to 4.x.x

You need to spell out how many versions back you're going to support. If cust has V2.x.x and you're current product is V9, then you're not going to have the staff/skills/time to keep V2.x.x thru V7.x.x running. Cust needs to know that maint ends when they get, say, two major revs back unless they *pay* for upgrade to later version.

Network apps are especially tricky because there are so many outside forces that can "break" an app. Someone changing permissions somewhere can raise hell with your product. Now this falls into a grey area. If they change permissions policy and your app stops running is that *your* problem to fix? No, I wouldn't think so. But is customer going to expect you to *fix* it? Probably. You'll need to have it spelled out that *induced* problems will be billed at your *HIGHEST* rate.

You need to spell out what type of response the client can expect. They'll page you in the middle of the night while on your honeymoon if you don't make it clear! I got pulled out of a meeting with several state level officials because someone needed to press [Reset]. No, it wasn't a "crisis" and I had to clarify that to the the client/staff.

CraigLazarAuthor Commented:
Hi mark
Thanx for the input, so from the sounds of things u do not lik contracts ?


Not that I don't like them - they're a neccessary evil. But a *bad* contract can be worse than *NO* contract.

I've been in the business a lot of years and have seen contracts bankrupt a company when the marketing department promises more than engineering can deliver.

Software maintenance is like trying to nail jello. No matter how hard you try you just don't seem to be able to pin it down.

If a handshake won't do, all the contracts in the world won't help either.

Be careful what you put in a contract. They'll have the legal right to hold you to it.

For example, did you know that the legal definition of the word "software" includes the "documentation necessary for the normal operations"? Had a situation once where the "software" and document were going to be priced separately but the software development ate the entire budget and we had to produce the docs gratis! Not a good thing.

Especially when the customer has bought a site license and takes the term "necessary" to imply that he needs 200 copies! Hell, it cost us thousands to make 200 copies and punch and bind and cut and trim and add dividers and add covers and add backs. From that time forward we specified *ONE* bound copy and *ONE* copy master that the client is licensed to make as many additional copies for internal consumption as they like.

Don't scrimp. Hire a lawyer. If you can't afford a lawyer, you can't afford to sign the contract.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.