Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

freelancing - no signed contract

by BMaximus (Chaplain)
on Jul 20, 2001 at 04:27 UTC ( #98291=perlmeditation: print w/replies, xml ) Need Help??

I'm currently doing a freelance that can be characterized as not a work for hire situation. The individual I'm working for had given me a list of requirements and had paid 1/2 of the agreed price in advance for the finished product. The meeting was finished with a nod and a handshake and I went home and went to work. No contracts were signed. Nothing was put down on paper except for what his requirements were for what was needed and that was received in an email later in the day. I was free to add to those requirements if it would make the program better.

From the metting I understood the following:
  • The individual is buying the finished product and it is to be delivered upon completion
  • The individual is using the finished product on one site
What worries me on this is that he became very cryptic when I had asked him as to how many sites he was going to use it on. His answer was "Does it matter? :)".

Now I'm left with a question in my mind. Is he buying the code and right to sell it? Or is he buying the finished product with only the right to use it and that right only extending to one site? Has any of you fellow monks been in this situation before and what was the outcome when you were finished with the program?


Replies are listed 'Best First'.
Re: freelancing - no signed contract
by pmas (Hermit) on Jul 20, 2001 at 08:01 UTC
    Do you want to market your product independently? If no, why bother? Just sell it and pocket the money.
    Does your customer plans to sell it? If yes, and he is a small business (as it feels from your posting), you will be probably the best candiate to handle final sale and installation anyway, so keep your options open and do not make him angry.
    After trying to use it, unless client is total moron, he understands that it's easier for author to maintain the product, than for somebody else, who needs to learn it. So your position is safe. And if he is a moron, you got some money from it, so deal is not all bad.

    If he will propose to market it together, you can split the expenses, risk, and the profit. It's fair, believe me. If he is a person capable to go out and bring you a customer ready to sign a check, so you just need to explain details, install and train somebody, think about it from following point: You do *not* need to go out, try 100 times to sell, and get rejected 99 times before making sale at 100-th customer. You can save all this time, all this frustration, tinker instead with your program, and have fun coding.

    If he wants to install it on many compurers, I will not bother, if you are expected to train and support only one installation. If he expect you to support many users, you need to discus that - and as a honest misunderstanding, but not attempt to cheat each other. Your contract for maintenance should mention how many users/installation you are expected to support.

    To make importance of your work stand more clear, do not overdo documentation for first installation... ;)

    To make errors is human. But to make million errors per second, you need a computer.

Re: freelancing - no signed contract
by jepri (Parson) on Jul 20, 2001 at 04:53 UTC
    I was just in a very similar position, and I can assure you that the wording of your verbal agreement really counts. The laws are different across countries, and vary with the price of your lawyer, but essentially if he ever said "You write me a program and I'll give you some money" then you've probably agreed to hand over ownership and it's nothing to do with you how many sites they run with it, or if they sell it. Since this is a normal model of software development you would have to be very specific and say "You will fund the development and I will grant you a license to use it" if you wish to depart from the norm.

    However in practical terms you have a lot of power as the sole coder, and you can probably leverage that to your advantage (maybe on a maintenance contract or something).

    Some gentle code obfuscation would probably help your position later on as well.

    In my case I developed a CGI/TCP server combo to control multiple servers from the web. I walked away with the rights to the software in return for 6 months free maintenance, some more development (ouch) and he gets "first option" if I ever choose to sell it. I got to 'cohost' my devel machine at their premises and run a few other things that I want on it.

    As part of the negotiations he brought a lawyers interpretation of the situation and the basic upshot was that I was in trouble unless I could talk it out.

    I didn't believe in evil until I dated it.

      Since you said this:
      (snip)Since this is a normal model of software development you would have to be very specific and say "You will fund the development and I will grant you a license to use it" if you wish to depart from the norm.
      it is dissappointing you would say this:
      However in practical terms you have a lot of power as the sole coder, and you can probably leverage that to your advantage (maybe on a maintenance contract or something). Some gentle code obfuscation would probably help your position later on as well.
      Nowhere does the poster say if feels tricked or cheated. If the answer to "Does it matter?" wasn't "Yes it does; it affects the price." then I don't see the problem. He should talk to the person, or better yet an attorney (to write a contract, not sue) and get it resolved. I know I wouldn't appreciate being on the receiving end of obfuscated code because my programmer *thought* I might be taking advantage of him.
        I wasn't given a chance to realy answer his question to mine. He basicaly ran off in a virtual sense since the conversation was on ICQ.

        I don't feel that giving obfuscated code is a viable answer. Doing such a thing could make me liable if anything goes wrong. Not to mention I'd have to fix it if it breaks. I'd like to be able to read my own code. It's a moral issue and its just the not right thing to do.

        I was thinking of creating a license to use the software. But in reading some information on the net (A Software Copyright Primer) on what is considered "Work for Hire" has put a very big question on my hands. And to answer this I think I need a lawyer since the answer to it can be on a very fine line.

        As far as verbal contracts are concerned. California has a dislike for them and doesn't view them as binding. I will have to verify this with a lawyer friend of mine though.

        I'm just trying to defend myself and not to left with the short end of the rope here. That's all.

        Nobody would ask a group forum for advice on a matter like this if they weren't already 'concerned' about their situation. Might I point out that the obfuscated code would still run and do the job required? If there is no specification on coding style, the programmer is free to choose any he likes.

        The person was asked a clear question "How many sites?". It only needs a numeric answer, a range, or an approximate like "lots" or "not many". Anything else is dodging, and that is obvious.

        Discretion is always called for in these things. If the code is obfuscated, but it all ends nicely, the next version can be some less obfuscated code. It's always possible to do a maintenance release. If it all ends ugly, the coder suddenly has a useful bargaining chip.

        Being honest doesn't have to mean being easily manipulated


        BMaximus, I didn't mean that you should form your code in the letters "JAPH" or anything extreme like that. There are some better solutions. For instance, a script that goes through your program and changes all the varible names to $c, $d, $d and all the functions to sub C, sub D, sub E, etc. Then strip all the comments. Code functions perfectly, but reads like assembler.

        One of my friends actually had a supplier do that to them in C. The supplier wanted to be open source without actually giving anyone useful code, so they did the above. My friends job was to figure out what the code did. He reckoned their technique was very effective.

        I didn't believe in evil until I dated it.

      As far as I'm concerned, you should never give someone obfuscated code for a production application. Obfuscation is something for the geeky to laugh and ogle over, not to run business applications. Regardless if the code works perfectly or not, it just isn't the proper thing to do.

      Let me try to defend my case in a sense that would make BMaximus not want to use obfuscation. Let's assume that BMaximus creates this application for this employer and, before giving it to them, obfuscates the code. The employer, after getting the code and being unable to maintain it him/herself, has two choices. The employer can either go back to BMaximus and demand a new version of the code, which could mean more money from the employer or wasted time from BMaximus - neither option is very pleasant. Also, the employer could hire someone to figure out the code for them, having lost his/her trust in BMaximus to deliver sound code which, once again, means more money from the businessperson. In either situation, if BMaximus is trying to get a job working for another business and they check up with this business to determine the quality of BMaximus's work, what are they going to say? One of the most powerful things you can have going for you as a freelancer is your reputation. Handing out obfuscated code is only going to work to destroy that.

      As opinionated as I am about the obfuscated code, however, I'm afraid I don't have much advice for you, BMaximus. If this application is being made specifically for a given company, as far as I know, the executable, along with the source code, belongs to the company and they are free to do whatever they want with it. However, if you are building something more generic, you might want to look into becoming the owner of the source code and sell licenses to use the application. If this is what you're after, I can only suggest that you talk it over with a lawyer. Sorry I can't be of more help, but I've never been in that situation, exactly.

      I hope this provides at least some help.

      - Sherlock

      Skepticism is the source of knowledge as much as knowledge is the source of skepticism.
Re: freelancing - no signed contract
by adamsj (Hermit) on Jul 20, 2001 at 18:30 UTC
    Your problem is right there in the node title:

    freelancing - no signed contract

    If I could use <BLINK> there, I would.


    They laughed at Joan of Arc, but she went right ahead and built it. --Gracie Allen

      Totally seconded!

      BM, it's like the old joke: "How do I get to <wherever>?" "oooh, you don't want to start from here". Sorry to give an answer that's so much like that, but I wouldn't (personally) work without a written contract. I know it seems legalistic to be bothered about things like that, but it does make sure that both parties are working from the same assumptions.

      Working on a project basis, I'd get the client to sign a functional spec - again, just because having these things written down can expose places where the client's assumptions are different to mine. Also, if it's not written down, then frankly I forget what I said. If not immediately, then certainly after a couple of months. Perhaps you could write some minutes of your conversation and get the client to agree (and sign) them?

      andye's $0.02

      Update: reread the original question and realised that I really wasn't answering it at all (sorry), and that you do have a requirements doc. All I can say is, perhaps you should take legal advice if you think it's worth it, otherwise maybe best to let it slide. Good luck in any case. andy.

Re: freelancing - no signed contract
by eejack (Hermit) on Jul 21, 2001 at 02:43 UTC
    When it comes right down to it, if you are happy with the compensation for the effort, then make the product as well as you can. Who *owns* it would end up to be a matter for lawyers, regardless of contracts and verbal agreements (been there done that) so unless you have some technical concern about the number of sites I wouldn't worry about it.

    Make nice code, you make money, the client makes money, everyone happy. And isn't that what it's all about?


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://98291]
Approved by root
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2022-05-29 11:00 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (101 votes). Check out past polls.