Jay is nothing if not practical; incredibly practical, in fact frustratingly practical at times. But without a dedication to being practical, to really making the theory work, and consistently testing the tenets of the theory through large, complex projects, the benefits of it would never have become clear.
In REAL Analysis Method, Eric taught me an approach about how to build a system that would capture business events. This implies a soup to nuts approach to the problem: “Let’s build a system that captures all the business events and their associated attributes needed for reporting, and then we’ll worry about the reporting problem.”
As we just noted, reporting problems often appear because of data volume issues, and event based systems have even more volume than a normal system. Thus although a nice idea, this theoretical approach from my experience isn’t currently practical.
Even if it was, as noted by McCarthy, the business world, particularly the financial systems world, doesn’t work in that wholesale change sort of way. The risks of reporting errors from too radical a shift in systems can be catastrophic: It could cause the demise of the entire enterprise. So incremental – or perhaps in Jay’s language, practical – approaches are needed.
So what are the steps in these practical approaches? The best way to understand them might be through descriptions of the various projects SAFR has been involved with through the years and the parts of SAFR that support those projects. These projects affected not only the companies for which they were implemented, but were the basis for features being added to the software, architectural choices in those solutions, and the steps taken to solve specific problems.
Rick always emphasized that people capable in multiple domains created the best results. The practical approaches may be listed as a set of sequential steps, but what Rick said is true when applying the steps. If one does not think about performance until the end, the system will not perform. Processes generate new business events, some of which will likely be needed when finding more detailed events. Performing the steps effectively is a bit like solving simultaneous equations; one must work up and down the list multiple times in order for each answer to balance and integrate with the others. It requires a real balancing act.
Contents of this Part include: