This is an empirical study of external sources of knowledge and their relative importance in different stages of the software development process. The amount of new knowledge generated through different sources and the differences between single client, customised and packaged software, are analysed. The analysis draws on case studies of 92, mostly European, software projects, and a pilot study. It shows the length, type, and relative importance of 718 sources of external knowledge in the software development process. The data collected show that there are important differences between tangible hardware and software projects with respect to the relative importance of the various sources and the knowledge acquired from these sources; differences which in part may be derived from the special characteristics of software in contrast to hardware development projects. Frequently the customers cannot specify exactly what they want, which means that the development process must be kept open to customer influence and feedback which may result in changes in the requirements, and subsequent modifications in the software.