Take VoIP for an example. There are many different ways to implement it. You can host it in the cloud or host it on your own servers at your place or someplace else. If you host in the cloud, there are multiple providers. If you host it yourself, there are multiple ways and multiple systems.
The thing about it is that even though there are a lot of choices it seems to come down to each choice only doing 80% of what you want it to do. I use 80 as a nice round number. My point is that while route A will do most of what you want to do route B will do something else that you wish you could do. It’s not so much a choice as a decision as to what you can do without. Nothing is going to do 100% of what you want it to do. This holds true for almost everything related to technology.
It does get frustrating sometimes.