In everyday life
Like a town that renames a street: it puts the new sign up beside the old one, waits until maps and post offices have caught up, then takes the old sign down.
One case
A booking site renames the database columnOne named field in a database table, such as the price of every product. “guest” to “guest_name” at 14:00, in one step. The new code reaches the site’s 4 servers one per minute. A server that still runs the old code asks for “guest” and fails every booking page it serves. For 4 minutes booking pages fail: at 14:00 on every server, then on one fewer each minute.
Every case
Code and data never change at the same instant. Servers update one by one, phone apps update when users allow it, and other teams read your data on their own schedule. A change made in one step breaks every reader that has not caught up yet. Expand and contract keeps both forms alive while the readers move, so each step is safe on its own and each step can be undone. The last step, removing the old form, waits until a check shows that nothing uses it.
The word
Engineers call this
Add the new form, move everyone to it, then remove the old one. Never rename something shared in a single step.