A proof of concept or a proof of principle is realization of a certain method or idea(s) to demonstrate its feasibility, or a demonstration in principle, whose purpose is to verify that some concept or theory is probably capable of being useful. A proof-of-concept may or may not be complete, and is usually small and incomplete.
In software development, proof of concept (abbreviated PoC) is often incorrectly used to describe three processes with different objectives and different participant roles. These uses of the phrase proof of concept are therefore not synonymous and are delineated below.
- A proof of concept can refer to a partial solution that involves a relatively small number of users acting in business roles to establish whether the system satisfies some aspect of the requirements.
- By contrast, the objective of a proof of technology is to determine the solution to some technical problem, such as how two systems might be integrated or that a certain throughput can be achieved with a given configuration. No business users need be involved in a proof of technology.
- A pilot project refers to an initial roll out of a system into production, targeting a limited scope of the intended final solution. The scope may be limited by the number of users who can access the system, the business processes affected, the business partners involved, or other restrictions as appropriate to the domain. The purpose of a pilot project is to test, often in a production environment, whether the system is working as it was designed while limiting business exposure.
Why we need proof of concept?
A PoC generally should be done early in the development cycle or to sell a software concept. It is used to validate technical feasibility, helps identify potential stumbling blocks, identifies what a platform can or can’t provide, helps determine the scope and level of customization necessary to complete the project.
The PoC can also help identify performance issues. Generally, today, we assemble many of our applications / solutions in a “composite” fashion. We’re re-using services, functions, etc. from other applications. This re-use requires integration points. It’s these integration points in our overall “context” that we’re vetting with the prototype effort. While also validating assumptions regarding what the platform or framework can or can’t provide.
The outcome is a technical feasibility confidence factor along with factors that impact overall scope and estimate of effort.
To create an effective PoC we need to create a PoC project as well as a document which will cover all the technical, functional approach of the project.
Below are the useful tips to create an effective PoC project:
- Create the same architecture for PoC project which you are going to use for the development.
- Design a Login page with exciting graphical interface if security is a primary concern for the project.
- Home page with logo, all the possible menus/tabs, Search, links for the other sub functions of the project.
- The home page should speak about the entire site what we are going to achieve.
- If the content of the home page or other pages is based on user Roles then you should develop different pages showing how it will look like after login depending upon Roles.
- Dashboard if required.
- One or Two pages/modules which will show that how you are going to design/develop the pages/modules and how they are linked to each other. These page(s) should be the most important parts of the application.
- If the project has any report(s), create a sample report with exciting look & feel so that the client can understand how you are going to produce the results.
- If the project has any graph(s), create a sample graph.
In brief, it should cover all the features in short so that one can see what you are going to achieve after in the production version of the project.
How to create PoC Documentation
The documentation for your PoC should explain about the entire design of the project. You add the below points with brief description.
- The architecture detail which will be used for development.
- Add all the technologies, third party tools you are going to use, with explanations why you have chosen the same.
- Add all the modules with brief functionality which will be developed.
- Add the methods how you are going to handle security.
- Explain each menu you have used in the PoC project.