jargon

Architecture & practice·topic 5 of 10

Legacy systems and migration

Almost nobody starts from nothing. This is the vocabulary of changing something that is already running and already has users, where the hard part is never the new code but the six months where both versions exist.

Read in order · tick what you already know

  1. 01

    everyone agrees it should be replaced, and everyone also agrees it is the only thing that knows the pricing rules.

    Legacy system

  2. 02

    there was no existing system to accommodate, and the hardest part turned out to be deciding anything.

    Greenfield

  3. 03

    the design was fine and half the work was making it coexist with what is already running.

    Brownfield

  4. 04

    you did not know what the function was supposed to do, so you wrote down what it currently does.

    Characterisation test

  5. 05

    you changed the shape of the code all afternoon and the tests never went red once.

    Refactoring

  6. 06

    you decided to start again, and the old system kept receiving feature requests the whole time.

    Rewrite

  7. 07

    you put a router in front and moved one endpoint at a time until the old service had no traffic left.

    Strangler fig

  8. 08

    you put an interface in front of the old code, added the new one behind the same interface, and switched with a flag.

    Branch by abstraction

  9. 09

    everything switched over on one weekend, and the rollback plan was a sentence in a document.

    Big bang migration

  10. 10

    both systems processed every transaction for a month and you only looked at where they disagreed.

    Parallel run

  11. 11

    you wrote to both databases for the whole migration, and spent a week chasing the rows where only one write landed.

    Dual write

  12. 12

    the servers moved to the cloud unchanged, and the bill went up while nothing got faster.

    Lift and shift

  13. 13

    the replacement was blocked for two months on a report that four people run once a year.

    Feature parity

  14. 14

    the replacement went live a year ago and the old service is still running because nobody proved it was idle.

    Sunsetting