Who owns the code?
Posted on 18 Jun 2010 at 17:44
Contract developers save Kevin Partner from a digital lynching, but open source software could be the key to his long-term survival
My recent column “Paying for code doesn’t mean owning it” kicked off an interesting debate, which to begin with felt like a digital lynching with comment titles including “You wouldn’t work for me” and “This is a shady practice”.
Other people weighed in to restore some balance, though, and broadly speaking the developers sided with my point of view and the clients against it. Not surprisingly, given the complexity of the issue, there was misrepresentation and misunderstanding of what I’d said.
It isn’t fair is for the client to benefit from my library code via reduced costs, then also expect to own that code
To recap, I’ve created a set of standard libraries that are embedded in a number of my clients’ web applications, and I can’t sell exclusive ownership of that code to any one client since that would also confer ownership of, say, 25% of the code of other clients’ applications.
However, my toolkit code is object-oriented, so the fact that no client owns an unencrypted version of the source doesn’t prevent them amending or updating the custom parts of their application – they can simply replace a call to one of my objects with a new method. Most clients are happy to enjoy the benefits of this library without needing to own it.
In that column, I pointed out that the intellectual property rights to code I write for clients under contract remains with my company even after the client has paid, but in practice I’m happy to agree with the client to hand over the source so they can change developers if they wish: this might include a formal transfer of ownership of the unique parts of the code, or simple agreement to share ownership. What isn’t fair is for the client to benefit from my library code via reduced costs, then also expect to own that code.
I’d be the first to agree that contracts are a good thing, but if a client needs the job within, say, three weeks, it isn’t sensible to waste the first two in contract negotiation.
My standard practice was to draft a “letter of understanding” that states what’s been agreed, but sometimes there isn’t even time for that. In my experience, being reasonable, prepared to compromise and acting with integrity all influence the success of a project more than the most watertight contract, but even so I’ve decided that proceeding without one is no longer viable, having just been shafted by a client who refused to pay their final instalment (even though in this case a contract did exist). I shall be much tighter on this in future, even if it means losing the job.
So what’s the answer? I can think of several, the first being to replace my in-house library with a third-party open-source framework. For PHP projects this might be CodeIgniter, and I now use this in all new projects.
"the problem is that the existing code is licensed to clients already and can’t be open-sourced without their permission"
It is fine (and indeed common) to make code available under multiple incompatible licenses. http://en.wikipedia.org/wiki/Multi-licensing
At least, I assume that your clients aren't really insisting on a "you cannot open source any of this code" clause in their contract?
also: please ask your web team to get rid of that tynt nonsense. and make the comment box larger.
By robtoo on 18 Jun 2010
It's not really fine to release your code under agreements which aren't compatible. It means that your obligations under one agreement conflict with your obligations under another one. It means you're stuck. Try to avoid doing this.
By steviesteveo on 24 Jun 2010
Need to address the fundamentals
Having read both articles and comments I think there are three fundamental issues:
Firstly, it seems that you don't have a standard set of T&C's that are attached to any "letter of understanding" you may draft, a practise that is generally frowned upon. If a client wishes you to proceed 'yesterday' then at least commence work with minimual contract cover with the "letter of understanding" being T&M based agreement with a report/specification as the deliverable. Over and above this, you may take the risk and incur the cost of commencing manufacture of software during this time, but no software is actually delivered until such time as a contract is signed (in the ideal world, you complete the development before the contract is signed and so deliver a product to its first customer complete with a price tag fully reflecting the risks and costs of development and the value of rapid delivery!)
Secondly, it seems that many software people are under the false impression that their standard libraries are part of their 'toolkit', this is totally wrong!
Taking your analogy of the plumber, if you take a look in their van, you will see that they carry around TOOLS and STOCK PARTS. In completing a job such as replacing the kitchen tap, a plumber will: with the customers involvement purchase a new tap, secondly they will fit it using their tools and stock parts as necessary to join the new tap to the old water pipe. When the plumber leaves, you are left with (the bill) a working tap and associated installed parts that you now own and can do what you like with, additionally, the plumber will has assigned to you any manufacturers warranties associated with the parts supplied and added their warranty. Translating this into software, you can see: your computer(s) and SDE are your tools and to some extent your van, your standard libraries are your stock parts (which may be stored within your SDE/van) and the tap a COTS package.
Taking this approach, you can now correctly account for and price the maintenance and use of your libraries, which in turn will lead you to selecting an appropriate licensing strategy for them, which in turn will feed into your standard T&C's.
Thirdly and finally, you are now in a better position to determine what it is that you are actually delivering and its value: Are you just providing a body shop or are you delivering a solution/product to it's first (and maybe only) customer? The outcome of this thinking will reflect not only in your pricing and standard T&Cs, but also in the way you package your deliverables along with the ownership and disclaimers on them.
You only need to look at the history of Microsoft/IBM DOS to see the importance of getting the IPR and Commercial exploitation clauses right. Also major package vendors will contract for installation and configuration/tailoring of their package, even though such configuration can include the development of substantive amounts of software.
Having established you standard T&Cs, you now have a defined starting point in any customer negotiations.
By RBell6 on 13 Jul 2010
- Why laptops with serial ports matter to the Internet of Things
- Make your mobile battery last longer
- Small steps into handling Big Data
- Nexus 5: does it really run stock Android?
- How to get broadband to a garden office
- How to write your company's IT security policy
- Raspberry Pi and Wolfram: a must-have for every child
- Could you get by with Office Web Apps?
- The best Android antivirus apps for 2014
- Headings vs headers: how to use both in Word
- Hello Cortana, it's nice to meet you
- Windows 8.1 Update: an abject surrender
- The insane economics of Sky Now TV
- No such thing as a free app... so pay up if you want quality
- Time to outlaw crapware-laden installers
- Windows Phone 8.1 video: hands-on
- Office for iPad: key information
- Why every PC buyer owes Richard Durkin a debt of gratitude
- HTC One M8 vs Samsung Galaxy S5: 2014's big-hitters compared
- Windows XP end of life: key information
- Microsoft supercharges PowerPoint with Office Mix
- Microsoft and Nokia deal tweaked ahead of completion
- Microsoft slashes custom XP support price
- Ubuntu LTS Server 14.04 extends cloud support
- Intel: PC sales are "encouraging"
- Google to rank encrypted pages higher
- Heartbleed: the race to reissue security certificates
- Dropbox boosts app line-up with Carousel and Mailbox for Android
- BlackBerry CEO says not selling off phones "any time soon"
- Microsoft halts business downloads of Windows 8.1 Update