It is rare that a “soft” product is delivered and deemed complete and correct on the first try. This was something that I needed to lear after leaving a more academic world. In contrast to a theory or paper that may be right or not-right, deliverable soft products continually evolve, and the incremental releases produced either meet the expectations of the consumer or do not. Managing those expectations is as important a piece of the process as is producing the release.
This is where incremental releases can help both producers and consumers of soft products. A series of incremental releases help both parties align goals and expectations. Each release may introduce only one or a few features. In this way the customer is not overwhelmed with information at each release. If the project has more of the flavor of a joint-engineering project, objections to the way the project is proceeding may be more easily resolved if addressed earlier rather than later.
It is also important to communicate to your customer along the way and let them know what you are trying to do and how you intend to get there…especially if your choices impact the way their work will be done. Finding a way to allow your customer to feel as if they participated in the process will give them a sense of ownership that will not exist if the release/deliverable process is unidirectional.
One of the best pieces of advice I received about managing expectations regarded the announcement of schedule “adjustments” (usually a schedule slip). The advice was that if the slip was one week, it should be communicated a week before it would happen. If it was a two month slip, a two month lead should be allowed, etc. Schedule adjustments are a reality of engineering projects. The way they are managed can make all the difference in keeping the relationships healthy and communication open.