Best practices regarding backing up maintenance programming

I have a customer who lost some programming I did. It was all on the customer's production workstation and only a very old copy was backed up on the server. The workstation crashed and they didn't not ask me before they wiped the drive and reloaded windows. Now, a month after I submitted the invoice they are claiming that I should have had a backup copy on my own and don't want to pay it. The code is work for hire, its not my copyright, so I don't think I have a duty to have my own copy, (although I wish I had). I am not sure I am even technically allowed to have my own copy since there is a lot of other programmers' code in it.

Anybody else want to chime in?
Peter HeinickeCEOAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

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.

First of all, in my opinion, ask them to put everything of what they said in writing (emails OK)
Peter HeinickeCEOAuthor Commented:
But this work took place over a month ago. Are you seriously thinking that they will remember and will be truthful about what they remember? And it was "covered" by a support contract which should normally control the terms, but they are saying "best practices" would be to have a backup.
bbaoIT ConsultantCommented:
sorry to know the story and your awkwardness.

standing from your point of view, per what the customer claimes, i think you have at least three points to claim your work and ask the customer to pay for what you have done despite what they sue aginst you.

1. they did run your code before the drive was wiped.

2. they do recognise the wipped code was the latest version, or the latest version was in existence.

3. the wipped code was developed by you.

regarding the dispute on whose responsibility to back up the code, that seems to be something missed in your agreement with the customer, if any. however, if it is not covered by existing terms on paper, both you and the customer have too bear with the issue and its impact.

however, the backup issue has nothing to do with the three points above, if they recognise the three facts, they should pay you.
HTML5 and CSS3 Fundamentals

Build a website from the ground up by first learning the fundamentals of HTML5 and CSS3, the two popular programming languages used to present content online. HTML deals with fonts, colors, graphics, and hyperlinks, while CSS describes how HTML elements are to be displayed.

PortletPaulEE Topic AdvisorCommented:
did you provide any written material as well as the code?

does that written material refer to procedures to run & operate?

in those procedures do you refer to backup & recovery?

did you get a signed document (or maybe email) that the code deliverable(s) had been received?
bbaoIT ConsultantCommented:
> did you get a signed document (or maybe email) that the code deliverable(s) had been received?

yes, anything in writing. it is very important.

make sure you could find the evidence in writing in supporting the three facts i mentioned above.

if not, start it NOW, not for this project only, but also for all your projects.
1. Did they confirm the software delivery (in written)?
2. Did they confirm the software works as expected?
3. Does the support contract say something about your obligation to keep backup copies for them?
4. Who owns the copyright?
5. Show them some common sentences from copyright law saying "You cannot make illegal copies of the software"

Do you have all above in written? If not write it down now incl. their requirement for the backup copy and then you may do additional steps.

Another explanation:
They just can check what everything did you copy from them...

Offer them to do the work again. They just have to pay it twice... but the second attempt is always better than the first one which is added value for them :-)

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
Peter HeinickeCEOAuthor Commented:
Here is some clarification.

There is nothing in writing that says I have to back up the code I wrote.
The support contract is in writing.
I did the work to create a "second version" that works after the drive was wiped, billing them on our net terms which have worked fine for 2 years. (This is an ongoing customer  at least until now).
I did offer to sell them a "backup to the clouds" service but they declined.
I still don't understand where did you create the software? On their workstation which was then wiped out? Or on your own PC which you are cleaning up yourself?
Peter Heinicke:

You've got one foot in the proverbial 'grey area' swamp.     There's a lot of factors that go into resolving this that your post doesn't have room to cover. I'm assuming the contract or agreement covering this work was fairly basic, and my answer will be made with that assumption.

Reviewing any documentation you have (PO, contract, work for hire agreement) what does it say?  Is it spelled out anywhere that you're responsible for maintaining copies of the work? If not, then there's no legal basis for withholding payment as long as you delivered what the agreements called for. That's why we have contracts: to spell out what's to be delivered prior to the customer paying. For them to invent deliverables that don't exist wouldn't stand up in any court.

Your point about not wanting to be in possession of their intellectual property is an excellent one.  Let's take it a step further.  Do you want the responsibility of having to produce the deliverable upon request in the future? How long would you have to deliver it? How many years would you be required to keep it? Are they expecting you to assume this ill-defined responsibility for free? What's the legal remedy if you can't produce the backup in the future? If it's work for hire, your obligation would end at the termination of the work for hire agreement in the absence of anything stating otherwise. It's not as simple as your client thinks it is.

Dealing with the immediate issue:
1) You delivered the software and based on what was posted it's working as required. This is grounds for payment in the absence of any other unmet terms and conditions.
2) There is no court that would sanction their position that paying nothing for services rendered is a legally defensible position. The starting point of attorney's and courts in cases like these is: We know they owe something now we have to figure out how much. Most US courts first suggestion is splitting it in half.

I propose finding someone at the company with a reasonable outlook and let them know you're looking to help them get their investment in the software back up and running. The "looking to help" scenario often strikes a chord with the customer. The approach that you're there to help is a great diffuser of tension. If they're determined to play hardball, the fact you were the bigger person is an advantage in court. Outline what the agreement stated and what was delivered and try to work something out,

I would definitely reccomend payment of some mutually agreed upon amount prior to providing additional services. Determine ahead of time how much you're willing to give up to get past this. Several things come into: Are they a good client? Do you want to keep them as a client? Is there future profitable work from them? Do they pay timely?

The future and opportunities:
You can turn this to your advantage as far as future revenue, after plugging a few holes.  Review your standard agreement forms and make sure wording is include addresses issues like these.  If it's critical, then have a small line in the agreement next to the clause requiring them to initial it.

If the work can be delivered on a CD/DVD, do so, and have them sign a receipt that includes wording that they are reponsible for it going forward.

You may also make a proposal to consult on an improved backup system, redundant hardware, version control system, etc. so this doesn't happen in the future.  There's no clear cut answer in cases like this. I hope this gives you some helpful ideas.

Best regards,

Peter HeinickeCEOAuthor Commented:
pcelba, I created the software at their location on their workstation.  Their workstation became unbootable and instead of trying to recover it, they wiped the drive and reloaded it.
OK, then I don't see any problem at your side. You did what they asked for. They were responsible for their own hardware and if the agreement is valid and you have signed the final product delivery then I don't see any reason why they should not pay for the work.

You don't have agreement for their hardware maintenance (probably), you have no responsibility to save/backup their data, you cannot behave like their insurance company. They should pay the invoice and they should solve their internal IT processes.

The workstation collapsed, it can happen. The owner should be responsible for the data loss. The person who wiped the disk out should pay the additional expenses but that's not your problem.

If you don't have any final sw delivery signature then try to write down points which both of you agree and also points in which you have no consensus. Formulate it as a work status. One of the points can be their requirement to do the work again for a free etc. This should then be a good material for the court...

BTW, your question is in FoxPro zone. Was the application written in FoxPro? Do they have the final EXE at least?
Peter HeinickeCEOAuthor Commented:
Yes, it was a foxpro application, but are there better places for this type of question.
The reason for my question was the possible source code recovery from EXE file (if the EXE exists).
bbaoIT ConsultantCommented:
> The reason for my question was the possible source code recovery from EXE file (if the EXE exists).

yes, it is technically practicable, and the outcome will be pure source code with original names for variables, functions and database fields, mucg better than those generated IDs or tags for other languages such as C and Delphi.

FoxPro Decompiler
Olaf DoschkeSoftware DeveloperCommented:
I never have been in any similar situation, but I think you have one main point:
>I am not sure I am even technically allowed to have my own copy since there is a lot of other programmers' code in it.

Since they had the source code, they should legally own it, or they themselves would have broken copyright of the original developer/vendor.

If they own it, I don't really know whether they can claim the best practice of developers must be to backup their own work. If you work on site or remotely on this machine they would rather be responsible for the backup of this machine as part of their own IT. That at least also is best practice for any of their computers, no matter if server, client or just developer machine, virtual or real hardware.

What you could be blamed for is not saving your own work, but that's not simple to separate from already existing sources. Version control systems would save all changed files in case of VFP, including original code in most parts.

It compares a bit to rejecting to pay a repair of a car, because it crashed in an accident short after the repair. The accident then would need to be caused by the repair to have such a claim, I think.

If the final EXE exists you really have a good chance to recover most things and that should lead up to a good compromise for both of you.

Bye, Olaf.
Peter HeinickeCEOAuthor Commented:
Thanks for the version control mention, I have long been in favor of that. They didn't have the final exe because they wiped the computer it was on which was also the development environment. Here is another outcome - development environment ideally should never be the production environment.

Peter Heinicke
bbaoIT ConsultantCommented:
if so, probably the last resort is to use an undelete utility to scan the wiped disk and get at least the EXE file back if lucky.
Peter HeinickeCEOAuthor Commented:
They could have easily recovered the files and the exe if they had just tried to read the drive before reloading windows 7 on it.
I agree to Olaf - version control is a must for any team or even individual development.
The similarity to the car crash is perfect!

@bbao - what undelete utility can find old files on formatted disk with the new Windows copy installed? I would rather ask NSA they should have a copy :-)
bbaoIT ConsultantCommented:
@pcelba it is possible, technically.

two points first.

(1) the disk format program actually does not wipe the whole disk except the boot sector and root directory area at the beginning of the formatted partition.

(2) the Windows installer and Windows itself (actually the file system, including NTFS and FAT) normally uses the free space from the lower end (lower numbered sectors) to the high end.

therefore if the hard disk is large enough and the EXE file was copied to the disk at late time of last Windows copy, it is theoretically possible that the EXE is still there even intact after a new copy of Windows has been installed.

we don't need NSA's help at this stage. once unfortunately the EXE file WAS overwritten entirely or partially, it is still theoretically possible for NSA to recover it at disk surface level. that will be the right time to call NSA. :))
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

From novice to tech pro — start learning today.