Originally published on: Wed, 28 Oct 2009 02:18:20 +0000
In the early 90's, I wanted to be an independent software developer. Heck, I wanted to be an indie in the 80's, too. I just didn't ever seem to be able to harmonize software I'd written with any kind of a need in the marketplace.
At this time, I was still in the habit of frequenting electronic bulletin-board systems (BBS's). Although I had picked up this hobby while the venerable Commodore 64 was my computer of choice back in 1984, I primarily frequented bulletin-board systems running on MS-DOS ( often supplemented with Quarterdeck's DesqView to support multiple incoming calls. )
A few of the BBS's I was particularly drawn to were running on a nice little system called the Spitfire BBS written in Turbo Pascal by fellow Iowan Mike Woltz under the company name Buffalo Creek Software. Mike was selling this software independently. The sysops loved it. The users loved it. I was very impressed that someone who probably lived just a couple hours away from me was actually selling his own software independently and was obviously picking up some sales in my neck of the woods.
In addition to the BBS software itself, Spitfire was able to host third-party plug-ins called "doors". Doors were simply external programs that observed a predefined parameter file format which contained information about the current user and such. The door program could then take over the online experience as an extension to the BBS itself.
One of the non-game-oriented doors available for Spitfire was a message-board add-on called CircuitNet. This was a networking plug-in that provided a series of nationwide, special-interest, moderated forums not unlike FidoNet.
Later, Woltz wrote his own add-on for Spitfire called SFNet which ultimately replaced CircuitNet on the BBS's I used to frequent.
One of the SFNet nationwide forums was specifically for door program discussion. A number of doors were discussed. Game doors were quite popular. One door author would show up from time to time on the forum and would release some pretty good games as try-before-you-buy shareware. He made what I assume to be a small but nice enough amount of money at it, so I decided to try my hand at writing some software that I felt would be of interest to the Spitfire community.
My first attempt to write and sell my own software using the shareware marketing concept was a program called keymac. Keymac was an MS-DOS TSR ( terminate but stay-resident ) utility that I wrote in assembly language. It ran in the background, intercepting all keystrokes that were gathered via the standard BIOS and DOS API routines and would check for keys that had been defined in a macro file.
The macro file allowed one to cause a single key ( with CTRL, ALT, and SHIFT as modifiers ) to generate multiple virtual keystrokes. One could configure the macro text file so that by pressing F8, the characters for a string such as "Hi, there, friend!" would appear to have been typed at the keyboard.
I wrote this utility because a sysop on one of the Spitfire forums was hoping for some kind of macro facility in the Sysop chat mode so that frequently asked questions and such could be answered with the touch of a single key.
I wrote and tested the program and decided to sell it for three dollars. I thought that I'd be able to sell a couple dozen copies of the software over one of these forums and that really would have been enough sales for me.
I released the utility with no nag-screen nor expiration time-outs nor any limiting features on one of the sysops' BBS's and gave them a free copy for hosting it. Then, I announced it on one of the forums.
Another sysop ... the one who had wished out loud for a macro feature ... tried keymac and thanked me for it ... but no payment ever came my way. I was dumbfounded. I had written this utility in some very tricky, very tight code and had gone through some considerable testing to make sure that it worked properly. People were using it but I wasn't getting rich. I wasn't getting anything.
One day, I had gotten home from work and was opening my mail when I noticed a personal letter from someone in a distant city that I didn't know. Sure enough, a check for three dollars and a letter thanking me for the utility were in the envelope.
I ended up calling the guy to thank him and asked him how he used the software. He was just ecstatic about the program. He was a sysop, but he used the software on other computers for his own BBS'ing as a client. He said that he'd found many uses for it outside the realm of telecommunications altogether.
I was very happy. The money wasn't really the issue. By sending a check, the gentleman had sent me an affirmation that I had written something that he found useful enough to pay me for it. That really made my day.
Inspired by my first sale, I ventured out to write another program for the same community. This time, I decided to write a door program as I thought that by targeting something that the BBS users would want instead of the sysops, I might make more sales.
My door was actually a door utility that ran as part of Spitfire's scheduled maintenance activities. ( I can't remember exactly how this worked, but I believe there were batch files that ran nightly that could be customized by the sysops ).
I wrote a little utility that would read the users scores from another door game and would post a message to a specified forum containing the high-score list or something like that. Again, I gave a copy to the sysop for the BBS I visited most often and made an announcement on one of the forums.
This time, I actually think I sold two copies of this utility, again at three dollars each. I was quite happy with that. I didn't take long to write, except for some work with the sysop to ensure that I was posting the message according to the published data-structures. It took me a bit longer that it might have others because I was writing this utility in C and had to deal with data types specific to Turbo Pascal such as counted-strings/packed-arrays-of-characters; strings with a length byte at the beginning instead of a C-style zero-byte terminator.
I was just happy enough that a couple more people registered in a rather timely manner. However, one of the two had a problem with the program. I ended up spending enough time on a long-distance call to correct the program, that my gross sales for the two copies were eaten.
At that point, I ran out of enthusiasm for publishing much more in this particular genre of software. Soon enough, the Internet became readily available to the public and the BBS's started to disappear.
From these early experiences, I had found that I needed to strongly consider how to price my products in future attempts at marketing software and also needed to ensure that I had some way to keep my support costs down.
Something that wasn't quite obvious to me yet was that I was going to have to find a way to ensure that people who had planned to pay but were procrastinating could be nudged into paying in a timely manner.
My next steps into becoming an indie software developer were much more fruitful. I'll tell you more about those in this Tale Recursion section of my blog soon.
Unless otherwise noted, all code and text entries are Copyright ©2009 by James K. Lawless
Views expressed in this blog are those of the author and do not necessary reflect those of the author's employer. Views expressed in the comments are those of the responding individual.

Save to StumbleUpon
Digg it
Save to Reddit
Share on Facebook
Share on Twitter
More bookmarks
| Previous post: | Shrouding CSharp and Java Source Code with AWK |
|---|---|
| Next post: | Hiding Batch File Console Windows |
Click **here**
A JavaScript REPL for Android Devices
A Review of Kevin Mitnick's Book Ghost in the Wires
Play MP3 Files with Python on Windows
Mad Schemes : Learning Lisp via SICP
An SMTP Server Simulator in Perl
Auto Save Images from the Clipboard
Setting Text Color in a Batch File
Compiling Rhino JavaScript to Java
Play MP3 Files with Python on Windows
Why Some Web Sites will go Dark on Jan 18th
Book Review : Paull Allen - Idea Man
A 90's Experiment in Online Systems - The U.S. West CommunityLink Service