2.45 Because of time pressures imposed by the contract - which ICL had agreed to - ICL started writing detailed computer programmes before it had developed a full functional specification. It had started with the "waterfall" approach to system development - a structured approach with a fixed sequence of activities - and developed a functional specification, which was found to be deficient for its purpose. It therefore switched to "joint application design", an iterative approach with developers working with users to develop the system in small components, steadily adding more and more functionality. Such a parallel approach to system development can increase productivity but may lead to greater difficulty in integration. ICL productivity improved significantly, but integration problems were also encountered.