You're starting to build software for your organization. It's a big project and you've got a lot of ideas about how it will work, who it will serve and how you want it to look. It's an exciting time but before you go any further, it's time to stop and ask yourself some important questions.
Software and custom app development is all about specifics. Before you even start, you need to know exact details about what and who you're designing the software for and why you're designing it. Otherwise you risk wasting time, money and resources on software that isn't a good fit for the job you want it to do.
Luckily, it's easy to properly vet your idea. Stop right now and ask yourself these seven questions:
- Do you know your users?
- What problem is the software trying to solve?
- Does your idea actually solve the problem?
- Are there competitors?
- What technology will the software run on?
- How will the initial build proceed?
- Do you have a post-launch plan?
Let's delve more deeply into these questions and why you should be asking them.
1. Do you know your users
No guessing here. It’s not "anyone who has the money". You need to be specific about who your end user is going be in order to make sure your custom app meets their needs. Will they be primarily male or female? Married or single? Where are they likely to live? What types of jobs are they likely to have? Where do they hang out online? Will they use your software at work or at home?
Don't have a full picture of your ideal users? Sometimes it helps to think of a single individual who embodies all of your potential users. A tool that can help you do that is to define a user persona. You can find guidance on how to make one and some examples here.
2. What problem is the software trying to solve?
Great software is born out of frustration. Before you even start work, you need know what business problem you are trying to solve. Your software should be the answer to a problem, need or inconvenience experienced by your potential users.
For example, in 1978 Dan Bricklin was doing some complex financial analysis for a Harvard Business School case study. He had two choices: either do it by hand on paper or use an awkward time-shared mainframe. Frustrated, he created a third choice. His idea was "an electronic blackboard and electronic chalk in a classroom." His idea became VisiCalc, the spreadsheet software that led to Lotus 1-2-3 and Microsoft Excel.
3. Does your idea solve the problem?
I know, you had this idea and it keeps you up at night. Your custom app is the next big thing. But have you tested it? If not, it's time to plan for or create a lean version of your software and see if it actually does the job you want it to do — and if people are interested in using it.
Entrepreneurs like to talk about an "MVP", or minimum viable product. But most of the time they're still talking about a piece of software or an app, just stripped down in functionality. It may not be pretty, but it still will test your idea to see if it works.
4. Are there competitors?
There are very few totally unique and new ideas, which is a good thing to remember in software development. People solve problems every day — including the problem you are trying to solve. They may be mashing up a variety of tools, delegating part of the work or using the entirely wrong tool for the job, but they are getting stuff done.
Even if you don't see a direct software-based competitor, your new software will be competing with whatever solutions your ideal clients are using now to solve their business problem — even if it’s an analog solution like walking an invoice around to get approvals or using a pencil and paper to make calculations. To gain traction in the lives of your target users, you’ll need to find out what that something is.
If you haven't done it already, it's time to research how people are solving the problem now and catalog all the solutions being used.
If you have direct competitors, you need to identify their strengths and weaknesses. Use all of their software and sit with users while they use those products. Research is very important in custom app development; you need to know your space better than anyone else.
5. What technology will the software run on?
iOS? Android? Native desktop app? Tablet and phone version? A companion website? Where will that be hosted? User generated data? How does that get in and out of the app?
You can get to know your users, better define your solution, test your solution and get to know your competitors without making a technology decision. But at some point in the software development process, you do have to make the technology decision.
Part of your answer here will come from researching your targeted users. You should know what devices they prefer and how they will install your software on those devices. The backend technology stack is all you.
Don't get carried away. It's easy at this stage of the game to try and make decisions that assume wild, resounding success. Maybe your app will scale to thousands of cities. Maybe it will have millions of users. Maybe it will process a thousand transactions a second.
But more than likely? It won't.
Your parents didn't buy you your graduation shoes the first day of kindergarten. Each school year, they'd buy a new pair with a little room to grow. Approach technology choices the same way. Solve your current challenges. And give yourself a little room to grow.
6. How will the initial build proceed?
Do you favor the traditional waterfall approach or the more modern agile approach? What project management tools will the team use? How will communication flow from you to the developers and back?
What will make it a successful project? What would make it a failure?
The better you can define the project and the more the entire team agrees on communication tools and overall expectations the better your odds of success.
7. Do you have a post-launch plan?
Getting the first iteration of a software product to market is just the beginning. You're going to have to think ahead.
How will end users be made aware of the new software? Will you have a marketing campaign developed by the time the software is available on the market? What's the business model for the software? Will it be sold directly to corporate end users? Or will there be a consumer oriented freemium approach? Or in-app purchases? Or a subscription model? You want to ensure you and the app remain financially viable.
How will the software evolve and how will users get new releases? How will user feedback be incorporated into those new releases? Plot out the lifecycle of your software. Even if everything doesn't go to plan, it's good to have one.
Creating a new piece of usable, useful software, successfully launching it and maintaining it over time, is a lot of work. These seven questions aren't all of the questions you'll need to answer but they are important when you're starting out.
The good news is, you're not alone. We've been there, and we can help you through all phases of software development and custom app development. Give us a call and we'll talk more about how we can help.
Ready to build your solution?