People who don’t understand the incremental work breakdown structure of complex tasks and roles should never be responsible for committing to the delivery date. This is one of the classic flash points of war between sales and engineering.
The sales person makes a commitment to the customer in order to get the deal – all without consulting the engineering team. The engineering team says it’s not feasible but sales won’t go back to the customer because they don’t want to lose the deal.
Whenever I’ve encountered a problem situation in software development, it usually can be traced back to misalignment of expectations between technical and non-technical teams.
Software development is genuinely like painting a painting. You may have some stencils and paint-by-numbers approaches in the form of frameworks and libraries to assist. But you’re creating something new that has never existed before. It’s like asking how long it will take to write a best-selling novel.
If you can’t accept some of these fundamentals, you probably shouldn’t endeavor to be in the software business.