Rapid Software Prototyping
Rapid software prototyping is the process of very quickly putting together a working version (that is, a prototype) of an application in order to test various aspects of the design, demonstrate concepts or features, and most importantly, to gather early user feedback.
Some development groups use rapid prototyping and an automatic and integral part of the development process because it reduces project risk and costs. However, those groups are probably a small minority.
CodeFutures' customers often use its products for rapid software prototyping because code generators can produce production-ready code in a few seconds. This allows great flexibility to accommodate rapidly changing requirements. This is important because the primary benefits of rapid software prototyping are:
-Confirm the technical feasibilty of an application architecture
-Ensure that the software delevered meets the end-user's requirements
-Reduce development time
Confirm the Technical Architecture of an Application
It is often very difficult to predict how an application will perform in a production environment, especially if it interacting with existing systems. For enterprise applications, after the (lack of) specific end user functionality requirements, perhaps the most common frustration for end users is application performance. A good example of this is the amount of time people spend waiting on the telephone while call center staff try to look up information. Rapid software prototyping at least allows the performance of the final system to be simulated as soon as possible. Even if an alternative architecture is not possible (unlikely), then at least the end users can be prepared for delivery of a slow application.
Prototyping Software Prototyping Engages End Users
Using traditional development processes often means that there's a strong disconnect between what end users were expecting and what has been delivered. There is often a strong negative reaction when end users finally see the 'finished' application. Using rapid software prototyping means that the end users have been a part of the development processes and are familiar with the system before it is delivered.
The end users probably know the subject domain of the application, especially if it's a specialist business application, better than anyone on the development team. So applications developed using rapid software prototyping are more likely to match the end user expectations because inaccurate/misunderstood requirements can be corrected during the development process.
It's also unlikely that every end user requirement has been documented. That usually results in 'change requests' that can result in delays due to redesigns. Rapid software prototyping assumes that end user requirements will evolve as the users identify areas for improvement.
Rapid Software Prototyping Reduces Development Time
CodeFutures obviously promotes the use of code generators for rapid software prototyping. However, there's other areas where rapid software prototyping can save on development time. The most obvious is the fact that end user involvement means that requirements are much more detailed and refined, which leads to fewer change requests.
Prototyping Software Prototyping Reduces Development Costs
The time saving from engaging in rapid software prototyping directly translate in to cost savings.
In addition to delivering a working application faster, and therefore providing a measurable cost saving, there's a huge benefit in discovering problems earlier in the development cycle, when it's much cheaper to fix.