Hope that got everyone’s attention! The summary of SDLC posts already included an excursion through prototypes and today we will skip the good, the bad and the evil, but instead look at a few types of prototypes. We will conclude by asking again, whether prototyping is the right way to go … I know the answer in my own mind, but you will need to decide for yourself.
So what is a prototype? The definition on Wiki is “A prototype is an original type, form, or instance of something serving as a typical example, basis, or standard for other things of the same category” (Wiki, http://en.wikipedia.org/wiki/Prototype).
Hmmmm, how about saying that it it a scale model of a perceived product and solution, allowing the stakeholders to experiment with the model, before investing gazillions in the development of the final product. It is an aid that allows us to visualise and discuss ideas with stakeholders and most importantly to test our ideas ourselves.
Prototypes can be low fidelity prototypes, which are simple and usually cost effective prototypes, for example, building paper aeroplanes to visualise an aircraft, or using a series of sketches (storyboarding) to visualise a business process. While the low fidelity prototypes is cost effective and effective in information technology (IT) environments, I cannot imagine the aircraft industry making much use of them. While they may start with sketches or paper planes, they typically have to produce a high fidelity prototype which resembles the final product with greater detail. After reading the sections of the book “Boyd: The Fighter Pilot Who Changed the Art of War”, it is apparent that the F111 and F14 prototypes may have been sexy looking, but did not put the plane through its paces, else the weaknesses would have been apparent.
When working with high-fidelity prototypes, we can have an all encompassing prototype, which implements a close and complete representation of the final perceived product, a prototype that is probably abundant in the aeronautical engineering world. We can also have a vertical prototype, that implements a thin slice of the overall functionality in great detail, or a horizontal prototype, that implements all of the overall functionality, but not to ant great level of detail.
In my IT life, most prototypes started as low-fidelity prototypes on the whiteboard and evolved into high-fidelity and vertical types. Too often the prototype was mistaken for the actual solution and unfortunately used as such … but let’s avoid opening that can of worms to keep this post reasonably short.
Recap: Advantages of prototypes
- They allow us to visualise a set of ideas
- They allow us to discuss and validate the ideas with all stakeholders
- They allow us to get feedback early on in the solution life cycle, when making changes is still feasible, and to clarify “grey” areas
- They allow us to test out technical and other feasibilities
Recap: Disadvantages of prototypes
- They are seen as extra effort, extra cost and unnecessary delay by many stakeholders
- They can potentially be expensive and time consuming
- They can set unnecessary and high expectations
The final question …
So, what is your view on prototypes? Should the SDLC tools of today and tomorrow assist us with low and high fidelity prototyping?
I would be really interested in getting other views and perspectives.