Hacker News new | ask | show | jobs
by Tloewald 4922 days ago
Ownership of the source code is a stupid thing to want. It means the developers will have no interest in making your code any good (they can't reuse it) and unwilling to incorporate code they own into the project rather than reimplementing everything from scratch.

Complete access to and an unlimited, unrestricted license to make use of is probably what you want.

To give a wonderful counterexample — the project I'm working on right now is Federal government. During a recent code review we discussed standard headers for source files (it's all JavaScript) and the client said "we'll want to make it all public domain, since this is the work of the government". We love our codebase, and now we love it even more because we'll be able to use it on future projects.

2 comments

Ownership of software is, as said before, not what you actually want.

The reason isn't necessarily that people won't do a good job. The reason you don't want it is because it is (should be) a lot more expensive to 'own' the copyright to the code.

A programmer who, for example, uses Ruby on Rails, will most likely not write just one application, but multiple applications in Rails, using a lot of the same code in most of them. Think things like user management, etc.

If you, as a customer, 'own' the software, he suddenly can't use things like `<%= render 'user_bar' %> or something anymore, he will have to rewrite it for every client. This is nonsense, because you don't WANT to own this bar. On top of this, you shouldn't want this because you want a programmer who can deliver high-quality code quickly. So him reusing his best code between clients is what you want him to do, not reinventing the wheel every time.

What you ACTUALLY want is to own the application, the problem that it solves, not the code. The success of an application is not (just) the source code, it is the problem scope, the design, the concepts behind it, the way it performs, the usability, etc.

What I'd want as a client is for my programmer to not resell the same app to someone else in the same industry/competing industries. What do I care if some programmer uses the same trial account code in 20 different apps? As long as he doesn't sell others the same product I am ok with it.

On top of this I want to be able to use the code I get however I want within my own scope. I should not have the right, without paying extra, to sell the code to people outside of my industry. I do want to have the right to sell the whole company however, or the part of my company that 'has' the code.

Well said — non-compete clauses etc. all make sense, but insisting on owning everything per common law is actually counterproductive.
Why would you slack on writing good especially if you'll be handing it off? Once it's theirs they can do whatever they want with it including showing off your shoddy work. Even if the project is successful, it's unlikely they'll come back to you with more work in the future.
In practice, software is assessed by its functionality not its underlying quality. This applies in spades to the target of the advice proferred.