Taken together, the above characteristics mean that much existing software is of relatively poor quality and is steadily becoming worse. As the same time, there is strong demand for new and changed software, which customers expect to be of high quality and to be produced rapidly. Therefore, software developers have often not been able to live up to the expectations of their managers and customers - many software projects are either never delivered, or are delivered late and over budget. Furthermore, many software system that are delivered are never put to use because they have so many problems; others require major modification before they can be used.