The Uncomfortable Truth About Programming
Many programmers do not want to acknowledge it, but they do not predict the future, and they have to adapt.
Yesterday I was talking to a student about his final degree project. He called me for advice about which path to follow. He presented me two options: one harder for him, with risk to leave the project unfinished, but with the best future value; and another one easiest to him, with high chances to finish the project on time, but that would need reworking in the future.
The student got surprised when I recommended him the to follow the easiest path. My reasoning was simple: most of the final degree projects die after they are presented, many with big expectations to be a commercial product, but far to be completed because overengineering. So better to have something good today, than something perfect in an unknown future.
I asked him to think in building an MVP. Something to release as soon as possible and get feedback. And then, in the future, if the project continues, do the refactor and create the best architecture.
Then he confessed something embarrassing for him. He told me that he feel uncomfortable working on software that will change. Even if he does not know which changes it will require, he needs to plan it.