Subject: Re: Kent Beck's talk
From: Adam Turoff <ziggy@panix.com>
Date: Wed, 4 Aug 2004 16:44:12 -0400

On Wed, Aug 04, 2004 at 12:37:17PM -0700, David Ascher wrote:
> Right.  For better _and_ for worse, the success of open source means 
> that a whole segment of the software industry is under threat.  Software 
> qua software isn't as profitable as it once was.  

One of the things I took away from OSCon this year is a clearer
understanding of this amorphous goo we lump together as "software".


Tim O'Reilly talked tangentially about one trend in his keynote.  While
open source software is interesting in its own right, the really
interesting apps today fuse some kind of proprietary data with open
source -- Amazon.com, Google, eBay, etc.

In some sense, software was always like this.  Look at any billing
system, CRM package, provisioing system, whatever.  It is a fusion of
some kind of raw software and proprietary data (business rules).  

Open source and the internet act together as a great leveller, leaving
less and less inherent value for pure software.  In the early days, if
you wanted a b-tree or a quicksort, you would pick up any decent
undergrad algorithms text and code it up.  There never was any real
business in providing generalized b-tree implementations for widespread
use (Sleepycat and Rogue Wave notwithstanding).

Today, Google can find that code for you you in the language of your
choice, but it can also find other forms of "pure code" as well -- http
daemons, web browsers, mail filters, list managers, etc.  There is no
"proprietary data" embedded in these packages; they are simple
generalized processes that are well understood and solved approximately
once.  Billing systems, on the other hand, vary widely because of the
manifold differences in business rules they encapsulate.


This, I think, is the fundemental flaw in Kent Beck's argument.  There
will always be another Chrysler around the corner ready to hire him
to build yet another compensation system, because the true value in
software lies in automating some custom process (the blend of software
and embedded data).  The reason why there is no dividend to collect for
JUnit is because it is so generic, so easily understood, and so readily
reimplemented from scratch.  

Z.