The real challenge is not so much selecting and implementing the best solution from the infinite possibilities of modern technology.
Catering well enough to the needs of the end-users is what it is all about. In other words, there must be sufficient overlap with the expectations of the kind folks wanting the solution in the first place.
Make doubly even triply sure that the needs are clearly explained and understood by both sides, that during the implementation there is constant communication and feedback, and that in the end there is a formal acceptance procedure that is based and then verified according to the original list of needs, e.g. user requirements.
This means that without a clear-cut definition of the starting point, it will be surely back to the drawing board as soon as you have taken the first five steps or so.
In that regard, the so-called 'best solution' is almost never the one that has the highest chances of succeeding. The starting point will diverge from the original expectations the moment work is started, but the human needs will keep things in check as long as they are given enough attention.
Do not forget the human element, whose role in today's modern society is often under-estimated or even completely ignored.