Origins of the REV-ENG Methodology
The REV-ENG methodology grew out of a series of legacy application re-engineering projects each of which started with the re-engineering of a business model out of the existing legacy application. The re-engineering focused on recovering a model of the business objects that underlay the legacy applications. This was typically a demanding task as there was little or no documentation, only the implemented application. Over time the approach was codified into a systematic process, called the REV-ENG (for REVerse ENGineering) Methodology, which is thoroughly documented in Business Objects: Re-engineering for re-use, Partridge, 1996.
REV-ENG and the origins of the CEO Project
Experience with REV-ENG showed that a number of the same general patterns were being repeatedly unearthed in different projects - surprisingly often in quite different business areas (e.g. banking and telecommunications). Typically the specific patterns in the applications looked different because they were combinations of different sets of general patterns. It soon became clear that significant time was being wasted repeatedly re-engineering these from scratch. This indicated the potential for high levels of re-use, which was exploited by making the general patterns available for re-use in subsequent projects.
Experience also showed that the potential for generalising (and so simplifying) was rarely exhausted in a single re-engineering. The general patterns found in one project were found, in subsequent projects, to be combinations of even more general patterns. This indicated that there was significant scope for evolving the patterns to greater and greater levels of generality and simplicity.
The CEO Project was conceived out of the realisation that there would be significant economies in the application of the REV-ENG approach if one could start with a core business model for the enterprise. Reasonable economies would come from having the lower level general patterns found in single re-engineerings. But the really significant benefits would come from the very general patterns found in heavy duty re-engineering. Hence the project aimed not only to recover the most common patterns found in businesses into a coherent and consistent model - but also to try and evolve this to much higher levels of generality and simplicity.
The desire to re-engineer very general patterns led to a requirement for a stricter engineering discipline than would be necessary in a 'normal' REV-ENG project. An important part of the CEO project was "upgrading" REV-ENG to meet this stricter requirement.