So what about the bugs?
I have a problem. Whenever I plan to write some software, I usually come up with a good idea and I can elaborate on my idea to come up with a good design (including how the UI will look like and what features will be available).
Simple. If you lack confidence in your own abilities, get out of the business.
It's not a lack of confidence. I'm probably a better programmer than those around me. It's actually that I can spot a hell lot of things that can go wrong in my software. If I have to write a software that is to purchased by someone, I don't find it morally correct to ship a product that has some real known bugs and performance problems. But, on the other hand I would never be able to complete it if I try to correct all known bugs and other problems. I just wanted to know what you people think about it. Am I professionally being incorrect? Should I just put up something, even though it's incomplete in my eyes and start selling it?
"If I have to write a software that is to purchased by someone, I don't find it morally correct to ship a product that has some real known bugs and performance problems."
Write the software in as "modular" a fashion as possible, with clear interfaces between the different modules (classes, functions, etc.), where each module is as self-contained as possible (strong cohesion and loose coupling, see http://www.construx.com/survivalguide/doc/chk04.htm ). This basically breaks down the problem in easy-manage chunks, and makes it easier to spot and fix any potential issues.
Haha, run, run as fast as you can, my friend!
You mean software business or the business of being a "moral person" who hesitates to ship software with known bugs and problems?
Your software will never be perfect, and can never be perfect. For instance, even if there are no bugs, different users will want different tradeoffs of features vs. speed vs. nice interface. Think about it - no piece of literature is perfect, not even a Shakespeare play, so why would you expect your program to be different?
Is that a common practice?
Look at it the way an architect builds bridges or buildings. They cannot provide a 100% guarrantee that there will be no defects, but they must be able to assure the client and the general public that they used the best engineering practices and data and safety precautions currently available and that they designed and built the structure with the proper materials, quality control and skill.
Interview with Theo de Raadt
Tayssir John Gabbour
Why are you so afraid of releasing buggy software? Are you afraid of the impact it might have on your customers? Are you afraid of being judged as a lousy developer?
Should be working
Just go ahead, build it, and ship it.
"Outlook is bleak, but they ship it anyway...."
Fog Creek Home