Legal/contracting question



  • I am in talks with a company for my first contract job that I am trying to use as a launchpad into full time contracting / starting my own development business.  They want the source code when I finish their application, and I want to market this software to future companies later on. 

    As far as I can tell, these two cases are mutually exclusive.  Anyone else know for sure?  Does some sort of agreement exist where I can let them have/edit the source code, but not let them distribute it to anyone - while I am able to maintain full ownership/rights to sell it to whomever I choose?

    Any input is appreciated. 



  • It all depends on how the "want sourcecode" is defined. You can provide them with a copy of the source code, while retaining the copyrights.  They may insist on all copyrights being transferred to them. They may be happy with an exclusive license, or a nonexclusive one.

     If you retain copyright on the produced works, you can license it to the company  and grant permission for them to modify (and redistribute?) the code.
    You can then license the work to other parties (future contracts) as well.

    If the copyright goes to your employer, you have no further means of using the code without their permission.

    Since you're thinking about starting your own bussiness, I'd recommend getting a lawyer with experience in the field to draw up a contract, or at the very least check the library or book stores for information on this. I expect there will be quite a few books with sample contracts etc.

     http://nolo.com/resource.cfm/catID/FD8C060B-5DD4-4809-A53ECCF6BBD87E32/310/
     



  • I am actually doing this in my own company. I have a client for whom we developed a product, and we are now marketing the product. They retain ownership of the code, but we get a split of the profits plus the maintenance/customization money. Customers license the product, but cannot buy it outright. It's a good deal all round. You have to make sure all the legal issues are squared away tho...



  • It's really the same as a license for compiled software: the difference between "right to use" and "right to license/distribute". I'm in a similar situation and deal with it all the time.

    Why do they want to the source code? I can think of a few reasons:

    1 - they want to be sure that when your one-man company goes out of business they don't suffer. In that case, offer them to put it in Escrow and let them pay for that (it's not a large amount). This means that you give the source code to a notary and they get it when you go out of business.

    2 - they want to expand/maintain your software themselves. That's legit, but try to convince them you can do that better than they. (Easy enough because it's actually true). Follow-up business is crucial for you - it's so much easier than getting new business. Down the line you will see that 80% of your income will be follow-up business. You can offer them a yearly maintenance fee (15-20% of license price) or a fixed hourly rate. To smooth things, offer them 10-20 hours free support and a reasonable price after that.

    3 - they want to to resell your software (with or without modifications or value added services). Actually, that's good news for you - selling software is way more difficult than writing software, so if they want to do that for you, great. Make a deal for a 50/50 share of license. When they do the sales, allow them to set the license price (no software is ever sold without a rebate). But make sure you set a minimum for your share or they'll screw you (like they sell your software + something of theirs for 1K+99K = 100K; and send you a measly $500 check).

    4 - they want to steal your IP. If you suspect that, back off. You don't want business with such a company, with or without source code.

    In any case, let them understand that source code has a price. Try a win-win deal (2 or 3) but if that's not possible let them pay. Don't be afraid they'll back off - company purchasers actually tend to enjoy hassling.

    As for the legaleze, do some googling. Don't ask help from lawyers. Put everything in the contract and have them sign it. Copyright messages in source code have no value or purpose whatsoever. For example in case 3, something like this would do:

    ITSALLGEEKTOME  hereby grants COMPANY a world-wide, perpetual, non-exclusive license, subject to third party intellectual property claims, under copyrights licensable by ITSALLGEEKTOME to use, reproduce, modify, display, perform, sub-license, distribute and sell the SOFTWARE (or portions thereof) with or without modifications, and/or as part of a larger work.

    The SOFTWARE is ITSALLGEEKTOME's original creation and ITSALLGEEKTOME has sufficient rights to grant the rights conveyed by this agreement. ITSALLGEEKTOME remains the author of the original software and retains the right to use, reproduce, modify, display, perform, sub-license, distribute and sell the SOFTWARE (or portions thereof) with or without modifications, and/or as part of a larger work.

    Each time COMPANY sells an additional sub-license of the SOFTWARE to a third party, COMPANY will pay ITSALLGEEKTOME an amount that is not less than $......... and not less than fifty percent (50%) of the license fee charged to the third party.



  • @JvdL said:

    As for the legaleze, do some googling. Don't ask help from lawyers.

    That is possibly the single dumbest piece of advice ever given on this site.

    If you enter into a formal contract in a professional capacity, without ever talking to a lawyer, then you richly deserve the righteous arse-raping that you are most assuredly going to receive.

    If you are getting paid for this job, then you can definitely afford the few hundred dollars that it'll cost to have your lawyer write your contract, and you cannot possibly afford not to do it. Creating legal documents is one of the extremely small number of professions that is as difficult as software engineering. You don't write software with google, and you don't write contracts with google, for exactly the same reason.

     

    You can negotiate pretty much any terms you like for what they can and cannot do with the source and software; the only limits are that it has to be logically consistent, you can't require them to break the law, and you can't make them agree to anything if they don't want to. That is the essential nature of a negotiated contract. You just have to work out between you what you want to do, and then get lawyers to write a contract that does it. (It's very different if the contract is not negotiated, but that's not an issue here)



  • @asuffield said:

    @JvdL said:

    As for the legaleze, do some googling. Don't ask help from lawyers.

    That is possibly the single dumbest piece of advice ever given on this site.

    If you enter into a formal contract in a professional capacity, without ever talking to a lawyer, then you richly deserve the righteous arse-raping that you are most assuredly going to receive.


    Well, I've managed to get by without hurt for many years without lawyers. I also have experience with contracts with lawyers. Biggest problem is that run off the mill lawyers won't understand the particulars of your contract and qualified lawyers...

    ...the few hundred dollars that it'll cost...

    ...in your dreams. For a few hundred dollars a qualified lawyer will read an email.


  • ♿ (Parody)

    My two cents...

    First and foremost, pick what you want to do:

    • Custom Software - software built entirely for the client. This a simple "work for hire" agreement.
    • Customized Software - highly complicated niche software that needs to be customized for each client. This is licensed with intracated options.
    • Shrinkwrapped Software - software for sale with a simple EULA.

    It sounds like your potential customer is a case for Custom Software. You have nothing right now, and you want to use their time & dime to build something, which can then be sold to their competitors for a fraction of the cost. This is a bad idea for everyone involved and leads towards sour relationships (not what you want as an entreprunuer) and possibly lawsuits. I've seen small software shops go out of business as a result of this (every town is small, and everyone knows everyone -- remeber that!).

    My recommendation: forget about keeping the code. This is your first contract, so keep it simple. "Work for hire." No lawyers, no complicated contracts needed. You can always take your experience in the industry and offer similar solutions (with entirely different code!) to competitors.

    If you really want to get in the market of Customized Software, then you will need to build this software for a test client for far below market value. Possibly even free. Like I said, not something you want to do on your first foray ...


  • ♿ (Parody)

    @asuffield said:


    If you are getting paid for this job, then you can definitely afford the few hundred dollars that it'll cost to have your lawyer write your contract, and you cannot possibly afford not to do it. Creating legal documents is one of the extremely small number of professions that is as difficult as software engineering. You don't write software with google, and you don't write contracts with google, for exactly the same reason.

    Lawyers are highly overrated. Very few have expertise in the World of Software, and many that (claim they) do are often Incompetent. Who do you think are the ones that write those horrible, unenforcable EULA? I once worked at a company who actually had a lawyer-drafted employment agreements stating employees "couldn't work for competitors or engage in competitve activity" after termination of employment. That's about as enforcable as an undocumented "verbal will".

    Contracts do not need legaleze, only very clear and very specific language. If you don't know a good lawyer, stick to writing them yourself. If you do know a good lawyer, then you know a good contract will cost several thousand to draft. Obvious point: never, ever put in a clause (either from your lawyer or google) that you don't understand yourself.



  • I agree with Alex. If you really need a lawyer, you might as well consider working for another client. And since your situation is not that special, you probably do not need a custom contract. Just as you wouldn't order customized software when you need an ordinary text processor.



  • I also agree with Alex, that 99% of lawyers don't know what they're doing in terms of IP law, and the remaining 1% are overpriced. Just make it extremely clear and a to the point.

    Michael 



  • Thanks for the help everyone.

    I think I'll heed Alex's advise and just make them their software to their specifications and let them have the source, then worry about making a new version later that I can market to other companies.  I do find it odd though, that the man I spoke with said he wanted the code to make the little changes down the road (claims he doesn't have the time to build the app from scratch), but he has no idea what I plan to develop his application in.  For all he knows I'll be using Java, when in reality it'll be .NET - and I believe he thinks I'm doing it in VB.  Oh well - guess I can expect a phone call "down the road" asking to make the changes he thought he could make in a VB app.

    Anyways.....thanks for the advice everyone. 



  • @ItsAllGeekToMe said:

    I do find it odd though, that the man I spoke with said he wanted the code to make the little changes down the road (claims he doesn't have the time to build the app from scratch), but he has no idea what I plan to develop his application in.  For all he knows I'll be using Java, when in reality it'll be .NET - and I believe he thinks I'm doing it in VB.  Oh well - guess I can expect a phone call "down the road" asking to make the changes he thought he could make in a VB app.

    Probably less a problem than you think. Small changes can be made relatively easily in most programming languages, not matter if they are VB, Java or C#. Such small changes he has in his mind are probably as simple as changing some literals or adding very simple constraint checks. 



  • @ItsAllGeekToMe said:

    Thanks for the help everyone.

    I think I'll heed Alex's advise and just make them their software to their specifications and let them have the source, then worry about making a new version later that I can market to other companies.  I do find it odd though, that the man I spoke with said he wanted the code to make the little changes down the road (claims he doesn't have the time to build the app from scratch), but he has no idea what I plan to develop his application in.  For all he knows I'll be using Java, when in reality it'll be .NET - and I believe he thinks I'm doing it in VB.  Oh well - guess I can expect a phone call "down the road" asking to make the changes he thought he could make in a VB app.

    Anyways.....thanks for the advice everyone. 

    All I can say about this is get it in writing.  In the proposal something like:

    "The following areas will be customizable using [FORMAT] in [LANGUAGE]:
    x
    y
    z"

    I used to do a lot of this kinda work.  I ended up losing about $800 worth of extra money I should have made because there was nothing in the contract that stated what I had to make customizable.  The customer kept adding stuff on that he wanted to customized later and it cost me a lot of time to implement this stuff.  I could've argued, but then I could end up losing the job altogether - which at the time I couldn't really afford.  Not too many people are high on hiring 20 year old college students.

    After that, all customizations had to be laid out, so any time they wanted something new, it was an add-on.  This also helped reduce the 'Oh - can you add this feature in' stuff I got in my first two jobs.


Log in to reply