With a growing interest in high-performing work teams and how to form them, a new computational challenge, denominated Team Formation Problem (TFP), has emerged. After almost two decades of research on this problem, many works continue to raise particular conceptions of what a TFP is. Any new practitioner, unfamiliar with the problem, may be hindered in discerning what is essential and what is particular in each proposal. Until now, there was a lack of a document serving as a guide, synthesizing and framing what has been done to date. In this review, we mainly introduce two things: (1) a taxonomy proposal for the TFPs and (2) the description of the main components of a TFP. Additionally, we present and discuss some applications, complexity, and resolution methods. Finally, we conclude by describing some perspectives on this topic for future studies, where we give some insight into open problems and research opportunities. The main goal of this review is to facilitate the generalization of research, identify knowledge gaps, and support the development of a theory for the TFP.