Developer portraying: A quick approach to understanding developers on OSS platforms

Wenhua Yang,Minxue Pan,Yu Zhou,Zhiqiu Huang
DOI: https://doi.org/10.1016/j.infsof.2020.106336
IF: 3.9
2020-09-01
Information and Software Technology
Abstract:<p><em>Context</em>: Millions of software developers are using open-source software (OSS) platforms to host their code and collaborate with each other. They possess different programming skills, styles, and preferences, etc., and it is important to understand them for making collaborative decisions such as programming task assignment. Existing OSS platforms do not provide sufficient information about developers, and we need to spend significant effort in searching the OSS platforms for such information.</p><p><em>Objective</em>: Different than the basic developer information displayed on OSS platforms, we propose portraying developers as a quick approach for characterizing and understanding them. We discuss how to build developer portraits to make them concise yet informative.</p><p><em>Method</em>: We propose a multi-dimensional developer portrait model to specify the attributes of various aspects concerning software development about developers. Then, a method that leverages text analysis, web data analysis, and code analysis techniques is presented to analyze a developer's various sources of data on OSS platforms for constructing the portrait.</p><p><em>Results</em>: The constructed portraits can be vividly displayed on the web to help people quickly understand developers and make better decisions during collaborative software development. Case studies on two representative problems in the software engineering area—code recommendation and programming task assignment—are conducted, and the results show the improvement in recommendation and the potential for proper assignments when using our portraits.</p><p><em>Conclusion</em>: The developer portrait is an effective form to characterize developers. It can help people quickly understand the developers and can be applied to various applications in the software development process.</p>
computer science, information systems, software engineering
What problem does this paper attempt to address?