6.1.7 Maintenance The maintenance phase is the payoff for portable development. Each requirement to produce an implementation in anew environment should be greatly facilitated by the efforts to achieve portability during original development. Other maintenance activities, such as error correction and feature enhancement, will not be impeded by portable design and may possibly be helped. The only complicating factor is the need to maintain multiple versions. Where possible, clearly, common code should be maintained via a single source, if the versions are under the control of a common maintainer. Issues of multiversion maintenance are widely discussed in the literature and will not be repeated here.