There are hundreds of thousands of applications on iTunes or Android markets these days and it becomes more and more difficult to come up with a new idea. On the other hand there are many situations where simple and focused applications can help. Smaller communities of users may need very specialized or customized applications because of their job, hobby, disability etc. These are niche applications but world-wide they may address an interesting number of customers.
The motivation to write new apps may have different inspirations. Many developers are writing the applications for themselves. This is a fortunate situation since the developer understands very well the needs. Sometimes a developer is asked to write an app for his friends. This is also good, friends will be able to explain their needs and they will help with testing. Writing an application for a customer is a little bit more adventures. Customers sometimes do not know how to formulate the problem. Communication may be demanding. Agile software development is the answer, but requires cooperative customers. You may also spark an innovative idea. Everyday you face many situations and problems, which are difficult to solve or overcome. Make a note, may be a mobile app can solve them.
First, check the existing applications. It is very likely someone has already written an app you need. Finding and reviewing the apps is a tedious process. It is difficult to understand the functionality. They don’t come with a description, because they mostly rely on intuitive interfaces. To understand you would need to test them and this has its shortcomings. In many cases the apps are social or use data sharing. You must register and you need to find some friends who will cooperate, share the data. All this takes lot of time but it will help you to differentiate or enhance your new idea. Don't skip this step but do not spend too much time on it either. Remember your idea doesn’t need to be completely new, but it must bring at least some new features to be competitive.
If you don't find any existing app you may have hit a new idea. Start with describing it in the simplest terms. Select the application name and try to describe it using this template:
(project name) is developing (this offering) to help (an audience) solving (a problem).
Keep all very simple don’t start inventing new features. Work on a brief application description. Once the simple sentence is ready, explain your idea to your friends. Use web, twitter, blogs etc to get feedback. Explaining and getting feedback is the best way to understand the customer’s needs. Don't forget asking your friends for how much they would buy your product. You also may decide to provide the application for free for non-profit or humanitarian purposes. In any case you have to be sure someone will use it. Don’t be secretive. Many people have the same idea in the same time. Your task at this point is to make the problem formulation as simple as possible, understanding the essentials. You may need to modify the idea and repeat the process. What is the result? Either you will discover no one needs your app or you have a clear case.
Now, you know who are your customers, what they need and how much they would pay. The full featured application may have a lot of branches, it can be quite complex. We need to focus on basic features. Identify the essential action and its outcome. Sketch an app flow diagram describing a sequence of actions the user needs to go through to get the outcome. To each action draw by hand a graphical elements. i.e. screens, buttons, pictures, icons, menus etc. Don't forget the errors pop ups, dialog boxes etc. The diagram will show the first scenario of your application.
Once the logistics is clear, it is the best time to try it on real users. Create the necessary buttons, text fields, etc. from the app flow diagram. Use some wire-frame tools, that let you create a clickable static screens. For example Keynotopia provides templates in Powerpoint for different apps. Export the screens in a clickable pdf and with a proper pdf reader you can simulate the whole app on a mobile device. HTML is also easy for creating static pages. Get back to your friends let them face your clickable mock up and observe how they accomplish the first simplest task. Get prepared, the interaction with the testers has two basic steps:
- Quickly explain the task.
- Observe and note the problems.
Do the same with three to four people. It should be enough to discover the biggest design problems. Fix the UI problems and do the same one more time. Most of the developers are skipping this stage. Don’t do it. This exercise will save you lot of time while coding. You may repeat this stage several times but you will converge to a sensible solution. If you are patient and you successfully finish all the steps you are ready to start coding. As a reward you will produce much cleaner code.
I have reviewed very simple, known steps for inventing and testing usefulness of a new app. They may not apply for all apps, but they are showing how to systematically think about apps development. One more comment: this steps don't need programming, but soft and organizational skills, therefore people with expertise in the targeted field will typically produce much better results then programmers.
The main reason why I have put this blog together is the course I’ll be teaching in the next semester. Students will learn the basic programming skills in Java. I believe, students need motivation, they need to understand what is the purpose of the course. Main programming language for Android is Java and I hope, combining development of simple apps and learning Java will be attractive enough for most of them. I am really looking forward how this would work. Stay tuned I will be reporting how we are doing ...