One thing that's awful obvious to me now is that you have to target money to make money. Want to write the next great Internet utility -- or even a cheesy email list digest parsing application -- for home computer users everywhere? That's great, but it's not going to make money. Note that I haven't released the app yet, but it's already becoming painfully obvious. Much of your potential audience is getting along fairly well now without your app, and for the less-than-hardcore digest users (in my case), the advantage over what they do now is too small for customers to say, "Wow, $15?!! I'll save more than $15 of time in the first two months of use!"

If you want to make money, target money. Make an application that handles finances. Target an industry, not a home user. Make something that benefits a business, not just its employees on an individual basis. Appeal to a team or a manager's sense of "time is money in the workplace" by creating something they need to make a sale.

But most importantly, get contacts in the business where you want to make dough. The best advice I think I can give a programmer who wants to go into business for him or herself is to practice them people skills. You're going to have to be able to sell yourself to people who have money to make money. Have I driven that point home well enough yet?

Utilities and consumer apps are great, and if you have the desire to make something "done right go for it. But if your motavation for programming your own thing is to make dough, target dough.