As TFA points out, that always works fine when your requirements are *all* known an are completely static. That rarely happens in most fields.
Beyond 'hello world' that's always the case. Let alone in real-world projects the dates change, the team members change etc.
It fixed it, but new programmers shouldn't be forced to deal with stuff like that.
You're new here aren't you? Software always has to fix up the screwups the hardware engineers made.