"Highly specific project definitions usually go astray very quickly. Vague enough definitions allow for creativity and selectivity.. And when you allow for those two things, you empower [the people doing the work] with the agency to do the best work." https://medium.com/computers-are-hard/computers-are-hard-building-software-with-david-heinemeier-hansson-c9025cdf225e
What's so fascinating about software development's inability to deliver a given spec by a given date for decades on end is that PEOPLE STILL THINK IT'S DOABLE! Yeah, sure, this fails like, all the time, BUT THIS TIME IT'LL BE DIFFERENT!

What's worse than it not working, though, is the amount of needless guilt it produces. Most people feel bad when they thought something would take two weeks, but it ended up taking four. Like they're personally to blame for the inability to estimate the un-estimatable. No. Stop.
The empirical data is in: Estimating software does not work. The entire premise is bunk. There's no workshop you can take, no methodology you can employ, that'll suddenly change this basic fact. So you should stop trying. Please.