Subject: Re: someone start a topic, please
From: Ian Lance Taylor <ian@airs.com>
Date: 07 Mar 2005 10:53:30 -0500

Tom Lord <lord@emf.net> writes:

> *Maybe* this is a starter:  as a *hacker*, i've often been 
> disappointed when my big, richly complicated but totally nifty
> ideas don't make me much money /while at the same time/, some
> dork will take a very simple hacking idea, spend all of their
> time on packaging and marketing, and Win Big.
> 
> Those lucky dorks know something about what's important in markets
> that my hacker-self doesn't.   What, though?

Put that way, it's very simple.  What they know is that people don't
pay money for big, richly complicated but totally nifty ideas.  People
pay money for things which they need, or for things which they want.
There is not one person in the whole world who needs a big, richly
complicated but totally nifty idea.  There is a fairly small number of
people who want them.  So your target market is quite small.

Now, it is certainly quite possible that your big, richly complicated
but totally nifty idea provides some benefit which people understand
and which they need or want.  You have to say "if you pay me $X, you
will get this benefit".  Now, that benefit could be big, but it had
better not be richly complicated, or few people will take the time to
understand it, no matter how nifty it is.  And since there are
generally alternatives for any particular benefit, X has to be a
reasonable price for the benefit compared with the possible
alternatives.

I'll stress that a benefit is something which helps the user.  To pick
a random web page, let's look at:
    http://regexps.srparish.net/www/arch-overview.html
I see some header items:
  * Whole Tree Changesets: Atomic Commits and Add/Delete/Rename Handling
  * Symbolic Revision Names
  * Easy Branching and Smart Merging
  * Versioned Tagging
  * Lightweight, Standard Servers; Simple On-disk Formats
  * Distributed Operation
  * Integrity Checking and Signed Revisions
  * Easy Mirroring
Although some of these come close to being benefits, in general they
are features of the software.  A listing of benefits would look more
like general benefits:
  * Easy to Learn
  * Easy to Use
  * Makes you more efficient
  * Handles unlimited amounts of source code
and specific benefits over the competition:
  * Never loses data
  * Not limited to a single server
  * Better representation of the changes you make

Ian