I've argued that building software is much more of an Art than Science. The teams who follow the agile manifesto strictly over plan this artistic endevor of birthing software from nothing with T-shirt sizing, rule of thumb and or fibonacci numbers in 2 week increments of a sprint. What I've observed in the real world of software engineering in 20 years is that during the planning and estimation process: