If you are the one among many who is constantly having “revolutionary” ideas about creating new software regardless of being it mobile app, desktop app or web application there are few things to watch out.

This is something I am willing to share with everyone since I know I was missing this kind of information when I was about to start my ideas; also this knowledge is backed up with couple of failed project I had and some successful ones. Of course now days it is much easier to find information about “how to create your own software” then it was couple of years ago. I will try to take very defensive approach and to try to talk you out of the idea on starting your own software company. You should also note that all this I am writing is from my own personal experience and not something I read somewhere, just pure experience transferred into words.
The first thing… Idea… If you don’t have one then reading next couple of paragraphs would be useless.
Let’s ask couple of questions first:
1) Do I need to be technical expert in order create my own software product?
2) What would be the steps from software idea to realization?
3) How to sell/market your product?
Do I need to be technical expert in order create my own software product?
Short answer is Yes. Unless you have some investors that are behind you with the money, you need to be capable of doing complete software development. Many times there are many of you who are thinking about creating applications as a team. This is great but if you sum all your knowledge are you really capable of doing complete development: Are you familiar with all the technologies you are going to use, do you have experience with those, etc. If you don’t know exactly what technology is going to be used in every aspect it would mean you are adding Risk to your complete story and remember Risk is something you really want to avoid as best as you can do.
Just ask yourself couple of questions:
- Am I or my team familiar with the technology required to complete full development
- Are there any risks with the technology I am considering using (e.g. technology is too new, not everyone is doing it like that, etc.)
What would be the steps from software idea to realization?
In all my previous experience which included developing games, stand-alone business applications, web based solutions I found that following these steps will greatly increase a chance of success. The steps are written in the right order you should take:
1) Establish your idea on paper and see how it sounds when you read it (length: 3-4 hours)
2) Check the competition. (length: 2 days – 2 weeks)
Before marking your idea “the best one”, “revolutionary” make sure you know all your competitors. This step is a MUST. If you skip this one which usually takes couple of days to investigate you can fall down later like a leaf in the autumn. Pay attention to the following:
- Find the keywords that describe your future product
- Extract as much as competition as you can (Google is at real help here)
- Feature analysis. Check the features of the competitor products. I am using simple excel sheet for that where rows are features and columns are competitors.
- Price analysis. Check the prices of similar products on the market. There is no worse thing that inventing something you though you’ll be able to charge for $1000 when the same solution exists and its free
You don’t have any competition?
This is usually a warning. If no one is doing what you about to do there must be good reason for that. Ask yourself the following:
- How my customers/consumers will get to know me when there is nothing similar on the market (Remember this is a though thing to do)?
- Is there any specific reason why no one is doing that?
- Am I sure I checked all possible sources to look for competitors (there still could be some especially if your idea targets very narrow and special groups)
When you have all your competitors put on paper, with all the features compared you will have crystal clear picture of the basic number of features you need to cover to be considered equal. If your idea has that basic set of features you are fine. If you lack some be sure to add them. Make sure you know one thing: What is that something that shines upon your product that all the others don’t have? (e.g. I can provide the lowest price, I have this new “cool” feature others don’t have, etc.)
3) Planning your development (length: couple of days – couple of weeks)
You need to be sure you know all the human resources that can help you. If you have team of 3 be sure you know all your strengths. And as I mentioned before, if you don’t have the people or at least know them that can help you in complete development process don’t start developing because of the unnecessary risk. Find the right people for the right job, have them in your phonebook and be sure to call them when the time comes.
There are several MUST do things you need to know when planning software development:
1) How long it would require having 100% finished product. Sit down, analyze the possible problems, write down all necessary parts, provide some estimation based on your previous experience or from experience of others. After your initial estimation multiply that by 3 in order to get your possible date of completion.
2) Get some feedback from your future consumers. Tell your sister about this new cool fashion selector website you are creating and what she thinks of that. Tell your heavy-metal friend about your idea about heavy-metal social networking website, etc. See how they react to your idea, how they imagine it looking. Consider their feedback and put into your plan. This way you are sure you are following the trends in some ways.
Look at your estimates. If your estimates look too long, more than a year, there are two things you can do:
- Divide your production into several phases where each phase should deliver fully working project capable of selling itself.
- Skip this idea and go for the one which is much easier and can be done in shorter time
4) Perform development (length: couple of months)
I will not discuss this step in detail. You know how to create your own software now; you know what features you putting into it and where you stand among competitor products. You could have decided to offer your products as an open source project where people can follow your development participate, etc. The main point it to have some possible consumer of your product next to you all the time so you can work out with him usability issues that arise. This is why big companies have their beta testers, nightly builds, Alpha versions, sneak-preview versions, etc. You need to go with the flow with your future customers and be sure you take feedback from them during development. In most cases those should be just minor suggestions but from time to time you could end up with bunch of feature requests while you are in development. Consider those very carefully and from my experience try to avoid implementing them. You don’t wish to modify your bigger plan while in the phase of development, since this can cost you much more than you can afford. Adding new features during development can be endless process (feature creep it is called) and it bears heavy risk – just try to avoid it at all costs. It is also wise idea to offer your BETA versions or Alpha versions as soon as you have them.
5) Test your product (length: couple of weeks)
Don’t forget this step. Many fail because they missed this step. Testing is hard, finding people who can properly test your product is hard. Listen to your beta testers if you have them, give your product to couple of friends so they can play with. But make sure you find someone who can test your product who is not the person that was involved into development. You need fresh pair of eyes to look upon your new marvel and find problems. You would be amazed how much things can pass unnoticed to development team. Testing your product can take couple of phases of testing/fixing and I prefer having different person each time new test phase is started. Unless your product does not require high technical expertise to be used I suggest having as much different people as possible to play with your product. One more thing… Don’t miss this step.
How to sell/market your completed product?
First thing is to decide when your product is ready. Your product is not ready until you had it through some kind of testing, but your product is ready even when it still has some bugs found. There is no perfect software with zero bugs; just be sure your regular consumers can live with the remaining bugs. AS soon as you have decided to start selling/marketing your product that is great. Now you are actually at 30% of the complete process from idea to realization.
There is couple of ways to market your product and here are some basic rules you need to follow:
1) Your website must be easy to use. Forget about long texts, technical terms, etc. You just need to answer one question that your visitors are asking: What I am getting here that will improve my life. Simplicity over everything else should be the rule. Remember that people will look at your website for only couple of seconds. If it is not obvious what are you offering to them then you will lose customers. Of course keep those long descriptions of product’s features somewhere on your website but that shouldn’t be something seen at first glance.
2) Track your visitors. Make sure you can track your visitors and see if you are progressing right.
3) Make sure people know about your product. Just having website with completed product will not make you any money you need to spread word about it. Go talk on Facebook, use other social networks, post about your product on related forums, etc. Write articles about your product and related topics. Write press-releases; bother local radio station about your coolest application, etc. This requires time so prepare to have someone who can do it for you if you cannot do it. This is constant process which basically never stops. Just be sure you don’t use some automated services that offer billion articles and links for $100. Those can bring you more problems than good. We had to change our webservers and complete hosting because of this and we never looked for such large automated processed in the first place; just be careful.
4) Keep repeating step 2 endlessly. I’ll write about step 2 in more details in some of my future blogs.
It usually takes only couple of days to sell your first product so in case you haven’t sold one in 6 months and you are not selling some super-expensive thing it means you have failed at your project. This is Internet time, people are constantly shopping online, and with no customer for such a long period this could mean couple of things:
- You are not talking about your product in the ways it should be done.
- Your product is not working correctly. (you missed testing phase)
- There are far better solutions (which cost much less and they are easy to find)
When the process is completed?
The whole process from idea to realization is done when you have earned equal money you have invested. When you reach that zero this means your product is now mature enough, wings has grown and is ready to fly. How much you will earn from it that depends on factors like luck, energy you keep pumping into it, etc. Reaching that magical zero sometimes can take couple of years but you will be sure you are reaching it by tracking revenue and its increase.
Summary:
Here is the algorithm of all these steps:
1) Got an idea
2) Be sure you have enough technical expertise to make your idea reality (counting all the people you intend to involve)
3) Analyze competition
4) Plan the development
5) Develop
6) Test your product
7) Market your product
And remember especially if you are young… Don’t thing you are the smartest one in the world.