Forum Moderators: phranque

Message Too Old, No Replies

Source code

Should I give my clients my source code?

         

Cirilo007

6:30 pm on Jan 20, 2006 (gmt 0)

10+ Year Member



Hi all,

I have created a website for a client and hosted it on my server. I have built a CMS so they are able to update the content of their page.

Now they have decided to move to a new host, and take the website there. Should I give them access to my FTP and to the source code? Should I ask for extra money to do that?

How many of you give the source code? Is that something that should be clearly said in the contract?

Thanks

kaled

11:40 am on Jan 21, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



If you've been paid to create the site in such a way that they can update it (using your CMS) then I would say you've been paid in full for the creative part and should provide whatever the client needs to move host.

However, if the CMS was a later addition for which you have not been paid, the problem is more complex.

Kaled.

Rosalind

12:26 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



This is something that should absolutely have been laid out in the contract to begin with. But here you are, so you have to play it by ear. I wouldn't ask for extra money, but you might consider writing up a watertight license for the code's use. Specify ownership of rights, and acceptable uses, such as whether and how they can sell it on, and so forth.

Now might be a good time to consult a specialist lawyer, to get a boilerplate template drawn up for this sort of circumstance. It will stand you in good stead.

celgins

2:31 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



I agree with Rosalind. These types of things happen often, so you should probably have a generic contract that details who owns the code once you've completed the project; who owns the media files (video, audio, etc.); and who owns the images.

In your current situation, (especially if you have a good relationship with this client), you may simply want to take the time to move their files to the new webhost. If they are leaving your server and will no longer need your services, you may not want to give them FTP access. (Just my opinion)

Of course, if they don't want you having FTP access to their new host so that you may transfer the files, package the site on a CD and send it to them.

peewhy

2:50 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



The trouble with clients getting involved in source codes and the like is they start getting third party 'experts' that read a blog last year that says bla, bla bla.

You can spend a lot of time explaining what those strange codes mean and why is that there!

Personally I wouldn't let them have it unless they stipulated in the contract.

Demaestro

4:47 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



I say it all depends on how you look at it. When I do something for a client it is almost always a CMS, it is in Python and is open source. One of my bragging points over my competeters is that you the client is the owner of the code. If you don't like my attidude or my time estimates you may take your code to another delveloper and have him work on it. I mean let's face it the client is having someone build something for them. So who is the owner?

It is a cassic question in this industry that for some reason but not in others doesn't have an obvious answer. If I hire you to build a house for me, who owns the house? Of course you do. Now if the electrition has some special way of wiring a house that he thinks is better then most, he can't take the wires with him when you hire another electrition even if he fears that the next electrition will see his clever ways and use them for his own work.

Developers have this guarded attidude that this code they wrote is somehow special and no other delveloper could conceive of the ideas that you yourself has come up with, and there for no one should be able to take a peak for fear of code pirating.

They are the client, you are the worker, if you didn't say otherwise then they own the code and I would say ship it to them. If you are worried about someone else going in and making code changes then remove all the line breaks from the scripts files first, it is unscrupulous, but if someone else does try to make code changes they will end up pulling out their hair first, which may send the client back your way, or piss them right off. One of the two.

In my experience though I have found that if you are totally up front about things then your clients won't want to go else where because they know they can get a straight answer from you. It is when you start double talking them with things like intellectual property and the like that they start wondering what you are talking about, and "Is this a scam to get more moeny?"

celgins

5:07 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



Demaestro, you make valid points, but the reason many web developers are leery about owning or disowning the code, is because it is a customized piece of work.

Taking your homebuilding and electrician analogy, it wouldn't make sense for the homebuilder or the electrician to walk away with wires, cables, shingles, wood, etc. The homebuilder and electricians don't own those things in the beginning. The fees you pay for electrical work or homebuilding are partly used to pay for the materials, while the rest may be used to pay the electrician/construction worker.

When writing code, you own that code until you are paid. If you're not paid, you walk away with your custom product.

Hopefully, most developers have stipulated in their contracts, how to handle this once the exchange of fees and contracts takes place.

If Cirilo007 has been paid for his/her work (with no contract stipulation) and this company wants to move their files to another webhost, I think (out of courtesy) he/she should help them.

If Cirilo007 hasn't been paid, then he/she still owns that code....whether it's stipulated in a written contract or not.

Demaestro

5:52 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



I agree 100% if you haven't been paid then how can they own it? Of course you still are the owner until paid in full. I have even seen contractors walk away from physical buildings with their shingles, pipes, whatever when not paid. I have turned off many sites to 'encourage' clients to remeber to call me about payments. I have also had companies ask for their code because the president's nephew just finished some tech college and he is going to build features now rather then me.

I did it grudgingly and was sad that I was losing the business, but I offered a support contract to the kid incase he had questions. In the end I made twice as much as I would have, because of course someone needed to go in and clean up this kids mess. Not to mention all the time I billed for when he would call in for some coding support.

Keep your clients happy even when they aren't going to be your client anymore, because a happy ex-client may soon become a regretful repeat client after learning that your stright talk and honesty is something they can't find elsewhere in this industry, and sadly that seems to be the case.

The real answer to this question is decide how you want to run your business and then create a policy up front that both parties agree to prior to the commencement of any project. However I am a strong advocate of open source and community programming so I am a little bias but anything less then allowing the client onwership of the code is going the way of the big evil $MS$

kaled

7:33 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Another way to look at this.....

If the CMS (or any custom code) is provided as a service, i.e. part of the hosting package, then the client does not own it and cannot expect the source code when changing host.

However, the client can reasonably expect to take any material they have created to the new host so if that material requires the custom code for access, then it must be provided. For instance, if you write a custom database program, if the client needs the program to access the database they have created, then you must provide it.

Kaled.

willybfriendly

8:23 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



As stated above, it should have been specified in the contract.


if ($projectPaid && $code == $project &&!($contractSpecified))
{
$clientOwnsCode = true;
$q = "DELETE 'comments' FROM 'code';
echo "allow future developer to decipher code flow and logic";
}
else
{
$clientOwnsCode = false;
if (!($projectPaid)
{
echo "demand payment";
}
elseif ($contractSpecified)
{
echo "Remind client of contract terms";
}
else
{
$renegotiateContract = true;
}
}

WBF :)

henry0

9:53 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



An easier way will be to include in a contract
A CMS license definition an portability

I built my own CMS
Do sale my work including it
However portability of one item is OK
Multi use or re engineer is another bargain

A client has the right to one item for a given site
And not of one item for a myriad sites

Demaestro

11:03 pm on Jan 23, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



kaled makes a great point. If they have mearly licensed the right to use a CMS you have built then no they don't own the code. Of course what happens in the case where they identify a need that he CMS doesn't provide and then you build them that custom feature.

I deal with this alot and it is an interesting thing. Someone wants lets say a dynamic news area that output RSS. So I build them one and add it into the CMS they linsence. Now I have charged him my hourly development rate to make a custom piece of code. Now does he own this feature of my CMS? Of course it comes down to the contract before hand, but I say he does.

Where this gets sticky is when another client comes to me and wants the same feature. Now the one I have built will work for both clients because they both have the same CMS. Do I now charge the second client the same as what I charged the first even though I am not going to rebuild it a second time? There are of course many ways of dealing with this and it is up to you, but I have always given some money back to the first client if someone else requests the same feature that I have built for them. I will collect a smaller fee from the second client and then rebate a small amount to the first cleint since he paid for the initial development time.

I mean I could tell the second client I will build him one and let him think I did from scratch and charge him up the bum, but that's not how I roll, it may sound silly but my repeat business and referred customers speaks for themselves.

It sounds weird I know but nothing makes a client all squishy and happy like telling them you are going to rebate them money. They mostly don't care why they are so stupid happy that they got anything,

physics

4:38 am on Jan 24, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member




However I am a strong advocate of open source and community programming so I am a little bias but anything less then allowing the client onwership of the code is

This brings up another point. If you use an existing open source CMS that is GPL for example a lot of this argument goes out the window because then neither you nor the client own the code. Many think this is a down side but here it makes life easier since neither party is in a position to fight for ownership.

physics

4:41 am on Jan 24, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member




$q = "DELETE 'comments' FROM 'code';

Now that's just pure evil ;)

Demaestro

4:18 pm on Jan 24, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



I was actually going to get into that physics, there are some timelines where it is in a state of ownership limbo. My lawyer made my eyes cross when we got into this though and that is why I have him because who knows what someone will try to claim as their own. SCO comes to mind for this type of thing.