Imagine scenarios where we are developing an expensive and complex product. We may actually want to test it or to see how it looks and works before even spending money and developing it. That’s where the idea of prototyping come in. Car makers develop dummy models (real or 3D) of the cars before building the actual cars, which helps them to measure the aerodynamics, styling, structural characteristics and so on. By doing this we can see and try risky and uncertain elements even before building the real item.
Prototypes are used to try out something before actually developing it. This is entirely different from Tracer Bullets, which is a fully functional implementation. Prototypes may represent only a part of the whole system, with a fewer details. We build prototypes for the softwares to analyze and expose risk. A prototype may not always code-based. It could be as a drawing on a whiteboard, as a non functional mock-up drawn with a paint program, or with an interface builder.
Prototypes are designed to answer just a few questions, so they are much cheaper and faster to develop than applications that go into production. The code can ignore unimportant details
But if you are in a condition where you cannot avoid any details, you must ask yourself twice why you are developing a prototype. At such situations, more apt solutions might be Tracer Bullets or something else.
Things to Prototype
We can prototype:
Prototyping is a learning experience. Its value lies not in the code produced, but in the lessons learned.
How to Use Prototypes
We can ignore some details while developing prototypes. They are:
Since prototypes use less details and represent a small part of the product, they can be implemented using high level languages.
How Not To Use Prototypes
While developing prototypes, we must make it clear that they are disposable and incomplete version. Sometimes, prototypes may attract others as real implementations. At such situations, care should be taken. If you feel there is a strong possibility in your environment or culture that the purpose of prototype code may be misinterpreted, you must go for other approaches.
- summary of Prototypes, from The Pragmatic Programmer: From Journeyman to Master
Prototypes are used to try out something before actually developing it. This is entirely different from Tracer Bullets, which is a fully functional implementation. Prototypes may represent only a part of the whole system, with a fewer details. We build prototypes for the softwares to analyze and expose risk. A prototype may not always code-based. It could be as a drawing on a whiteboard, as a non functional mock-up drawn with a paint program, or with an interface builder.
Prototypes are designed to answer just a few questions, so they are much cheaper and faster to develop than applications that go into production. The code can ignore unimportant details
But if you are in a condition where you cannot avoid any details, you must ask yourself twice why you are developing a prototype. At such situations, more apt solutions might be Tracer Bullets or something else.
Things to Prototype
We can prototype:
- Architecture
- New functionality in an existing system
- Structure or contents of external data
- Third-party tools or components
- Performance issues
- User interface design
Prototyping is a learning experience. Its value lies not in the code produced, but in the lessons learned.
How to Use Prototypes
We can ignore some details while developing prototypes. They are:
- Correctness - Use dummy data where it is appropriate
- Completeness - The prototype may represent only a part of the real item, in a very limited sense
- Robustness - Error checking is less likely to happen in prototypes. You have to use it by following the predefined path. Otherwise it may fail or cause errors
- Style - Prototype code probably may not have any comments or documentation. You may produce reams of documentation as a result of your experience with the prototype, but comparatively very little on the prototype system itself.
Since prototypes use less details and represent a small part of the product, they can be implemented using high level languages.
How Not To Use Prototypes
While developing prototypes, we must make it clear that they are disposable and incomplete version. Sometimes, prototypes may attract others as real implementations. At such situations, care should be taken. If you feel there is a strong possibility in your environment or culture that the purpose of prototype code may be misinterpreted, you must go for other approaches.
- summary of Prototypes, from The Pragmatic Programmer: From Journeyman to Master
No comments:
Post a Comment