When you hire a software developer, you're hiring an explorer. If you're hiring a _great_ developer, you're hiring someone like Lewis & Clark, who have a wealth of experience going on expeditions into new territory.
What you are _not_ hiring, is someone who knows everything there is to know about your particular expedition. They know what berries to eat and which to avoid; how to ford a stream safely; how to see a change on the horizon and weather the storm. But they have no more idea about the specific challenges they'll face on your expedition than you do.
No one's built this particular system with these tools, with these people, with these domain experts. There may be nothing unique about any one facet of it, but taken as a whole almost every project is unique, and plenty unique enough to have unknown features in the topography to throw more than one wrench in the works.
The key is having experienced wrench handlers. No one can know the unknown until you get there.