I've already answered part of your question [here: learning to program](http://lockergnome.net/questions/48800/learning-to-program
). The rest of it is planning.
Step 1: You need a purpose. What unique problem do you hope to solve with this product? If you can't answer that for yourself, you need to continue thinking about it. If you spend too long thinking about it, you might make more money as a fruit picker...
Step 2: You need to develop the plan. I'd suggest writing a software specification, but it's not required. Gather the requirements from the software specification and document them.
Step 3: Develop modules of code that fulfill those requirements. If any issues arise, go back to step 2.
Step 4: Develop a test for the modules that can be used as a form of documentation and write some more documentation. This is actually two separate steps, but I like to use the testcases as a form of documentation. Examples tend to work well with lazy people. If issues arise, go back to step 2 and revise the planning stage, before modifying the code and documentation. If all's good, you end up with a working module and the obvious progression is that you move onto the next module, starting at step 2 or you've finished the product and it's time to release it.
Step 5: Maintenance. This one should be fairly straight-forward. Don't ever forget it.