Reproducing, Extending, and Analyzing Naming Experiments
<|reference_start|>Reproducing, Extending, and Analyzing Naming Experiments: Naming is very important in software development, as names are often the only vehicle of meaning about what the code is intended to do. A recent study on how developers choose names collected the names given by different developers for the same objects. This enabled a study of these names' diversity and structure, and the construction of a model of how names are created. We reproduce different parts of this study in three independent experiments. Importantly, we employ methodological variations rather than striving of an exact replication. When the same results are obtained this then boosts our confidence in their validity by demonstrating that they do not depend on the methodology.   Our results indeed corroborate those of the original study in terms of the diversity of names, the low probability of two developers choosing the same name, and the finding that experienced developers tend to use slightly longer names than inexperienced students. We explain name diversity by performing a new analysis of the names, classifying the concepts represented in them as universal (agreed upon), alternative (reflecting divergent views on a topic), or optional (reflecting divergent opinions on whether to include this concept at all). This classification enables new research directions concerning the considerations involved in naming decisions. We also show that explicitly using the model proposed in the original study to guide naming leads to the creation of better names, whereas the simpler approach of just asking participants to use longer and more detailed names does not.<|reference_end|>
@article{alpern2024reproducing,,
    title={Reproducing, Extending, and Analyzing Naming Experiments},
    author={Rachel Alpern, Ido Lazer, Issar Tzachor, Hanit Hakim, Sapir Weissbuch,
  and Dror G. Feitelson},
    journal={arXiv preprint arXiv:2402.10022},
    year={2024},
    archivePrefix={arXiv},
    eprint={2402.10022},
    primaryClass={cs.SE}
}