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
- How to sell more ebooks on Amazon
- 10 ways to make your business more secure
- Top five VoIP mistakes
- How to add in-app purchasing to an iPhone, Android or Windows app
- Remote-control ransomware: TeamViewer and software hardball
- 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
- 20 years of PC Pro: our best covers
- Why we've closed the PC Pro forums
- How to turn off Google Location Tracking
- 20 years of PC Pro: our greatest review mistakes
- 20 years of PC Pro: our first A-List
- Wikipedia's "right to be forgotten" protest hits the wrong note
- 3D printing hits the high street for plastic selfies
- 20 years of PC Pro: What amazed us in our first issue
- How Google Glass ruined my lunch hour
- Smartphone battery packs: can a USB power pack beat the festival battery blues?
- Microsoft refuses to hand over customer emails
- Microsoft yanks Windows 8.1 update after crash reports
- Microsoft backtracks on blocking out-of-date Java
- Gartner: time to start planning your Windows 7 upgrade
- Still on IE8? You've got 18 months to upgrade
- Who's buying Chromebooks? American schools
- Microsoft targets Windows in next Patch Tuesday
- Microsoft to block old ActiveX controls in security push
- Samsung and Apple call off all legal disputes, except in the US
- Microsoft ordered to hand over European data