Motivation

 

There is a fundamental paradox at play in contemporary software development. On the one hand, organizations are faced with the demand for faster time to market;  on the other hand, these same organizations are under pressure to deliver systems with higher quality at lower cost. Keeping balance between these two forces is quite hard: rush a software system to market, and its quality will undoubtedly suffer; focus only on quality, and you may still fail because it took you too long to release your system to users.

Second, with the presence of the Web, the world of software development has irreversibly changed. In traditional systems, a system would typically have a controlled number of users; on the Web, a system might have millions of users, many of whom are not under the control of the software development organization. In traditional systems, the conceptual distance from the application to the data was quite small; on the Web, most interesting systems consist of thousands of moving parts, some scripted and some compiled, using mechanisms that are quite distant from classic relational stores. In traditional systems, change was inevitable, but could reasonably be managed; on the Web, change is continuous, and happens at every level of a system's architecture and implementation technology. In traditional systems, the number of stakeholders invested in the successful development and deployment of that system were relatively small; on the Web, there are many new stakeholders, from content creators to information architects to network designers, all of whom must work together with the traditional software development team to overcome the e-software paradox.