If you have an idea in mind about creating an app, here's 10 questions that you should ask yourself before spending hours and hours on your new project:
1- Does it already exists?
It's not about reinventing the wheel or not. Have a look. Do some research. Find what has been already done. Can you make it better? Can you offer something valuable not found in other solutions?
2- Who will use it?
Who are your users? Knowing your target audience will help you define your app for your users, not for your own glory.
3- What technology should be used?
Any software is bound by the technology used. If you are planning on a mobile app, a webapp or a native software, the required technology will be crucial.
4- How much free time do you have?
You may start coding on one evening, working on your project for many hours. What about next week? Next month? Plan ahead and make sure that you will have dedicated time to your project. Many softwares are started, never to be completed...
5- Do you need a team?
Can you handle the work on your own? If you're planning on creating the next Facebook or Twitter by yourself, it may not be enough. Make sure that you'll be able to handle the tasks. Otherwise, the developpement will last forever.
6- Are you good enough?
Thinking about it is one thing. Having the skills is another. Validate that you fully understand the technical challenges before embarking on this journey.
7- Do you have the means?
Coding is one thing. Will you need a website? A server? A domain name? Will you be able to financially support required components once the app is available on the market.
8- Are you ready to make some compromises?
Once your app is released into the wild, users will ask for features. Comments will pour in and you may be asked to change available features. Are you ready to meet the needs of your users or just your own?
9- Will you listen?
The end-user may be harsh sometime. Keep in mind that he is your customer and will provide your with great insights if you listen carefully.
10- Are you ready to support it?
Think about support. Users will report issues and if they have paid a fee to use your app, they are entitled to get fixes. Sometime, you will spend more time fixing bugs then releasing new features. Don't think that once released, you can just sit and wait on money to pour in.
All of that can be summarized as planning ahead...