In many cases, the custom software development process is long, uncertain and comprehensive. It’s not easy to produce a product that will be useful and interesting for end users and allow its founders to achieve their business goals.
“It could be so much easier to produce software products if they weren’t for users”.
“We can produce our system easily but it needs the integration with so many other systems that all development cycle becomes very long and comprehensive”.
“We are very strong development team and we can carry out (execute) your project but, please, could you provide the whole set of requirements before we will start the development.
These (or very similar) complaints are very common for many different project development teams. And it’s not surprising because they display three major types of software products that are not suitable for the development with the traditional approach.
Here they are:
- Product with a lot of features and various interactions with the end users.
- Comprehensive systems with a lot of integration with other systems.
- New product that doesn’t have clear, complete requirements and needs testing the ideas of some features.
Some projects require using other models of organizing the main stages of development. One way to organize the software development lifecycle more efficiently is using the Software Prototype model. This approach refers to building a software application that displays the main functionality of the product under development. But it may not actually hold the exact logic of the original software and realize all the features of the product.
Do you remember one of the famous quotes from Steve Jobs?
“A lot of times, people don’t know what they want until you show it to them”.
Using the prototype before the actual development is close to this idea. In many cases Showing something is a more efficient way to describe your ideas than talking about them or even writing (and reading) the comprehensive documentation. The reality is that in many projects the development team, product owners, customers, end users and main stakeholders of the project much better understand each other when they can see the prototype of the future product and communicate with its interface.
This approach could be used in different cases and on several stages of the SDLC. From the first stage of the requirements gathering to the later stages of the development and testing. Prototype model could be very useful because it gives many advantages comparing with the traditional approach.
Advantages:
- Users’ involvement is increased;
- Customers’ feedback is available at the early stages;
- Missing or redundant functionality could be identified quicker;
- Confusing or implicit requirements can be clarified and agreed;
- It could give some benefits at the stage of preparing the proposal or tender documentation and contract signing;
- Time and money for actual development could be reduced owing to agreed requirements and efficient communications with customer and development team;
- The product quality could be increased with a good understanding of the requirements by all the development team (analysts, developers, testers).
This method can work well for many projects. However, we would like to mention that it isn’t good for all projects, all development teams, and all companies. It has some constraints, could be redundant in some projects and the cause of over budget, expanding project terms and scope and so on.
We’ve created the list of Three W’s of using prototype in the software development lifecycle:
- What is software prototype model?
- Why could it be useful in the software development projects?
- When you should prefer to use this approach and when it could be unnecessary?
Download our white paper to learn more about the topic.