How to make a prototype of your software idea
Software prototyping is a normal development process, as it enables users to evaluate the product and try it out before implementation. It helps get valuable feedback from the customer and assists software designers and developers to understand exactly what is expected from the end product.
Definitions of a Prototype
A prototype is an original model, form or an instance that serves as a basis for other processes. In software technology, the term prototype is a working example through which a new model or a new version of an existing product can be derived. (source: techopedia.com)
Software prototyping is the creation of a scaled down version of your software idea, it does not have all the features that will eventually be built into the product. Building a user interface for demonstration to others is also known as horizontal prototyping, whereas a more complete version of your software with some of the final features is referred to as a vertical prototype.
Reasons to make a prototype
The prototype is an important draft design that precedes the development of the end product and has several advantages:
1. A chance to review technical feasibility
Prototyping makes it possible to understand which aspects of the idea prove difficult or impossible to implement and highlight physical, technical or financial constraints.
2. Improves quality
A prototype of your software can assist is:
- Testing usability
- Reviewing site navigation
- In the case of a website, reviewing the look and feel
3. Presents your vision clearly
The end user can visualise what you are trying to produce in a more understandable way. This can also assist in designing market advertising and in pre-sales.
4. Iterate at a lower cost
Iteration is the process of repeating the prototype build or modifying the prototype until an optimal product is made.
5. Simulate the end product
A prototype simulates the real and future product and can help attract customers and investors.
6. Provide focused feedback
Seeing the prototype helps end users to provide more focused feedback on the desired details which is essential in understanding their needs and expectations and provides a clear idea of where your product is heading.
A prototype can be considered the project specification and helps the entire team to focus on user needs.
8. Quick and easy to create
Create a simple idea on paper so that the designer understands the functionality and logic of the product. This simple sketch, illustration with a few buttons for a website, will be transformed by an experienced designer into a ready-to-implement product.
9. Risk Reduction
The risks of producing the final product are lowered by the prototyping stage exposing missing features, faults and functional gaps.
Potential disadvantages of a prototype
1. Increasing complexity
It is possible to increase the complexity of the product beyond its original concept as a result of trying to incorporate all end-user feedback.
2. Increasing costs
It is necessary to monitor the cost and effort that goes into the production of the prototype.
4 Methods of Software Prototyping
1. Throwaway/Rapid Prototyping
This method uses very little efforts with minimum requirement analysis to build a prototype. Once the actual requirements are understood, the prototype is discarded, and the system is developed with a clearer understanding of user requirements.
2. Evolutionary Prototyping
The building a functional prototype with minimal functionality. The prototype forms the basis of subsequent prototypes to which modifications are made and features added as and when they are identified.
3. Incremental Prototyping
The building of several functional prototypes of the various sub-systems and then integrating all the available prototypes to form a complete system.
4. Extreme Prototyping
Extreme prototyping is used by web developers. Commencing with a basic prototype that has all the existing pages is presented in the HTML format. Data processing is then simulated using a prototype services layer. Finally, the services are implemented and integrated to the final prototype.
What are ‘Sprints’ and ‘Scrums’ in software development?
Software development is often carried out by teams with team members having different but related skills. One person may be good at the ‘look and feel’ of a website (user experience) while another may be good at integrating different parts of the programme. Software development teams today use a process called Agile development which includes breaking down the project into smaller parts called Scrums which are led by a team member often called a scrum master. Each Scrum has team members which work on specific parts and each team works to achieve a goal within a set period of time called a Sprint. Scrum teams deliver product features in increments at the end of each Sprint.
The scrum approach includes assembling the project’s requirements and using them to define the project and plan the necessary sprints. Each sprint is divided into its own list of requirements. Daily scrum meetings help keep the project on target as do regular inspections and reviews. At the end of every sprint a sprint retrospective is held to look for ways to improve the next sprint.
The Agile Scrum Framework operates like this
Within each sprint, the development team builds and tests a functional part of the product until the product owner accepts it and the functionality becomes a potentially shippable product. When one sprint finishes, another sprint starts. A product release occurs at the end of a sprint or after several sprint.
Prototypes are valuable step in the process of bringing an idea to life. It would be safe to say that every software application or product goes through a prototyping phase before release. Used correctly you can end up with a more efficient, less costly product that has a higher market acceptability and one which results in more sales.