It goes back a lot further then you think. Programmers started to answer this way shortly after computers came into existence. To come to understand why would require more time in working projects then you know. Projects are always begun with unclear requirements (they change too), the programmer must also continue to work on previous projects, the level of completion is not clear (define "done"), and pride always makes a programmer promise something sooner than possible anyway. So, it's probably something that has been around ever since engineers came into being. So, blame whoever made the wheel.