Do you remember this source code? (2018)
Developers occasionally get questions about code that they have written. Such questions are not always easy to answer, especially if that code was written a long time ago. Krüger, Wiemann, Fenske, Saake, and Leich used an online survey to study how developers lose familiarity with “their” source code over time.
Enhancing person-job fit for talent recruitment: An ability-aware neural network approach (2018)
Person-job fit is the extent to which a candidate is well-suited for a position. Determining this person-job fit is currently a laborious task. Qin et al. introduce a novel approach that uses neural networks to automatically guess the person-job fit based on information extracted from job postings, resumes, and previously filled vacancies.
An industrial evaluation of unit test generation: Finding real faults in a financial application (2017)
Writing tests isn’t something that many developers enjoy, and clients generally don’t like spending money on testing either. Could we try to automate it? Almasi, Hemmati, Fraser, Arcuri, and Benefelds compared two unit test generation tools for Java, and conclude that while they do work, you’ll still have to write tests manually for now.
Online job search: Study of users’ search behavior using search engine query logs (2018)
This week’s paper by Mansouri, Zahedi, Campos, and Farhoodi shows how job seekers use search engines to find new jobs.
We don’t need another hero? The impact of “heroes” in software development (2018)
Hero developers are often thought to be bad for software projects, due to their tendency to write code on their own without collaborating with team members. This paper by Agrawal, Rahman, Krishna, Sobran, and Menzies attemps to debunk that myth, but also leaves the most important question unanswered.
Rethinking thinking aloud: A comparison of three think-aloud protocols (2018)
Think-aloud is one of the most popular methods used to evaluate usability of websites and other types of systems. Various think-aloud methods exist. Alhadreti and Mayhew compared three of them – concurrent, retrospective, and hybrid think-aloud — and found that one clearly outperforms the other two.
When not to comment: Questions and tradeoffs with API documentation for C++ projects (2018)
Many developers dislike writing documentation. However, if someone else’s code isn’t sufficiently well-documented, they’re often the first to complain about it. Thanks to this study by Head, Sadowski, Murphy-Hill, and Knight, we now know how much you should invest in API documentation (and how much you can get away with).
Characteristics of useful code reviews: An empirical study at Microsoft (2015)
Last week, we’ve learnt that reviewing and discussing code is a good way to catch bugs. That obviously doesn’t mean you should meticulously review and start arguments about every single line of code – but what should you do then? This week I discuss a paper by Bosu, Greiler, and Bird that explains what makes code reviews useful.
The impact of code review coverage and code review participation on software quality (2014)
Code reviews are often used as a way to make sure that bad code doesn’t make it into public releases. Not all code reviews are equal for that purpose however, as this study by McIntosh, Kamei, Adams, and Hassan shows.
Datetime formatting in Go
time package takes a novel approach to defining datetime serialisation formats. Is it an improvement over existing alternatives?