Neural networks are being used increasingly in a wide range of real world applications. However, existing studies have reported major problems in neural network software development. This paper analyses these problems, and describes how existing software engineering practice can address some of them. Other problems are identified as requiring new approaches tailored to neural network development. A unified framework is presented, in the form of an extension to the Capability Maturity Model, aimed at instituting good software engineering practice for neural network development. The framework should be of interest to neural network software developers, and suggests research directions towards the software engineering of neural networks.