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
- Headings vs headers: how to use both in Word
- Windows Server 2012 R2: how the Datacenter edition could change SMBs
- Invoices and VAT: how to set up your documents correctly
- Nexus 5 vs Samsung Galaxy S4 Active: the best phone for avoiding screen burn
- How much is a social user worth?
- The key to choosing a secure password
- Thunderbolt Bridge: a fast Mac migration tool
- Should you advertise on Twitter?
- How to track a lost smartphone
- Self-publishing success: the best way to sell your book
- CeBit 2014 diary: Cameron comes to town
- The 5 most interesting UK businesses at SXSW
- Quickest way to upload 1GB? Hop on a train
- Move over Delia: IBM Watson is cooking tonight
- Eric Schmidt on the double-edged smartphone: friend and foe
- Getty joins the race to the bottom
- Hour of Code: five steps to learn how to code
- Sony Xperia Z2 Tablet review: first look
- Sony Xperia Z2 review: first look
- Samsung Galaxy Gear 2 review: first look
- Sony revives optical discs with 1TB Archival Disc
- IDC: iPad intertia opens door for Windows tablets
- Office 365 goes social with "Oslo" news feed
- Windows XP: upgrading 30,000 PCs in 30 days
- LibreOffice: ignore Microsoft's "nonsense" on government's open source plans
- Intel Xeon E7 v2 servers support 6TB of RAM
- Microsoft promises video calls between Skype and Lync
- Office for iPad due before July
- Windows 7 on business PCs gets an extension
- Windows apps land on Chromebooks with VMware