Discussion about this post

User's avatar
Maury's avatar

The amount of Forward or Reverse Engineering might depend on the project team you are working on, but as well the data management maturity of your organization. If you are on a full-on custom development application, you should be forward engineering most of the time. Reverse engineering if taking in 3rd party data, or other systems you might be interacting with.

As you mentioned, reverse engineering, partly data archeology, is necessary for understanding data relationships for extracting, or making enhancements. Getting information from data catalogs, but importantly enriching the data catalog with the data model (visual) and relationships.

Data modeling, and the resulting DDL, DML, scripts, should be treated like development code, check into source control and deployed to environment.

After reading the excerpt, It is interesting that I never thought of the logical being "mapped" to a physical model. More experience using a data modeling tool, where the physical is "generated" to a physical data model. I guess, behind the scenes, a translation and mapping does occur - attributes, to columns, naming standard is applied, data types are applied to target physical, primary keys syntax, etc. is generated to DDL. The flip side of the coin, reverse engineering with a data tool, the physical and the logical data model can be automatically created from the source database. Your mileage may vary, depending on how well the original model was created. Understanding the book is meant to be tool independent / agnostic - and meant to teach the underlying need and benefits of data modeling as part of software development.

Expand full comment
Grant Steans's avatar

Very clear read and I agree that many times, practitioners will have to start with reverse engineering to forward engineer something new. Specifically, I speak from the perspective of a business/process analyst looking to achieve more valuable BI. Coming into a process that "works" but is not very data-informed allows us the opportunity for a starting point based off of a few "obvious" entities that already exist. However, only by reverse engineering the process, speaking from a lense of "what data is involved" can we discover where the gaps are (missing entities, relationships, wrongfully defined attributes, etc.).

Expand full comment
14 more comments...

No posts