A very crucial part of a successful software development project starts before the actual programming takes place. It’s mapping out all the components of the final product.
The pre-development phase is important to reduce the risk of errors later in the project and sets the base for a common understanding of all the important features of the new app between a customer and the software developers.
It’s always possible to pay the software agency to help to get to the bottom of all the features needed and write comprehensive specifications for the software product. With software projects of a certain size, we would always recommend involving some experts in the process. However, it’s never wrong to ask yourself a few questions in advance.
Here is a list of a few roughly compiled steps with questions that you should ask yourself to identify your requirements and write them down:
Users: Who is going to use the app and in which kind of situation(s)? It can be helpful to generate personas and user stories. It helps to draw conclusions concerning the relevance of certain functions, the design and general concept of the app. If you want to go a step further, you might also consider how you are going to reach your potential users? Does your app need a critical mass to reach its full potential?
Devices and data: On which devices should your app run? Do you need portrait or landscape mode? Which version of the operating system should be supported? Are there any existing systems you want your app to connect with? Are there any existing APIs or do they need to be established as well? Ask yourself if what you need is a web application which is accessible via the browser but should not be open to the public? Or is it a website, which should be optimized for search engines such as Google or Bing, so that it can be easily found by your potential users or customers? Or is it a native app you want your users to download in the app store and install on their smartphone or tablet? Don't get me wrong. You do not have to have the answer to all those questions. But thinking about it or defining what you don’t understand always helps.
Search for references: Have a look at existing applications, name them, and refer to them or just to certain features you like about them. You could also refer to the design of an app, if you decide that you aim for a similar look and feel. It also helps you to know your competitors and maybe you can formulate your own USP in comparison.
Write down your idea in general: Describe the core feature of your app in as few sentences as possible.
Describe the navigation / user journey in detail: Consider the first steps, the onboarding process within the app. Which steps are there for a first-time user? Try to gather all features you want to offer. Do not forget about social media shares, settings or data protection. Which functions have to be available on the start screen? How does the user navigate within the app? Which features are more important, which ones can be more hidden?
Prioritizing features: Clarify the essential functionality. Sometimes it can be helpful to define more than one phase of development to shorten the time of development or minimize the risk of investment. Maybe there are some features that are not as important as others. In doing so, you might be able to save yourself some money. And it’s always so much easier as soon as you have the first version of your final product in your hands. Maybe it turns out that completely different functions are important to the user than those you'd expected.
Sketching and wireframing: You don’t have to be a designer or have an artistic talent to do some sketching or wireframing – even writing down what the user should be able to do on a certain screen can be very helpful to understand what you have in mind. It’s easy to find templates for different devices on the internet. Here is just one example: http://sneakpeekit.com/
What else? If you want to be super prepared, do not forget to think (and ask) about the costs for hosting and maintaining your product. What about tracking? Are you on a schedule for the deliverance of your final app? Do not forget to name those dates early on, if they are important to you.
That’s just some advice out of our own experiences we wanted to share. If you try to write all that down (just as good as you can, please remember: No one expects you to be the technical pro) and meet with a software development company of your choice, you have a very good starting point and a very solid chance that they can at least give you a rough orientation for the price of your project.