Subject: Should I release ugly source?
From: Dean Brettle <dean@brettle.com>
Date: Fri, 02 Apr 1999 10:40:43 -0800

Hi all,

I have written some code which allows me to sync my Netscape and
PalmPilot address books.  It is a patch to the GPL'd pilot-link
package.  I've tested it pretty thoroughly and it seems to work well. 
It is also some of the ugliest code I have ever written.  Poorly
commented, poorly structured, hard to maintain, etc.  I underestimated
the complexity of the problem and just kept hacking until I got it to
work.  It really needs a complete rewrite.  Unfortunately, I don't have
time to do such a rewrite at the moment.  Moreover, the pilot-link
maintainer is (understandably) reluctant to incorporate the patch
because part of what I did was implement a generic syncing interface
which he defined and then abandoned as overly complicated. 
(Unfortunately, I didn't realize he had abandoned it until after I wrote
the code.)

Should I make the patch available?

I see the following potential advantages:

1. It could make me feel good.  People who, like me, want the
functionality and can handle applying a patch, would benefit.  Maybe
someone else would even have the time to do the rewrite.

2. It could help build business.  I would get a qual.  Someone might pay
me to develop another conduit (or improve this one) if only because I
have the experience.

However I also see the following potential disadvantages:

1.  It could make me feel bad.  People who want the functionality but
can't handle applying a patch might pester me with annoying questions. 
Others might accuse me of forking (not my intention).

2.  It could hurt business.  Potential clients might look at the code
and conclude that I suck.

I've pretty much decided that from a personal perspective I'd prefer to
release it.  However, I'm not sure if it is a good business decision.

Does anyone have any past experience with "releasing ugly source" that
they would care to share?

Thanks,

-- Dean

+--------------------------------------------------------------------+
|    Dean Brettle Computer Consulting     http://www.brettle.com/    |
|      Contract development and support of software and systems      |
+--------------------------------------------------------------------+