With coding tests increasingly used to validate a developer’s skills during the hiring process, the issue of cheating and code plagiarism is attracting more attention. Meanwhile, hiring firms and HR departments are under growing pressure to fill open developer roles as they struggle to keep up with business demands.
The shift towards remote workforces and remote hiring practices, spurred on to a large extent by the pandemic, have also upped the potential for cheating and code plagiarism among potential hires. Vivek Ravisankar, co-founder and CEO of HackerRank, said his company has seen 37 percent increase in plagiarism attempts compared to plagiarism activity pre-COVID.
However, there are a few ways hiring managers can get ahead of plagiarism. One way is to administer a coding challenge that doesn’t only have one correct answer, but instead allows for multiple solutions.
“In doing so, you’re decreasing the odds of a copied answer—but even more than that, you’re also getting a more complex view into how the candidate thinks about problem solving, and even the programming techniques they might employ to do so,” Ravisankar said. “Another good rule of thumb is to look for intangible skills, like code quality, when reviewing the code.”
On the technology front, companies can use plagiarism detection tools powered by machine learning (ML) that are built around specific inputs and candidate behaviors. “Within our own assessments, for example, our plagiarism detection was able to reduce false positives by 60 percent without any negative impact on the number of true positives detected,” Ravisankar added.
Apart from code similarity, which is one input, Ravisankar said his company’s tools also look at other behavioral signals, like the length of time it takes a candidate to reach a right solution, various activities during the assessment, and more.
A Complicated Problem
HireVue's senior vice president of product, Ricky Simmons, pointed out plagiarism in hiring assessments is a complicated problem. For starters, it’s common practice for developers to research existing code solutions as a part of crafting software. But where’s the line between research and plagiarism?
“It is standard practice for a software developer to use others’ solutions that are readily available online when considering a problem,” he said. “Doing so reduces development time and increases reliability since solutions do not need to be developed from scratch.”
He said the first, non-technical way to discourage plagiarism is to level-set with candidates about your expectations. “What is considered plagiarism and what is considered an efficient use of existing code?” he said. “Figure that out and share it at the start of your hiring process.”
Once you’ve established expectations, the best way to discourage plagiarism is to use a technical assessment solution: HireVue offers one such product, called CodeVue, which uses Measure of Software Similarity Scoring (MOSS) to flag likely plagiarists.
“This, combined with a digestible timeline of a candidate’s activity within the assessment, helps paint a fuller picture,” he said. “This timeline will indicate when code has been pasted into the solution and allows the human evaluator to make a judgment call on if this is within expectations or potentially plagiarism of another’s work.”
Lastly, to prevent plagiarism and make the best hire, Simmons recommends any assessments always be followed with the assessor asking the candidate to explain their solution and how they reached it: “You can also follow up in subsequent interviews with discussion on the candidate’s answers and take a deeper dive into their project portfolio.”
Another method for discovering plagiarized code is to arm your hiring teams with a basic understanding of plagiarism patterns. As a rule, that pattern typically looks like this:
- Candidate does nothing at the start (inactive; reading the challenge details).
- Browser focus goes away for a period of time (searching for an answer).
- Candidate pastes a large amount of code.
- Candidate quickly passes tests without editing the code.
“With the ever-increasing demand for technical skills, there will unfortunately be more opportunities for cheating by people willing to exploit desperation to hire,” Simmons said.
Elli Ferguson, a database administrator at a major bank with more than two decades of coding experience, also noted there's only so many ways to write a specific line of code. “Some what I've seen is that hiring managers will try to ask for too specific of a coding example in order to limit that the scope and the size of the work,” she said. “But if you make it too specific, then there's only one way to write it. How is somebody going to not write it the same as everybody else wrote it?”
She added another problematic tendency among hiring managers: plagiarizing the questions they ask developers: “They go and they take their questions from a stock site, but they expect a unique answer, but they have to have an answer that matches the question that they plagiarized themselves.”
Ferguson said another way to spot plagiarized code is by looking at the comments, which are not executable parts of the code and have their own characteristics.
“You can tell by code based on my comments, and I can recognize somebody else by lines of code, especially if they've commented on it,” she said. “So, some hiring managers may actually be missing the key to determining whether or not that code has been plagiarized.”