Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

[P]
The right way to convert to open-source

By eries in Culture
Mon Jun 19, 2000 at 10:21:37 PM EST
Tags: Help! (Ask Kuro5hin) (all tags)
Help! (Ask Kuro5hin)

We have a closed-source piece of software that we have been developing at my company for some time. We've been thinking about taking it it open-source for a while, but we have the typical dilemna: the existing code is confusing, poorly documented, and just generally obscure. So, the question is, should we just release our existing code base, asking other developers to get involved in helping us clean it up, or should we start rewriting it from scratch, asking other developers to help us port the various sections? Or is there some other alternative we haven't considered yet?


We've read a lot of the existing documents on OSS, but few of them have this level of hands-on practical advice. We've thought about various examples, like Slash, which took a lot of fire for not releasing the ugly code, to Mozilla, who did release the ugly code and had lots of problems attracting developers. What's the right way to do this?

I've been digging up a few of my old posts from other forums (like AskSlashdot) that never made the cut, that I think might spurn some discussion on K5. This is my first; if there's interest, I'll keep posting more.

Sponsors

Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure

Login

Related Links
o Slashdot
o Also by eries


Display: Sort:
The right way to convert to open-source | 19 comments (19 topical, editorial, 0 hidden)
going by the release early release ... (5.00 / 2) (#3)
by l4m3 on Mon Jun 19, 2000 at 07:12:39 PM EST

l4m3 voted 1 on this story.

going by the release early release often mantra the only way to go is to release whatever you have. I am not a big fan of this since you end up seeing freshmeat floded with lamesqlscript-0.01a that is not much more than a readme and the shell of an executable. Post the code, maybe not all of it, but the major chiunks that way you can show you are commited to it. Kinda like how SGI posted chunks of their filesystem code even though it didn't compile. Then as you clean up the really nasty parts post those. Once you get enough of the really bad parts done that you don't feel ashamed of the code post it all. This way you get the community to recognize what you are trying to do, you prove that its not just empty promises, and you keep your dignity but not showing that part that has a race condition brought on by too many goto's, or where you have memory leaks because you forgot to add 1 to strlen.

does everything tech & culture have... (1.50 / 2) (#1)
by Fish on Mon Jun 19, 2000 at 07:19:09 PM EST

Fish voted 0 on this story.

does everything tech & culture have to be about open source? I don't think so.... [yawns]

Re: does everything tech & culture have... (3.00 / 1) (#16)
by Anonymous Hero on Tue Jun 20, 2000 at 11:20:24 AM EST

Well post something different and kwitcherbellyachin'.

[ Parent ]
mozillas problem was not the ugly c... (4.00 / 3) (#5)
by eMBee on Mon Jun 19, 2000 at 07:58:44 PM EST

eMBee voted 1 on this story.

mozillas problem was not the ugly code, it wat that the code did not work.
start by releasing your last _stable working_ version, so users/developers will have something working to play with, at that point it doesn't matter how the code looks, if someone complains, tell them, that the alternative would have been to wait for cleaned up code...

yes, clean code will attract more developers, but not-working code will attract a lot less than ugly code.

greetings, eMBee.
--
Gnu is Not Unix / Linux Is Not UniX

Mozilla -- other problems (none / 0) (#17)
by kmself on Tue Jun 20, 2000 at 12:52:48 PM EST

Nicely summed by PresJPolk.

--
Karsten M. Self
SCO -- backgrounder on Caldera/SCO vs IBM
Support the EFF!!
There is no K5 cabal.
[ Parent ]

Release early, and release often. ... (4.00 / 3) (#4)
by PresJPolk on Mon Jun 19, 2000 at 08:06:11 PM EST

PresJPolk voted 1 on this story.

Release early, and release often. If it's ugly, start working on cleanup AFTER the initial release. The sooner you get the stuff out there, the sooner you can get people looking at it, talking about it, and (perhaps even) liking it enough to enhance it.

Mozilla's problems attracting developers were because...

  1. The codebase was huge, and hard to tinker with.
  2. The original released code wasn't really compileable, thanks to the removal of large sections of encumbered code.
  3. Early revisions of the NPL and MPL weren't trusted.

However, once things got going with Mozilla, the developers did come.



First, how ugly is the code? Is it... (3.00 / 2) (#2)
by fluffy grue on Mon Jun 19, 2000 at 09:21:45 PM EST

fluffy grue voted 1 on this story.

First, how ugly is the code? Is it so irreparably ugly that you couldn't possibly conceive of cleaning it up before opening it? (Like, is it Slash or Mozilla ugly, or just "need to add better documentation and maybe comment some variables" ugly?) You could always try opening the source without a lot of hooplah, get some initial developer reaction, and THEN decide what you want to do based on that initial feedback.
--
"Is not a quine" is not a quine.
I have a master's degree in science!

[ Hug Your Trikuare ]

Re: First, how ugly is the code? Is it... (4.00 / 1) (#8)
by eries on Mon Jun 19, 2000 at 11:02:10 PM EST

Well, it's ugly, but not unmanageable. It's almost all object-oriented, so although a lot of the object internals are messy, all objects have a clean interface.

We've basically been going ahead with the suggestion you offer - we're working on a closed CVS tree on Sourceforge (http://enzyme.sourceforge.net) and we're looking for people who want to get involved before our first public release.
Promoting open-source OO code reuse on the web: the Enzyme open-source project
[ Parent ]

Re: First, how ugly is the code? Is it... (4.00 / 1) (#12)
by fluffy grue on Tue Jun 20, 2000 at 01:46:18 AM EST

Hm. As long as they have a clean interface and are all properly-accessed (like, only methods are public, all data goes through accessor methods, none of that public member crap :) then I don't see what a problem with a release in its current state is. At the worst case, someone will not be able to grok the code within a method, and will just rewrite the whole object class. :) I mean, it's not like Mozilla with lots of public members and pointers between void * and int with switch()es being performed on them, right? ;)
--
"Is not a quine" is not a quine.
I have a master's degree in science!

[ Hug Your Trikuare ]
[ Parent ]

Re: First, how ugly is the code? Is it... (4.00 / 1) (#15)
by eries on Tue Jun 20, 2000 at 03:32:43 AM EST

Luckily, it's all PHP, so it can't get _that_ bad. No, most of the end-user stuff is pretty straightforward. We're hoping to do a code release as soon as we strip out all the Catalyst-specific code and get it working on at least one other instantiation of the general concept. Anyone who's interested in invited to join the discussion/team at http://enzyme.sourceforge.net

Eric
Promoting open-source OO code reuse on the web: the Enzyme open-source project
[ Parent ]

Re: First, how ugly is the code? Is it... (3.00 / 1) (#13)
by fluffy grue on Tue Jun 20, 2000 at 01:50:11 AM EST

Ahh, now I know why you're always p1mping CatalystRecruiting... :) One thing that's bugged me on it (which is why I've never gotten around to finishing up my profile on it): it'd be nice if, under education, you could have multiple degrees at one institution with different graduation dates. I got my BS in CS already. I'm working towards a Ph.D. in CS at the same institution. Obviously, I don't have the same graduation date for both. ;) Also, for fields of study, you really should use a listbox instead of a dropdown. huge dropdowns REALLY suck, especially under Netscape for Linux.

I couldn't feel bothered to actually send in a feedback form since I figured it'd just get ignored by some random staffer with a copy-paste FAQ. This direct approach seems better to me. ;)
--
"Is not a quine" is not a quine.
I have a master's degree in science!

[ Hug Your Trikuare ]
[ Parent ]

Re: First, how ugly is the code? Is it... (4.00 / 1) (#14)
by eries on Tue Jun 20, 2000 at 03:31:15 AM EST

Hehe. Yeah, I have found that putting that simple ad for Catalyst in my .sig has generated literally hundreds of new users for us via Slashdot. I've been thinking of writing an article about it, since I think it's a really interesting form of coroporate-community interaction, but that's for another post...

I can't resist answering the problems you've had, so here goes. First off, you can have multiple majors in multiple degrees at multiple schools, in whatever combination you want. So you can easily add a PhD degree with a different graduation date than your undergrad degree, just click on "More degrees at this school."

Although the direct approach is, definitely, better - the feedback form goes to me directly, as well as every other member of the dev team. I'm pretty proud of our new-feature/bug-killing turnaround time ;)
Promoting open-source OO code reuse on the web: the Enzyme open-source project
[ Parent ]

Re: First, how ugly is the code? Is it... (none / 0) (#18)
by fluffy grue on Tue Jun 20, 2000 at 04:04:06 PM EST

Nononono... I know you can add multiple degrees. The problem is, they all have the same "expected graduation date," since that seems to be per the institution and not the degree. I already graduated and got my BSCS. I'm nowhere near graduating and getting my PhDCS (from the same institution). I don't even have an estimated date, and I want my profile to reflect that. (I know you just SAID that the different degrees can have different dates, but I already TRIED that, and they can't. :)
--
"Is not a quine" is not a quine.
I have a master's degree in science!

[ Hug Your Trikuare ]
[ Parent ]

Who cares? The guy answers himself ... (1.50 / 2) (#6)
by dr_lha on Mon Jun 19, 2000 at 09:24:37 PM EST

dr_lha voted -1 on this story.

Who cares? The guy answers himself - the obvious thing to do is to clean up the code, document it and then open it up. What's to discuss?

Re: Who cares? The guy answers himself ... (4.00 / 1) (#11)
by Anonymous Hero on Tue Jun 20, 2000 at 12:20:12 AM EST

no, he didn't answer himself. He provided one option that he had considered. If you think that's what he should do, then simply say so.

[ Parent ]
I work for a big company (4.00 / 2) (#7)
by Anonymous Hero on Mon Jun 19, 2000 at 11:01:20 PM EST

I am an IBMer...who will stay anonymous just incase I screw up here ;-) Basically..some of the stuff I have seen opened is horribly documented..and here is the opinion I have...

Take the code...release it...and then start to clean it up. you can always help someone if they want to do something immediately...but the sooner you get it out there...the quicker you will see returns on Open sourcing it. if it takes you 2 weeks to document it all...thats 2 weeks someone in management might get pissed off they are paying you for this and pull the plug. if you open source it first, you will get faster returns...and there will be less complaining about the time and $$ it takes to document.

Just my $.02

Re: I work for a big company (4.00 / 1) (#9)
by Marcin on Mon Jun 19, 2000 at 11:15:22 PM EST

Take the code...release it...and then start to clean it up. you can always help someone if they want to do something immediately...but the sooner you get it out there...the quicker you will see returns on Open sourcing it.

Personally if I was going to consider working on something that had been Open Sourced (having been previously closed source) I'd definately want to see that the original authors were still working on it. That is, if I saw an open sourced project that someone had dumped onto sourceforge and then forgotten about it, I wouldn't really be inclined to work on it.. I mean, what's the point if the people who wrote it don't even think it's good enough to work on?

So yeah, what you say would be good, release it as it and then start cleaning it up yourself 'in the public domain', so that people see you've committed to still working on it as open source.

And as someone else says in this thread, make sure it works. I know when I want to learn about how something new works (like say Scoop) I like to be able to make a little change to it and see what it does. Kinda hard to do if it's not working in the first place.
M.
[ Parent ]

Here's what you do... (3.00 / 1) (#10)
by iCEBaLM on Mon Jun 19, 2000 at 11:31:54 PM EST

Speaking as a (pretty new) open source coder, the best thing to do is just release the code as is while cleaning it up. If it's interesting you'll get help, if it isn't, well, what can I say? The beauty of not being paid to actually write the code is that you can pick and choose the projects that interest you.

-- iCEBaLM

Its all about embarassment! (none / 0) (#19)
by Anonymous Hero on Wed Jun 21, 2000 at 12:12:25 AM EST

You can take any source you fully own and open it, on one condition - can you face the embarassment of letting many eyes see your ugly mess? If you can, then set if free today, and then start the clean-up. If you can't, then start the clean- up behind closed doors. When the tedium of this wears down your embarassment threshold sufficiently, free what you have on that day!

The right way to convert to open-source | 19 comments (19 topical, 0 editorial, 0 hidden)
Display: Sort:

kuro5hin.org

[XML]
All trademarks and copyrights on this page are owned by their respective companies. The Rest 2000 - Present Kuro5hin.org Inc.
See our legalese page for copyright policies. Please also read our Privacy Policy.
Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
Need some help? Email help@kuro5hin.org.
My heart's the long stairs.

Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!