So, you have an excellent idea for a project, or just want to leave a legacy rust bucket behind and you have decided it’s time to realize this dream.
Whether you’re on your own, doing it as an in-house company project, or outsourcing, take a few steps back and look at the bigger picture. Examine the possible setbacks and hardships you might encounter before starting to build the foundations of your application.
In this article, we’ll be guiding you through the thought process before developing an application, in order to avoid potential hiccups, and lending a helping hand in succeeding with the steps leading up to the kickoff of your app.
Before you start
The first thing you want to do is have a budget in mind. This outlines your possibilities and boundaries.
You want to get acquainted with regulations. Make sure your application doesn’t break any laws or regulations. Make sure it doesn’t violate the terms of service of your potential partners or third parties you wish to integrate with.
Then you must examine the potential market. Identify your customers (hint: everyone isn’t an answer). What are their needs, and how will you make their lives easier?
Look at your competition. What are they doing? Where are they failing or lacking? What will YOUR solution bring that others’ cannot?
After all this, you should have a pretty clear image on the direction you should be heading, so you can dive into all the technical stuff.
Look and feel
Though it may not seem a big thing at the beginning, it has a huge impact on development.
A little button here, an extra function there, and a messed up flowchart can lengthen the dev process by months, and that’s a pain for everyone.
First of all, walk through your concept with an experienced UX designer, who will do interviews with members of your target audience, do research on similar apps and craft a prototype. This does not only point out your audience’s pain points, but it makes development smoother by having a core concept to work with.
The other point here would be having a design, preferably with finished concepts for pages. Having a style guide to your app makes it much more coherent and smooth and your brand will seem much more dependable and trustworthy. This also makes it much easier for developers to build your app.
If you don't have a dedicated designer for this job, here is a list of some easy to use mockup tools.
The topic might be a bit misleading, because this part has very little to do with coding. Let’s leave that to all the devs out there.
But in order to have a streamlined development process, you need to keep some things in mind.
Is it a new project, a modernisation of an existing one, or perhaps an expansion?
Determine your platform: Am I thinking web, mobile, data analysis, CRM, etc.? This can steer the technology requirements in a certain direction. Do some research on technologies, and look for the ones best suited to you needs. You should be looking at frontend, backend, databases, and compatibility.
If you’re not familiar with the technologies, we recommend involving developers who can help you select the appropriate technology for your application.
After you’ve made decisions on all this, you’ll need a good specification.
Having all the features written down makes planning easier and delivery more reliable.
First, break your project down to big milestones, then into epics and finally stories.
Milestones should be big delivery dates, where certain parts and functions are in place; epics are the bigger features and stories are small increments of work usually determined by the scrum master/project lead/developer.
If you want to learn more about user stories and see some templates, check out our comprehensive guide here.
A few other things that should be taken into account are scaling (the amount of data it should handle), encryption, testing (who does it and how) and maintenance (warranty and monitoring).
By now, you should see what the app will look like and what functionality it will have. In this part, you’ll want to consider if the application will be working together with other systems.
Think email/notification/SMS messaging, payment, social media, localization (translations), maps and/or location services (GPS), communication and/or integration with legacy systems, other ERP or CRM systems, operating systems and the list goes on.
These might need some research or even inside contact to help with the integration (think huge systems like SAP).
With all this research and knowledge, you should be well on your way to making successful software.
Don’t fret; if any of these steps seem out of your league, contact the people/companies you plan on working with, they will be happy to help wherever you get stuck. This is what we actually do at Coding Sans.