The developer's world is best modeled as a Complex Adaptive System.

In this world there are many interdependent moving parts, your actions influence the environment and the environment influence your actions. Infrastructure influences operating systems that influence frameworks that influence your code. Your code is an assembly of modules, some developed by you, some not, all evolving daily.

Every feature is a new problem to crack, subject to unclear constraints.

In this environment predictability is a joke and an 18 months estimation was just meant to be a rough idea of the size.