 |
What is a
Prototyping Methodology?
Need
prototyping
methodology for an information management project and want some
practical suggestions to ensure rapid project delivery?
A prototyping methodology is a software development process which allows
developers to
create portions of the solution to demonstrate functionality and make
needed refinements before developing the final solution.
Think of the annual Detroit car show where some automakers
will introduce a concept car or prototype. Depending upon interest, it
may eventually become a full-scale production vehicle or it may be
modified based on consumer reaction.
Software
prototyping
Software prototyping is somewhat similar. It produces a “throw-away”
solution that is deigned for the sole purpose of verifying user
functionality and for demonstrating capability.
It is an excellent way for the development team to confirm
understanding of the requirements and ensure that the proposed solution
is consistent with business expectations.
When should
we use it?
This
methodology works very well with
online transaction processing systems, which usually interact. It also
works well with web-based development and can very
quickly help confirm page navigation and other user interaction
requirements.
What about
business intelligence prototypes?
A prototyping methodology is very useful for confirming business
intelligence analytic requirements.
End users do not usually think in terms of facts and
dimensions. They are frequently not exposed to the capabilities of
business intelligence software and the power of the tools.
I remember one project where the user community was moving from
obsolete technology (which produced paper reports) to a Business
Objects
XI platform (Which was the company standard technology). They really
had no idea how to express requirements other than to say,
"Give us what we have today".
We tried vendor provided product demonstrations, which helped a lot.
However, it was only when we created a working
prototype solution, with their data, that users were able
to work with the tool and see it’s capabilities.
Project requirements were not actually changed on this project but we
saved a lot of churn that might have occurred during
design/development. Thanks to the prototype, the users already knew how
they wanted certain things like
folder structures, and naming conventions.
The user community also became involved so they took more ownership for
requirements as they gained confidence working with “their” prototype.
Did you
say throwaway?
Yes, I did—The basic premise of prototype development is the software
should not be used for production—That is not the purpose of prototype
development.
I remember another project where we were contracted to
design and
develop a prototype solution—We were expected to use the prototype
to “flesh-out” requirements. The project was a recognized
international success. We concluded the project with a set of
recommendations that we had discovered while using the solution (We had
discovered one fairly significant flaw that we felt should be addressed
in a full production solution).
Did
you guess what happened? Project
funding was put
“on-hold” for a while but one of the business users decided to
implement the
prototype solution anyway—The solution was more robust than most
prototypes but it still had the “flaw”. This particular user
group knew about the issue and had a good work-around.
Unfortunately, these types of solutions have a habit of
outlasting people who know about the work-around.
Some things
to consider…
- Prototype methodology is a very useful way of
confirming business intelligence analytics and reporting requirements;
- The prototype solution must be considered
“throw-away”;
- Plan the time and effort as part of the
requirements
analysis phase and possibly the development phase; and
- It has limited use for demonstrating data
storage and data movement portions of the solution.
Before you
return, remember...
A prototyping methodology is a software development process which
allows developers to create portions of the solution to demonstrate
functionality and make needed refinements before developing the final
solution.
This technique can save considerable development time by reducing
re-work as users see the product for the first time.
|
|
|