Louis, you are SO very correct!! Over the years I've sat in too many meetings where the users say, "Oh you only need to put in a fixed rate which will never change...", only to have to refactor that code because business practice has changed. But on the other hand, trying to add flexibility everywhere throughout the code can result in an overly complex piece of software which doesn't need to be so complicated. From my point of view, it isn't clear how much flexibility you need to add to a new software solution vs. where you can stop adding flexibility.
If I were to be starting my career today and chose computer science in a master's or Doctorate program, I think I would try to determine what categories of functionality would be best suited to adding flexibility in code vs. what categories aren't as likely to change.
Kindest Regards, Rod Connect with me on LinkedIn.