Long-term IT projects are the exception rather than the rule, and one sure way to disconnect with customers is to begin a long-term, monolithic project developed on the traditional "waterfall" lifecycle. Such a process assumes that the product is a point solution that, once specified, can be developed in a vacuumwhich is never true. Successful IT systems must evolve with the enterprise, which means that we assume that they'll change continuously to meet customers' evolving needs. If this is true, customers will be happiest if the product is a continuous string of small incremental deliverables, developed quickly enough that the customers can't become dissatisfied. This implies that systems are always under construction, and that the development process involves constant rework. With older technologies this wasn't possible, but with modern objects, messaging, and multi-tiered architectures, it's now possible.
Two examples to prove my point: one success and one failure. One of the best client/server system developers I know set a standard with his customers that his development team would make any customer-requested change of a minor nature within two weeks. Major revisions would happen at three-month intervals. He would meet with customers, learn their complaints, and offer them a prototype solution in a week. If they liked it, he would put the change in production in another week. Customers never had time to be dissatisfied. His was the most successful system in the department, although the CIO was frustrated because it was never "finished."
By contrast, I learned of a large utility that spent five years and tens of millions of dollars developing a new customer information systemincluding a year just to test it. The slow pace of development meant that by the time the system was completed the business environment for the utility had changed. Deregulation is imminent, and the system is incapable of accommodating the new reality without extensive rework. Customers are demanding major changes, and large portions of the system are now being rebuilt at great expense. The project managers and CIO should never have agreed to spend so much time in development.