After implementation, the project is not over, but moves into the support phase. The support phase includes debugging, training, enhancements and serving as a liaison between developers and the user community.
Perfect code is an ideal that is rarely met. It is fairly doubtful that bugs and inconsistencies will not arise in the early period after an implementation. Sometimes its due to an oversight, sometimes its human error. Whatever the underlying cause, problems will occur.
Training is a very important component of the development life-cycle and its intensity is conversely related to the size and scope of the project. Any trained developer will make a concerted effort to create understandable and helpful documentation. A good developer is always cognizant that someone else may at some time have to jump in and assume control of their work. Therefore, good documentation should be a by-product of a successful development phase. That documentation has the dual purpose of providing a basis for training to the user community.
Another beneficial training tool is video. In this day and age, project personnel often work together virtually, as opposed to physically, making the use of sites like Vimeo and YouTube even more useful.
Enhancements can be a touchy subject if it is determined that an issue is “out of scope” of the initial project. In some cases, enhancements may be treated as project “add-ons” or can warrant a new project altogether. These are issues that must be negotiated by the instrumental parties involved.
Project support has virtually no end and can continue until the life-cycle determines that a new process is in order.