Context: Software team formation is an important project management activity. However, forming appropriate teams is a challenge for most of the companies. Objective: To analyze and synthesize the state of the art on the software team formation research. Additionally, we aim to organize the identified body of knowledge in software team formation as a taxonomy. Method: Using a Snowballing-based systematic mapping study, 51 primary studies, out of 2516, were identified and analyzed. We classified the studies considering the research methods used, their overall quality, and the characteristics of the formed teams and the proposed solutions. Results: The majority of the studies use search and optimization techniques in their approaches. Also, technical attributes are the most frequent type considered to build individuals' profiles during the team formation process. Furthermore, we proposed a taxonomy on software team formation. Conclusion: There is a predominant use of search-based approaches that combine search and optimization techniques with technical attributes. However, the adoption of non-technical attributes as complementary information is a tendency. Regarding the research gaps, we highlight the level of subjectivity in software team formation and the lack of scalability of the proposed solutions.