Software is a peculiar thing. It is made by engineers, but how to estimate costs and how to understand the end product is very different from other engineering sectors. This difference comes from the level of complexity that comes with even reasonably-sized software. The digital age just began. It might be a while until we can estimate and understand software projects, if ever.