Tuesday, December 28, 2010

Reverse Engineering & the Zachman Framework

"The FORS  system has been around so long, how are we ever going to replace it?” was the question from Amy, the Finance Director.  She was talking with Jorge, her counterpart in IT who managed the financial applications.  They had both been with the company for years and the application had been in place when they arrived.  “The COTS replacement is going to streamline maintenance and support going forward”, Jorge responded “but we’ve made so many client customizations to manage quality in our field offices, it’s going to take forever to extract all of the unique business rules.”
In a previous millennium, I was a participant on a Y2K project to replace a legacy application written in a source language that was (even then) no longer supported.  The vendor was commissioned to rewrite it – which really meant reverse engineering the requirements and specifications.  I was introduced at that time to the Zachman Framework.  I appreciate closed methodologies (that is, a specification that is comprehensive and fully integrated).  Further, I think hierarchically.  The Zachman Framework was a golden find and we utilized (a variant of) it on that project.
Later, I had a similar opportunity when I was managing a small development team responsible for a legacy application that was also a strategic enterprise asset.  We utilized the Zachman Framework again to document the reverse-engineered data model, application architecture (component interfaces), technology architecture, business rules, event model (triggers), user interface, and role model.  The key was that we were able to separate and clearly distinguish the logical model from the physical model – that is, the business requirements from the technology constrained implementation.
The one difficulty I experienced was getting my team to buy in to the need to document the system.  As their bread-and-butter, they didn’t want to make it easy to replace it.  As long as it was a black box, they felt their jobs were secure.  As it turned out, I believe they are all (except for me) still there supporting that system.  Such are the ways of corporate enterprise.
Nonetheless, for documenting and understanding enterprise systems, I am a big fan of the Zachman Framework and am glad I have it in a slot in my toolbox.  While it is applicable to a variety of circumstances, it is a lifesaver when it is time to “rationalize” that critical legacy application. 

No comments:

Post a Comment