It’s always difficult to tell potential customers that we simply don’t know how long it’s going to take to build a software system, if said system is moderately complex. This is one reason we avoid fixed-priced projects — when the cost of building something is unknown, you want to make sure both you and the customer are on the same side of the table. It’s also why the principle of building the simplest system possible is so important.
The path less traveled.