With a volatile labour and technological market, onboarding is becoming increasingly important. The process of incorporating a new developer, a.k.a. the newcomer, into a software development team is reckoned to be lengthy, frustrating and expensive. Newcomers face personal, interpersonal, process and technical barriers during their incorporation, which, in turn, affects the overall productivity of the whole team. This problem exacerbates for Software Product Lines (SPLs), where their size and variability combine to make onboarding even more challenging, even more so for developers that are transferred from the Application Engineering team into the Domain Engineering team, who will be our target newcomers. This work presents concept maps on the role of sensemaking scaffolds to help to introduce these newcomers into the SPL domain. Concept maps, used as knowledge visualisation tools, have been proven to be helpful for meaningful learning. Our main insight is to capture concepts of the SPL domain and their interrelationships in a concept map, and then, present them incrementally, helping newcomers grasp the SPL and aiding them in exploring it in a guided manner while avoiding information overload. This work's contributions are four-fold. First, concept maps are proposed as a representation to introduce newcomers into the SPL domain. Second, concept maps are presented as the means for a guided exploration of the SPL core assets. Third, a feature-driven concept map construction process is introduced. Last, the usefulness of concept maps as guides for SPL onboarding is tested through a formative evaluation.Link to the online demo: https://rebrand.ly/wacline-cmap
Software Product Lines (SPLs).An SPL is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way [6]. Two issues play a crucial role in SPLs. The first issue is adequately handling variability, which is the ability to derive different products from a common set of core assets. The second issue is how to systematically build such core assets so that they will later be reused to yield different products [7].SPLs are typically developed using two processes, Domain Engineering and Application Engineering. The former analyses the domain of the SPL and develops the aforementioned core assets, that is, software artefacts such as code, architecture, requirements, and so on, that will serve as building blocks for the SPL products. In this sense, Domain Engineering targets development fo r reuse. On the other hand, Application Engineering has the goal of developing a specific product or application for the requirements of a particular customer by reusing core assets. That is, it targets development with reuse.