I've met people who claim they can estimate software, but I don't know how they do it. Neither have any of them been able to explain how they do it.
As a consultant, my clients often require me to work on a fixed-bid basis. Thus I need to estimate so that I can prepare a realistic bid. I have never once succeeded at this. One would think I would overbid as often as I underbid, but that is never the case. The result is that I often lose a lot of money on my contracts, and end up earning a lot less than I would if I were working for a company as a regular employee.
I've been searching for many years for a book that would teach me how to estimate software, but I have yet to find one.
As for explaining this to someone who is not a coder. You could point out that no one in the industry is consistently able to meet their estimates. It happens all the time that new software products are preannounced, only to ship months or years after the date that was originally announced.
If a big company like Microsoft can't figure out how to estimate the time that goes into producing its own products, how can I?
Whether I'm being paid by the hour or by the job, my clients always expect me to provide these estimates. I don't know how they expect me to produce them when such estimation is not taught anywhere, and I have no rational basis for my estimates.