When I train EnvisionConnect users on new features, I look forward to seeing the folks who earlier participated in the design phases of the project.
We've used prototypes and online meetings to get the designs in front of the customers very early. So, by the time the training is scheduled, the workflows should be very familiar, like an old friend.
As a general disclaimer before training begins, I usually try to say something like this:
Before we begin, a reminder that we develop iteratively. That means that the features of the workflow are delivered in smaller manageable segments. You may not see today all the features we discussed during design.
It's kind of like painting your kitchen. Coats of paints are added to the walls only after the previous coat has dried and we agree that we really do like the color, texture, etc...
Iterative Development has huge benefits for the developer and the customer. Key among them:
- The "Must Have" features get delivered first and get delivered early, because we're not waiting for all the "Should Haves" and "Could Haves" to be integrated.
- Poor design elements are exercised early, giving the designers and customers a chance to change course if necessary.
- Good design elements are embraced, clarified, and reused with greater confidence.
- And sometimes... just sometimes, the user community determines that the first iterations are sufficient. This is a well-informed decision since they've been using the working system all along.
Having painted a few kitchens, bedrooms, and bathrooms over the years, it's always a nice surprise when two coats does the job.

Well said, Darryl.
We get questions all of the time asking what iterative (I usually say "think incremental".) development means. Thanks for providing a layman's explanation we can point others to.
Posted by: HL Arledge | July 10, 2007 at 07:23 AM