In a previous life I sold and delivered technical training for Jive Software for several years, traveling around the world teaching Fortune 500 companies how to enhance their business using social.
I quickly discovered that an effective training program has to be flexible. What worked for one company missed the mark for another. So I adapted and built out more training courses and material than I'd ever need, and then I'd pull from those training courses as needed to make each client happy.
It was incredibly exciting and rewarding to be able to tailor the training for each client... to adjust on the fly. Sometimes even changing direction right in the middle of a course, based on where the conversation was going.
Yet customers still wanted to know upfront what the agenda would be, and what they'd get out of the training course. Much like software customers. They want to know ahead of time what features the software will have, how much it will cost to build, and when they'll be able to get the finished product.
And that my friends, is where my "85% solution for most people" rule of thumb comes to play.
If you try to find a 100% solution that solves problems for everyone involved, you'll never get there. It will never launch - PERIOD.
However, if you shoot for a prescriptive starting point - a standard course agenda, or a base set of software features (sometimes referred to as MVP - minimum viable product) - then your chances of actually launching with something closely resembling what you hoped to build increases exponentially.
Too many engineers refuse to move forward unless they're 100% sure their solution will meet 100% of the requirements, which dooms the project to failure before it even starts.
Find a solution that solves 85% of the problem for most people. Build it. Ship it. Listen to the feedback and learn what features are optional for clients vs core and mandatory, and then refine the 85% target accordingly.