on estimates
Software estimates are wrong. The question isn’t whether they’ll be wrong but by how much and in which direction.
The reason estimates are hard: the part you don’t know how to do takes longer than the part you do. By definition, the unknown-unknowns are outside your estimate.
A useful practice: estimate in ranges, not points. “Two to five days” is more honest than “three days” and it signals the uncertainty correctly. If your stakeholder can’t work with a range, the problem is the process, not the estimate.
The only way to get better at estimating is to track your estimates against actuals and actually study the pattern.