From monolith to single-source to single-deployment
Today you often face discussions whether to develop something for the desktop with a GUI, the web or the command line. It also happens quite often that you start in one area, and while the project evolves, the requirements are changed or extended. To minimize the discussions and to avoid re-implementing functionality, it is a good practice to separate the function from the user interface. Of course the "single-source" approach is nothing new, but probably for developers that started their career good to hear again. :)