4.4 The speed of development
E-commerce consultants speak of a web year. This is the time which it takes to bring to implementation a conventional system that would normally take a calendar year to develop. Current estimates are that one calendar year is equivalent to seven web years. Nowhere is there more of an imperative for companies to develop products and services quickly, together with the computing infrastructure required to support them, than in e-commerce. In software engineering terms this has given rise to a number of software development methods which are loosely described by the term rapid application development. In technology terms it has given rise to a number of ideas which go some way along the path which ends with providing facilities that enable companies to develop systems by just bolting components together, with many of the components being specified using design templates.
The rapid development of object-oriented programming languages such as C++ and Java has meant that the last five years have seen a growth of technologies that enable a developer to program software components that can be reused time and time again in applications other than those which they were originally developed for. It is worth pointing out that the ideas detailed here are not just confined to the Java programming language components; patterns and frameworks could, for example, be equally applied to C++.
Over the last five years there has also been a major increase in interest in reusable design. In 1995 Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides published a book which has become a major bestseller (Gamma et al., 1995). This book describes how many software systems contain commonly occurring design patterns and that these patterns could be catalogued and reused time and time again in the design process.