When to Start Selling?

Hi there, I’m curious about you guy’s experiences on when to start actually producing a proper commercial product to sell? Did you hack on the side (be it for personal projects or for open source) for a long time before deciding that you have a mature enough skill set to build a polished product to sell? Or do you just plunge in and try to sell something and struggle/make mistakes because of a lack of experience?

I’m asking because I’m a web developer who is thinking of building desktop applications. This means that I have to start from zero when it comes to another aspect of software engineering. What’s a good gauge to have in terms of knowing when’s the tipping point to start making sellable apps? Or should I, with zero experience in desktop applications, just jump right in i.e. have the entire experience be a concurrent educational experience?

Well, the fact is you’re gonna make a lot of mistakes regardless. It’s better to just go out there and learn from your mistakes ASAP.

You can try to wait and gain experience before you launch, but there are so many “unknown unknowns” that you’ll never be fully prepared. It’s better to just go out there and battle it out in the real world.

And there’s no greater motivation to get your butt in gear than customers pushing you to get busy.


Just jump right in!

Do you learn to ride the bike by reading books?

A better question is: When do I start marketing? The answer is: Before you have a product.

So you start your marketing before, try to build up an interest, and once you get enough interest, then you build the product and sell it.


I’d say jump right in.

1 Like

One more vote for the “just jump right in!”

Do start researching your market and understanding your customer asap. Collect email addresses of prospective customers.

Build a prototype that’s good enough to solve a real problem/kill a real pain. Make it good enough that you personally use it all the time. Get feedback from friends or people on the email list.

The best time to start is 5 years ago. The second best time to start is right now.


Thanks for the replies. I must have not elucidated my question clearly because I feel they are addressing the business part of my question, not the technical aspects.

I guess what I’m trying to ask is that when do you know your technical skills are up to par before you know you can make a commercial, sellable, product? Like, you don’t go out into the real world doing parkour until you’ve totally honed your parkour skills after countless training sessions in the gym. You don’t make a product after completing a “Hello World” program.

" You don’t make a product after completing a “Hello World” program."

Why not? Learn by doing, man!

  1. Start building
  2. Release
  3. Learn from the experience
  4. Either keep going if you’re getting traction, or throw it away and do something else if it doesn’t.

“Or should I, with zero experience in desktop applications, just jump right in i.e. have the entire experience be a concurrent educational experience?”

The same as everyone else here - jump right in. =) I get the feeling you want someone to come in here to tell you “nah nah, wait till you’re ready”. Tip: you’re never ready. No one is ever ready. You know when you’re ready? After you’ve built something.

PS: Leon Bambrick (who has already chimed in on this thread) is one of the greatest software developers and human beings walking the earth at the moment. You can happily ignore everything I say, but disregard Leon and know that you are disregarding a genius!!


Thank you all for your help, I greatly appreciate it. Pardon my ignorance as well, I’m super duper new and this is my first time speaking up after creeping on the focums for a while. Pleasure to meet all of you and you all have my gratitude for advising me.

While I understand that jumping right in is the best way to do things, at the same time, the perfectionist in me does not want to produce a piece of software that is actually bad and filled with mistakes. This is a mental block I have to overcome for sure. That said, I’ll start hacking away then! :smiley:

I don’t think you can ever overcome that mental roadblock. You just live with it. You carry it around every day. It’s there forever. Press on and learn and learn and commit to shipping.

If people say what you’ve shipped is no good – then it’s okay, because it’s software, you can update it. (Don’t commit to shipping your software as an embedded flight system on a mission to Mars… that’s the sort of thing you can’t take back…) Embedded flight systems aside, you can pretty much update and improve your software in response to legitimate criticism.


You should release (and start selling) your product as soon as you think it has value to someone.


I’ve been working on my main product for >10 years. There are still plenty of things about it that are far from perfect. But its doing just fine.

If you wait until it is perfect, you will never release it.


Yes. There is no other alternative. You will make mistakes.


Like @Andy says, you will never be ready.

Also, you are confusing technical brilliance for business skills. To sell something, you don’t need to be the best programmer in the world.You need to understand customer pains.

Case in point: Time tracking tools are a million dollar industry, when they are the sort of thing a college student could write in their spare time. Because the customers pay for what problems you solve, not how pretty your code is.


I’d generally also say jump right in. But if you need another idea, you could also start with developing some simple open source applications. Put them on Github, tell everyone. That way you contribute to the open source world, can invite others to have a look at your code and can start getting a feel for how it works out. You can build interest in what you do, see how people react to it, and connect to other people and/or future customers. If then you don’t feel that works right, well, it won’t get any easier once you try to sell something. Good luck.

1 Like

You’re currently working as a web developer, you’re looking to move into indie desktop software.

As a web developer, someone else is paying you to build / work on commercial software for them. This means you’re good enough to build web products on your own – otherwise how do you explain the fact that another company is selling the products you work on?

As for desktop software, I’m assuming you’re going to test the software before you ship it? Iron out any obvious bugs and shortcomings?

If the answer is yes, then you’re good to go. One of the HUGE advantages of desktop development is that you’re basically developing black box software. There’s no javascript, html or css files out there in public to point out your newness to a tech savvy user. If it works, and doesn’t fall over, then that’s all the user will ever know.

Believe me, I’ve pushed some embarrassing desktop code that still sells well 5-10 years later. I wouldn’t write that code now, but embarrassing code does not cause problems if it runs without falling over.

Desktop development is far more forgiving of mistakes that web software. If you build it, it’s built. So get off the fence, test your version 1, and kick it out the door.


The hardest part of a startup is product-market fit. And the hardest part of that is knowing what the customer needs. And it’s soooo easy to miss this.

The customer only cares about how well you meet their needs. They may not even know their needs or be able to express it. (It’s like a patient going to a therapist. The patient just knows “I feel depressed” but doesn’t know why. The therapist has to uncover that).

Anything extra in the product is a double waste: it’s wasted effort on your part, it takes time to realize the user doesn’t need it and in the meantime it gets in the way of features they DO need.

You’ve probably experienced this as a web designer. Customer comes to you and wants to pay you to do X. And often you may find that they think X will get them the $Result they want. But $Y will get it for them cheaper and easier.

This is why so many comanies have to pivot (as they learn more about the customer’s needs) and why some many successful products are created not by people with strong technical skills but by people who are makign MeWare (software for their own needs):

Customer Charlie asks you to build him a shiny new website with fancy website. As you start talking to them you realize their real need is a better converting website for a big advertising campaign.
What Charlie really needs is a good landing page tuned to the ad campaign.

Historical Examples

  • Fog Creek: started with City Desk, a market they didn’t really understand as well as the Programmer market (which was their second product: FogBugz). (Now, Joel et. all have strong development skills, yet their first product was a failure. Second one is still growing)

  • The original Apple Iie - Woz was a very smart but I’m sure that HP had teams that (combined) were smarter. the Xerox Parc folks (who invented Ethernet, Laser printers, the Mouse, etc.) were wayyyyy smarter but didn’t understand the user’s needs. Steve Jobs DID and continued to with the iPod and the iPad.

  • Flickr: started as “the never ending game” but they found that users were much more interested in the photo sharing.

  • My company (BungalowSoftware.com and now MoreSpeech.com). Our competitive advantage was not my technical skills as a programmer, it was that we knew the market (my wife is a speech therapist. This is software for speech therapists and their patients).


You’re right that you probably shouldn’t try to sell a software product the day after you’ve wrote your fist hello world program. Practically speaking you would probably want to at least complete a 3 month course a la treehouse or something like that.

My guess is though that you’re far from being in that position. Even if you’re diving into desktop app dev from a web dev background, you still have a ton of applicable experience and technical ability.

Roughly how long have you been doing development of some sort?

Far and away, as other people have said here, I think that as developers we err on the side of waiting too long. That’s a huge problem that probably 98% of us have and that we need to overcome.

Myself, I’ve been a web developer in some kind of professional capacity for about 15 years. Throughout that time I had several full time jobs and started a bunch of side projects. Most of them failed horribly. In the last 2 years I’ve built and now run my product full time.

But in reality that whole 15 year period was a training ground for this product, even though I’ve only been technically working on it for 2 years.

That’s not to say that it will take everyone 15 years to successfully launch a product. I’ve heard of people that literally take a 6 month training program and launch something successfully after that.

So the biggest variable really is the product market fit side of things. It’s really hard to estimate how long it will take you to figure that out, so just dive right in and try to sell something.

Congrats on beginning!

1 Like

I have a reasonable collection of “MeWare” (thanks for the term, @Clay_Nichols) that I wrote many years ago (in VBA & Lisp) but it still useful to me today. I have sold a few copies to people who have seen me use it and then literally begged me to take their money. Am I proud of that source code? F$k no. It is useful, yup. It is stable, mostly :/.

I’m a self-taught coder, it’s not my main profession but I have already shown myself that I can build stuff that works and sells. It took a long time for me to believe that. Read http://www.hanselman.com/blog/exploringimpostorsyndromeintechnologysxsw15.aspx and the previous article he posted.

The fact that you’re here and actively trying to do this “properly” (whatever that is) puts you at the front of the game. If life has taught me anything, it is that attitude beats aptitude, you can’t fix a dickhead but if you’re determined to do something then nothing will stop you.

You will make mistakes, it is how you deal with them that is the mark of a (wo)man.

“MeWare” is a fantastic jump start because you are the subject matter expert, and also because you already have the product, you just need to find some "Me too"s to sell it to.