Proof of concept is a crucial stage in the software development process that enables us to test the idea and raise the chances for project success.
You may think these are just pompous words. But no, this is my conscious position on it based on over 7 years in the software engineering industry.
I think you will agree that an idea precedes the creation of any product. Unfortunately, not all ideas come to fruition. There may be many reasons for this, but the most common are:
- Unclaimed by the target audience
- Too general
- Impossible to implement technically (or high costs)
That is why I always affirm that when creating any software product, you need to ask not only HOW but also the questions WHY and WHOM.
These three aspects form the basis of the Product Concept. The proof of the software concept is the result of an analysis of these aspects.
So why do you need PoC?
Software is a tool that helps solve business-specific challenges or add value to users. PoC will help you to:
- Choose the best technology for creating software
- Attract investors
- Check your idea in action
- Convince the target audience to use your software product
The proof of concept is a process entirely built on the interaction with the target audience. The following formula can define its essence:
Question + Test = Solution
With this solution, you can create an example of demonstrating the capabilities of the software and its compliance with the project requirements.
Here is a checklist that will show you the critical steps to creating your proof of concept.
#1 Identify the target audience and its needs
Most likely, you won’t be able to develop a software solution that everyone will need (although you can try). A product that takes into account the needs of a specific target audience is much more likely to succeed.
If you already have a website with people that are interested in your product, picking the right audience will be easier. The first thing you need to do is connect Google Analytics to your website. If you have not done, you really should. In the case of mobile applications, you can also use programs like Localytics or Flurry.
By using these services, you can get a lot of data about the people that are showing interest in your product.
In case you don't have a website/app yet, the situation is a little more complicated. Still not critical, though. In this case, you can try to get info through your competitors.
One of the most useful tools is Alexa Rank. The free version contains data on user location and gender. In the paid version (from $149 per month), you can see age, annual income, ethnicity, and whether they have kids or not.
The resulting portrait of the target audience is the starting point for further analysis.
It is crucial to determine the needs, problems, and issues that your potential consumers have. You need to know what they are concerned about and what problems they have. This is the only way to understand how relevant your software is and how you can create value for your target audience.
Use different polls, surveys, interviews, and analysis of forums and on social network groups. It will help you identify the most common questions and pressure points of your audience. This will provide you with a clear understanding of how your software can solve their issues.
I highly recommend you to survey your existing group of customers (if you have any). To highlight the main points, it is not obligatory to interview a large number of people, 25-50 participants should be enough.
I can recommend using convenient and straightforward Google forms or Surveymonkey, which are trusted by thousands of companies around the world. These services will help you to create surveys and polls, receive answers, and analyze the results in real-time for free.
Think over the questions and encourage your target audience to participate by giving them a discount, promo code, or something else in exchange for filling out the survey.
After collecting feedback, you can start to work with solutions. You already have a database of questions from the targeted users, so you can develop options for solving them. These solutions will allow you to determine the main functionality that your future software should have.
#2 Receiving feedback from the target audience according
The time has come to understand whether you have taken everything into account and whether it solves the problems of the end-users.
You again cannot cope without potential users. It is crucial to get their reaction to the presentation of your product. This may be where you consider a repeat survey, only now more substantial. Describe your product and ask for reviews.
To do this, you can announce your product on various channels:
- Social networks
- Your website/Blog
Summarizing the answers received, you will understand which solutions resonate with potential buyers and which can be removed — in the end, leaving only those solutions that are optimal.
#3 A pre-assessment of the selected solutions
At this stage, you already have a shared vision of how the final product should help users and what functionality it should have.
The more aspects you consider, the easier it will be to prove the concept of development in each case.
Here are the main ones.
a) Competition. How worthy the software product will look in your chosen niche directly depends on the presence or absence of competition. It would not be out of place to take an interest in the successes and failures of similar projects, analyze the reasons, and draw logical conclusions.
How to identify competitors?
- YouTube. Enter a few keywords in your subject area and get channels that are related to your product.
- Social networks. The same, only here use the search in groups.
- Organic search. Enter inquiries and choose trusted leaders.
- App Stores. In the case of mobile app development, check out the App Store and Google Play. Enter keywords for the desired category and see ratings and descriptions of similar applications.
b) Technological issues. At this point, you will most likely have to get a software development company involved. They can help you with a choice of programming languages (AngularJS, Ruby on Rails, Python, PHP, etc.), tools (editors, compilers, interpreters), and special servers for creating and testing the program. Moreover, they can help you with defining the requirements, market analysis, and providing meaningful recommendations during the project.
By increasing knowledge of a particular aspect, you can reduce uncertainty.
When you clearly define such technical issues, it will be easier for you to figure out the following two points:
c) Cost. Calculate the project budget taking into account your available funds and possible investments. It makes no sense to plan complex functionality for the development of which there are not enough funds, right?
There are several ways to calculate the project cost. I suggest focusing on the main options:
- Professional software studios estimation. Such a calculation will be more accurate since the team will take into account a more significant number of details. Many companies offer budget estimation for free.
- Development cost calculators. With this application, you can calculate the price of the app with a minimum set of functions. For example, to calculate the cost of a mobile application, you can use Cleveroad or OOZOU, but it will only give you a concise pricing overview.
d) Timelines. Suppose you want to receive a finished software product in a year. It may turn out that the development of the desired functionality for the selected platform will take much more time.
You have two options: either expand the time frame or think about optimizing the functionality. Just keep in mind that in the first case, you’ll get the product closer to the original idea. And in the second case, you’ll be able to enter the market faster (but the success rate could be much lower).