Scrum training usually assumes your company's been contracted to produce software for a client. For example, a business owner might hire your company to develop an application for internal business use (like accounting or submitting expense reports)
But what if that's not what your company does? Specifically, what if your company develops software for distribution to a target audience (for example, Microsoft Office)? Is Scrum automatically the wrong methodology in that case?
Intuitively, it seems you could maybe make Scrum work (albeit, perhaps with some modification) in this type of scenario. In my opinion, the "easiest" way to do so would be to hire volunteers from the target audience to collectively fill the role of the "client". Perhaps they could form a council that collectively decides what modifications should be made to the software.