
Lesson #7 - It's not good enough to write and sell something that people want, it has to be got to be something they'll spend money for as well.
I don’t think it was that we were "too early" or that we got killed when the bubble burst. I believe it all came down to product design, and to some very slight differences in approach.Blink failed because product design decisions killed the potential network effect that can occur when large groups of users share stuff. Personal online booksmarks are easy. Del.icio.us won because it made it easy for users to share and find new bookmarks - Blink made that very hard.
Nick Bradbury posted a behind-the-scenes look at how he develops FeedDemon and TopStyle, including design-time screenshots of what his products look like in Delphi. Cool stuff.
Like Nick, I also do most of my work in Delphi (NetCaptor and other stuff that I can't talk about right now). I remember talking with Nick about Delphi when version 5 was coming out, and how he was staying with version 4 for HomeSite. Looks like TopStyle is still in Delphi 4 while FeedDemon is in Delphi 7.
I've kept NetCaptor in Delphi 6 (there are several newer versions of Delphi) because I don't want to go through the hassle of porting it to work in a later version. Borland has a tendency to break things, especially in shell-related and common controls code, so its much easier to stay in D6. If its not broken, don't fix it.
I won't post design-time screenshots because they would be pretty boring - almost everything is created at runtime in NetCaptor. Like Nick, I use some components from TMSSoftware, and also from PlasmaTech. I always buy source code licenses so I can modify code when necessary.
One of the most important part of my development process is the use of SourceSafe for version control. I don't need to share code between different developers, but SS is still invaluable to me. I can't tell you how many times I break something from one build of NetCaptor to another and SourceSafe bails me out with its file version comparison stuff. The tools show me exactly which lines of code changed and generally makes it easy to pinpoint problems.
I use the Nullsoft Scriptable Installation System for my installers and have batch files which complete the build files. I like NSIS primarily because it creates great-looking installers which are VERY small. Why add 300 KB for an installer when your app is only 600KB?
Check out Joel's new Camels and Rubber Duckies article on software pricing. Then...
I'm a big fan of audio books from Audible.com. Some I put on my iPod to listen to when I run, others I burn on CD to listen to on long car trips. Their selection is good (not great) and they are the only outlet for much of the content they offer.
That said, Audible is easily the most annoying site I frequent for one simple reason: all links are javascript links. Mouseover the average Audible link and you'll see something like this:
Why is this so annoying? I can't take advantage of tabbed browsing. I can't SHIFT-click and open a new tab, I can't right-click and open a new tab at a link. I can't have separate searches going on in separate tabs. Their linking strategy makes me an incredibly inefficient browser on their site. If I could get these books anywhere else, I'd do it in a heartbeat.
The silliest thing about this problem is that there is no good reason to require javascript links. Pick apart the linkThis javascript function and all you find are some conditional parameters and location.href calls. There's nothing in there you couldn't accomplish by embedding these parameters directly in standard anchor links. Arghh!!!
To many, the word shareware means try-before-you-buy software. I grabbed this from the MS homepage today. Looks like the biggest software company in the world is a shareware company.

The link takes you to the Microsoft Trial Software Center.