Marketing and Sales don't seem to have much respect for the laws of physics. They aren't deliberately assuming that engineers will work for free; they just don't care.<p>I removed an anecdote, here, to protect the guilty.<p>Let's say that you talk to a marketing/sales person, and they give an absurdly optimistic estimate for a significant project.<p>So either they would deliver a steaming heap of garbage, at their estimate, or (more likely), the project would take a lot longer than the estimate. Since it is often a "cost plus" contract, we are unlikely to be happy with the outcome.<p>It would probably still be a steaming heap of garbage, but at a much higher price and months late.<p>The thing about late projects, is that there's this huge rush to deliver all the features by the ridiculous date, and, when it gets there, you have this horrendous Rube Goldberg device that is a creaking, barely-usable bug farm.<p>All the rest of the time is spent trying to get it working properly[0]. It would consist of slapping kludge on top of kludge, until the result is 90% cruft.<p>Good estimation is a black art that no one I know has ever gotten right. That includes Yours Truly.<p>I have a friend that wants to do a fairly ambitious NPO project. I was unsatisfied with the interactions he's been having with potential contractors, and just started to do the project myself, which includes adapting the backend (which I already wrote, taking seven months), and writing one of the frontends (which looks to be on track for a couple of months, at least).<p>As usual, it's going about 50% slower than I had planned, but it's definitely coming along. It will be really, really good, but quality takes time. One of the things that I do, is have a very loose project plan that solidifies as the project progresses. It really requires me working alone. Doesn't scale well to teams.<p>Since I'm working on it for free, I guess that I'm a chump, eh?<p>[0] <a href="https://www.youtube.com/watch?v=NkQ58I53mjk" rel="nofollow">https://www.youtube.com/watch?v=NkQ58I53mjk</a>