Should I rewrite OR reengineer a software system? Neither will work. Why? Watch Eric Evans – Strategic Design

The problems

Switching off the legacy system completely is a bad idea (unless it is really expensive to run)

  • While the new system is built, customers need new features in the old system -> leads to a race condition between the old and the new system
  • The complexity of the old system lies in the grown interconnection between all the parts of the system -> complexity of the old system is always underestimated

Reengineering a big legacy system is also a bad idea

  • If refactoring efforts are spread across the whole codebase -> no big benefit will be seen -> those refactorings are drops in the ocean
  • If refactoring efforts are spent only on specific parts of the system, that seems to be important -> irresponsible hackers will destroy your redesigned areas later on
  • Expert (responsible) developers that are able to refactor the codebase cannot produce new features -> Managers see no real outcome -> leads to less trust for the experts
  • Non-expert (inexperienced) developers (or hackers) implement the new features instead -> Managers see those benefits -> leads to more trust for hackers

The solution

Determine which parts of the system are both your unique selling point and complex (because if it wouldn’t be complex, your competitor could just copy your unique selling point). These parts are your core domain. Clean that parts up and “seal” them to avoid “attacks” from hackers (the irresponsible developers)

Try to outsource or buy all other parts of the system

Don’t try to create an enterprise model. There is no “one model” that rules them all!

The bottom-line

Know what is important for the business, and then work on your core domain.


Should I rewrite or reengineer a software system?
Tagged on:     

One thought on “Should I rewrite or reengineer a software system?

Leave a Reply

Your email address will not be published. Required fields are marked *

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.