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
- Google Glass: mugger bait, pub problem and other lessons learned from two dangerous weeks
- Twitter, please don't fiddle with my feed
- How Satya Nadella can get some pay-raise karma
- Windows 10: a step back to go forward
- Michael Dell: Cloud infrastructure is the roads, bridges and highways of the 21st century
- How to check your identity hasn’t been sold to the hackers
- Tim Cook: this is how much TV has changed since the 70s
- Westminster wins the .London battle
- 20 years of PC Pro: from deep pan pizza to virtualisation
- Five reasons why the Apple Watch leaves me cold
- Will HP finally split into two companies?
- Chromebooks get version of Photoshop
- Toshiba beats retreat from consumer PC market
- Ellison steps down: but who's really running Oracle now?
- Microsoft set to make more job cuts
- Is Peter Pan panto tickets email genuine? Oh no, it isn't
- Intel triples Xeon E5 chip performance, adds DDR4
- Patch Tuesday targets critical IE flaw
- Microsoft refuses to hand over customer emails
- Microsoft yanks Windows 8.1 update after crash reports