Prevalence layer . Klaus Wuestefeld defines prevalence as “transparent persistence, fault-tolerance and load-balancing of the execution of the business logic of an information system through the use of state snapshots as well as command and query queuing or logging”. A prevalence layer is effectively a simple persistence framework that serializes objects and writes them to log files. From the point of view of developers all objects are cached in memory and the persistence of the objects is truly treated as a background task that the developers don’t need to worry about. Table 2 presents a comparison of the various types of persistence mechanism and provides references to vendors where applicable. Table 3 presents suggestions for when you might use each type of technology. Large organizations will find that they are using several types of persistence mechanism and will even install the products of several different vendors. Not only do you have a choice you might be forced to work with a wide range of databases whether you want to or not.
The final retirement of a system can be a different matter. In this case you cannot rely on a newer version of your system being available to supply the functionality which you are retiring. Instead this functionality, and the data which supports it, is either implemented by another system (often in a very different manner to the end user) or is completely removed. The implication is that you may have significant rework to do in order to update the other systems which interface to this functionality. Final retirement of a system is typically executed in parallel with the implementation of other system(s) which are replacing it, such as when an internally-developed system is replaced by a commercial off the shelf (COTS) solution. In these situations the two efforts must be closely coordinated and may even be staffed by the same personnel.
The focus of this article has been on the role and organization structure of agile delivery teams, not on the supporting enterprise-level roles such as enterprise architect, enterprise administrator , or portfolio manager to name a few. As the Agile Process Maturity Model (APMM) points out, the need to become effective at enterprise disciplines is an important scaling factor. The good news is that it is not only possible for people in enterprise roles to become more agile it is both desirable and necessary. But these are discussions for other articles.