What is Re-engineering/Reverse Engineering (3R)?
Reengineering and reverse engineering (3R), told as a story about reviving an old out-of-print book whose original manuscript is gone, working backward from the finished copy.
The original manuscript is gone — only the printed book remains.But we want to rework it and publish it again.
The editor suggests starting fresh; the writer objects that remaking twenty years of content costs more.Ignoring the finished book and starting from nothing can cost more than tracing it back.
Reverse engineering traces back the outline; reengineering rewrites it and republishes.Reverse engineering → restructuring → reengineering: grouped here as the 3Rs.
The 3Rs proceed in order: reverse engineering, restructuring, reengineering.3R is closer to restoration, bringing back what was lost.
A book revived through 3R may not come out as clean as a brand-new one.Reengineering revives an existing book — it isn't building something perfectly new.
Re-engineering/reverse engineering (3R) = tracing a lost original backward from the finished product, tidying it up, and rewriting it for republication.
The 3Rs here group reverse engineering (tracing design back from the output), restructuring (tidying structure while keeping function the same), and reengineering (rebuilding with modern technology). Some textbooks put reuse among the 3Rs, or define reengineering as reverse engineering + change + forward engineering. It's a standard approach for legacy systems with poor original design documents or source, focused on reviving existing assets rather than building fresh, as forward engineering would.
When grown-ups say it
- Reverse Engineering
- Inferring the outline backward from the finished product. Especially useful when design docs are missing.
- Restructuring
- Tidying up structure while keeping content the same. The stage between reverse engineering and reengineering.
- Reengineering
- Rewriting in today's language and republishing. The final stage of the 3Rs.
- Forward Engineering
- Writing a fresh manuscript from scratch. The opposite direction from reverse engineering. Some textbooks define reengineering as reverse engineering + change + forward engineering.
- Legacy System
- An old book with poor surviving original materials. What 3R work is applied to.
- Configuration Management
- The shelf where manuscripts are kept. If the original had been kept properly, 3R might not have been needed at all. → the shelf that protects the manuscript
- Technical Debt
- Piling up cleanup that keeps getting postponed. The longer the cleanup piles up, the bigger the 3R job gets.
- GoF Design Patterns
- A collection of proven writing formulas. These formulas often get applied while reengineering a rewrite. → the collection of proven writing formulas