views:

508

answers:

8

I have asked a few developers who produced software they no longer maintain or let die, why they don't open source the software and let other developers take it forward and enhance it. Or at least not let it disappear.

Most of the excuses were about the quality of the code. They don't want to open source because they are ashamed of what they have coded. In my opinion, if the software works, people are downloading it and using it, that says enough about the software. No one is proud of their own code. If anyone looks at their year old code, you surely decide you can do better now. I have used some good software no longer exists. I find it this to be a waste of good resources.

Why would some developers prefer to let their software disappear instead of giving it to the public? One reason I can think of is that they used someone else's IP and they don't want to be exposed. Should developers be encouraged to open source their software if they have no intentions of profiting from it now or in the future?

+8  A: 

Some people really might not want their code to be criticized and don't feel like cleaning it up. It is somewhat legitimate though I agree if does prevent useful code from getting out to the community. It's not prima facie evidence that they are using IP that they shouldn't though.

BobbyShaftoe
"...don't feel like cleaning it up" - surely the point of open-sourcing would be to get others to clean it up? The author is probably not going to want to spend effort cleaning up a code base they probably won't touch again.
DisgruntledGoat
But you missed the first part; the author may not want to be critcized or have their code criticized.
BobbyShaftoe
Where's all this criticizing happening that people have fear from? I have monitored a few discussions on CodePlex and haven't seen any. A willing-to-learn coder should be able to take in some heat and appreciate the feedback. Don't live in a hole.
Tony_Henrich
+7  A: 

Maybe because open a software's code demmands some effort they're not willing to spend.

Ciwee
Give it to someone who likes the software and is willing to take the effort.
Tony_Henrich
+2  A: 

No one is proud of their own code? Don't believe you.

We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris. -- Larry Wall

martin clayton
+1 for quoting Larry Wall (!)
ZJR
+3  A: 

I can understand where your coming from. The software works and that's what really matters. I can also understand where the developers come from. Many programmers develop bad habits while coding (ie. not commenting). I'm guilty of this myself sometimes. In my opinion, I don't think this should limit them to keeping their applications closed source. If you open your source, you open the doors to all new sorts of possibilities. If your not going to work on a certain program anymore, why not release the source? People can take what you know, apply it, make it better, and ultimately keep your application up to date and better than before. Overall, developers should be more open about releasing their source code, especially if no profit is ever intended.

Nate Shoffner
It's also a very good learning method where developers improve your code, fix bugs, add comments... etc. Come back, look at the code and go "That developer used a better algorithm, more optimized function.. I am learning." You become a better code by looking how others imrpoved your own code.
Tony_Henrich
+8  A: 

If someone really wants to release the code but are ashamed of it, the rational solution is to remove all traces of their authorship from the source code, then either release it into the public domain, or assign the copyright to someone else.

That aside, there are all sorts of possible reasons for an author not releasing source code:

  • Maybe the code really is crap and the author doesn't want a potential future employer to associate him/her with it.
  • Maybe the author is unduly sensitive about (possible) criticism from his/her peers.
  • Maybe the author thinks the code is not worth the effort of saving, and is trying to stop other people wasting their time on it.
  • Maybe there are potential IP issues that the author doesn't want to spend time sorting out:
    • some open source code might have been copied without proper attribution or under the wrong license,
    • some closed source code might have been copied,
    • some patented method might have been used. (Aside: can anyone ever be sure that their code doesn't uses a patented method? No!)
    • the author really cannot remember what short-cuts he/she might have taken N years ago ...
  • Maybe the code contains secrets that the author doesn't want to reveal:
    • maybe it doesn't do what he/she claimed it does in some research paper, or some such
    • maybe he/she thinks it might give competitors (e.g. other academics) an advantage to see the "secret sauce" techniques his code uses.
  • Maybe the author dreams that some day he/she will be able to sell the code for big pots of money.
  • Maybe the author dreams that some day he/she will find the time and energy to fix the code, release under an open source license and become as famous as Linus. (Yea .. that Linus!)

Or maybe the author is simply just not interested, and the "I'm ashamed of my code" excuse is just a ploy to make you go away :-).

Stephen C
I think that the very last paragraph nails it.
Tom Leys
Remove all traces of ownership, name, ..etc and give it to an org like codeplex.org. And don't bother cleaning up the code. That will never happen. This is analogous to deciding to clean up the garage or attic five years ago! You will always find something more important and fun to do.
Tony_Henrich
A: 

I faced this recently, and concluded that putting the code out there and making it discoverable can be just a first step. If nobody takes an interest in it, you haven't lost anything, and if you start to accumulate a user base you can always improve the documentation and code quality later.

I think people understand the resource constraints involved with software development, and being able to make and explain tradeoffs intelligently is more important than necessarily investing all the time up-front to write 100% good smelling code. Sometimes you need to expedite -- that's what refactoring is for!

dacc
+2  A: 

I have answered the questions posted, in order. Yes, these are opinionated.

[Do you have this as a study somewhere? It would be interesting to see. Just vague references and quantifiers aren't very exciting.]

Perhaps the code was written for fun, learning, work-for-profit at the time, because "it could be done", or for some other motivational reason. It served a purpose; perhaps the purpose is gone -- as well as the incentives behind. It takes effort to find old code, publish old code, and answer silly emails or questions about old code. (And for some, it takes effort to not care about what others think.)

I would be hesitant to jump on the idea that the code kept hidden "violates IP". This is an unfair and unfounded assumption without better proof.

Encouraged? Perhaps. Forced? No. Code is a creation and, like any art, is is a product of the creator. Unless they have alright assigned away the rights, it is the authors work. Perhaps it is deemed to be awful and forever buried away -- so be it. The same happens to other forms of art all the time.

pst
The hidden IP might be very well unintentional. You might copy some code from other projects without knowing you're violating some copyright. (side note: SCO trying to sue Linux)
Tony_Henrich
Not again... (wrt SCO :-/)
pst
Re: the SCO sidenote - SCO was never able to produce any real examples of copyright violation in the Linux codebase.
Stephen C
+3  A: 

I can completely understand this.

I wrote some software ten years ago for a volunteer organization. They are still using it and it 'works'. But it is ugly. I know so much more now about how to design software. It is painful to even have to make updates and changes to it. I'd love to take some time to clean it up, but I just don't have time. I don't really want anyone else to take over the project because I am embarassed to have my name associated with the code -- even though my name isn't actually in the code. It still reflects on me and even though I may know better now.

Logically, I know better. It is stupid to think this way. But I can't overcome the psychology. It is very real and it is a tough dilemma. I wouldnt assume issues with IP or hidden motives.

g .