NoICE is Pay Software - Pay as in Mortgage
I am sometimes asked why I don't release NoICE as open source, so that
people could add new features - support for Linux, GCC/DWARF, new target
processors, etc. This essay explains my reasons, as well as some general
thoughts on open source and free software.
NoICE began in 1992 as a hobby. It was a DOS-based disassambler with an
interface to a target monitor (the same monitor still used today on Z80 and
HC11). After a year or so of adding features, I started distributing it as
shareware on Compuserve. It was more like stamp collecting than a business -
my first order was from Belgium, which was pretty cool in those pre-Internet
In 1997 I ported (and mostly rewrote) NoICE to Windows, as much to learn
Windows programming as anything else. Features were added and sales slowly increased.
By 2003, NoICE had morphed from a paying hobby into a small business. If
I divide my pre-tax NoICE profit by the hours logged (I use TraxTime from
http://spudcity.com), I find
that NoICE pays me about one third of what contract programmers get paid
locally. Better than flipping burgers, but less than I could make working
on someone else's project. So personal satisfaction is still an important
part of why I work on NoICE.
In 2003, about 35% of the time I spent on NoICE was technical support.
This includes answering questions (many of them covered in the documentation),
verifying bug reports and the like. I see that this is up from 26% in 2002,
a trend which I hope does not continue.
My experience has been this: about half of my technical support time is
spent working with people who never buy NoICE. I don't complain too much -
I would much rather have someone figure out that NoICE won't do what they
want before they pay me than after. But the fact is that I spend a lot of
time on effort that makes no profit.
Now, I could blow off the payless clueless with an RTFM. But every once
in a while, just as I am ready to give up on someone - and sometimes after -
the light goes on, they "get it", and they become customers. Some of them
become fans who promote NoICE to friends and on newsgroups.
The other side of my experience is that roughly 80% of the people who
actually buy NoICE never send me an e-mail. No pre-purchase questions.
No support questions. No bug reports. I'm sure that some of them buy the
program and never use it, or give up in disgust. But I presume that most
of them are able to use the program with no help from me. Which is
So why don't I release NoICE as Open Source?
"Free as in freedom" (GPL) software is a wonderful thing. So is "free
as in beer" software (I see that the
Free Software Foundation
is now saying "free as in gratis". I live within puking distance of a Big Ten
university, so I can appreciate the change). I am very impressed by and appreciative
of the efforts of the open source community. But Linus Torvalds began
Linux while he was a college student, and Richard Stallman's income was
not dependent on how many copies of emacs were sold. I have a friend who
credits "thesis avoidance" as the major driver of most open source projects.
Linus now has a job.
I have a mortgage and a hungry dog. Richard Stallman is still
Richard Stallman. If someone wants to
pay me for being a balding white male, then I can give away my efforts as a
programmer. If someone wants to pay me to program independent of any revenue
stream from the result, then I can give away my programs.
The FSF folks suggest that I should give away the software and charge
for support. I don't know if Cygnus makes any money, but my experience with
NoICE leads me to believe that most users don't need support and many that
need support won't pay money. In any case, Cygnus doesn't really target
individual users. They get paid by nervous companies that buy annual support
contracts for large numbers of users.
Face it - most people don't use Linux or GCC because they can modify
the source code. They use it because
- it isn't from Microsoft
- it is free as in beer
- it lets you be hip and kewl and a part of all that slashdot stuff
I am a firm believer in volunteer work. I do network and computer maintenance
for a local women's shelter. I have cleaned up and repaired computers for folks
who otherwise couldn't afford them. I feel no obligation to donate software to
middle class geeks who can afford to buy it.
So if you use NoICE, pay for it. If you think that you can write a better
debugger, start coding. And if you want free as in beer, download gdb.