King: "Make me a toaster."
Software developer: makes toaster
King: "Okay, that's great, but could you also make it scramble eggs? It should just be a small change, right?"
Software developer: adds egg scrambling module
King: "Actually, could the eggs be soft boiled instead?"
etc.
In other words, OO and other programming abstractions arose precisely because we actually do need to deal with changing requirements, all the time.