Your question about how PMs give estimates for dev’s work is legitimate. Nothing is more ridiculous than sales or a PM giving a client an estimate that is way off the mark and without understanding of what goes into a feature. It’s one of the reasons our PMs need to have technical knowledge, and even if not, that they understand concepts well enough to manage a project (for example, they need to be familiar with APIs). One example is that one of our non-technical PMs worked for us as a QA before transferring with a technical QA, so he developed a good working understanding of the APIs used. Understanding the various types of coding languages and tools our developers use is a given.
Your point about devs giving better estimates is usually true. This is also the reason our PMS and devs work closely. It is not a one-way street. Instead, if a PM’s estimate is very different from the dev, it is a good starting point for the PM to go ask why and learn. Also, sometimes even if a dev is great at their work, they may not be great at estimating.
We haven’t tried to implement PERT estimates for devs. We’ll keep it in mind! They make up most of the company, so we’re still pretty developer-led. Maybe it’s a bit different from many other companies.