Analogies like &quot;painting a room&quot; are pretty useless because they are very misleading. Especially when it is an innovative product, a better analogy would be: &quot;painting a room on Mars&quot;.<p>With software development, there are a lot more &quot;unknown attributes&quot; that determine the main part of the effort estimation unless it is a repetitive task.<p>So, a critical&#x2F;skeptical engineer would always drive the customer nuts by asking questions nobody can know and the conclusion will end somewhere like it is not possible to give a upfront estimation and stop the project. Or the effort to give the estimation approaches the effort to develop.