How companies push back
As coding tests are increasingly used to validate a developer’s skills during the hiring process, the issue of fraud and code plagiarism is attracting more attention. Meanwhile, hiring firms and HR departments are under increasing pressure to fill open developer roles as they struggle to keep up with business demands.
The shift to remote workers and remote hiring practices, fueled in large measure by the pandemic, have also increased the potential for fraud and code plagiarism among prospective employees. Vivek Ravisankar, co-founder and CEO of HackerRank, said his company has seen a 37 percent increase in plagiarism attempts compared to pre-COVID plagiarism activity.
However, there are a few ways hiring managers can avoid plagiarism. One way is to maintain a coding task that not only has one correct answer, but instead allows for multiple solutions.
“By doing so, you reduce the likelihood of a duplicated answer – but you also get a more complex insight into the candidate’s problem-solving mindset and even the programming techniques they might be using to do so,” Ravisankar said. “Another good rule of thumb when reviewing code is to look for intangibles like code quality.”
On the technology front, companies can use machine learning (ML)-based plagiarism detection tools based on specific candidate inputs and behaviors. “In our own assessments, for example, our plagiarism detection was able to reduce false positives by 60 percent without negatively impacting the number of true positives detected,” added Ravisankar.
Aside from code similarity, which is one input, Ravisankar says his company’s tools also look at other behavioral signals, like the time it takes a candidate to find the right solution, various activities during the assessment, and more.
A complicated problem
Ricky Simmons, senior vice president of product at HireVue, pointed out that plagiarism is a complicated problem when it comes to hiring reviews. For starters, it’s common for developers to examine existing code solutions as part of building software. But where is the line between research and plagiarism?
“It’s common for a software developer to use other people’s solutions available online when thinking about a problem,” he said. “This reduces development time and increases reliability because solutions don’t have to be developed from scratch.”
He said the first non-technical way to prevent plagiarism is to talk to candidates about their expectations. “What counts as plagiarism and what counts as efficient use of existing code?” he said. “Find that out and share it at the beginning of your hiring process.”
Once you set expectations, the best way to prevent plagiarism is with a technical scoring solution: HireVue offers one such product called CodeVue, which uses Measure of Software Similarity Scoring (MOSS) to flag likely plagiarism.
“Combined with a clear timeline of a candidate’s activities during the assessment, this helps paint a more complete picture,” he said. “This timeline shows when code was injected into the solution and allows the human evaluator to make a judgment as to whether this is as expected or possibly plagiarism of someone else’s work.”
Finally, to avoid plagiarism and achieve the best attitude, Simmons recommends that in all assessments, the assessor always asks the candidate to explain their solution and how they achieved it: “You can also have a discussion of the answers in later interviews of the candidate and delve deeper into their project portfolio.”
Another way to spot plagiarized code is to arm your hiring teams with a basic understanding of plagiarism patterns. In general, this pattern usually looks like this:
- The candidate initially does nothing (inactive; reads the challenge details).
- Browser focus disappears for a period of time (looking for an answer).
- The candidate inserts a large amount of code.
- The candidate passes the tests quickly without editing the code.
“Unfortunately, with the ever-increasing demand for tech skills, there will be more opportunities to cheat for people who are willing to use their desperation to hire,” Simmons said.
Elli Ferguson, a database administrator at a major bank with more than two decades of programming experience, also noted that there are limited ways to write any given line of code. “I’ve seen hiring managers try to ask for an overly specific coding example to limit the scope and size of the work,” she said. “But if you make it too specific, then there’s only one way to write it. How can someone not write it like everyone else has written it?”
She added another problematic trend among hiring managers: plagiarizing the questions they ask developers: “They go and take their questions from a stock site, but they expect a definite answer, but they have to have an answer that the question corresponds to which they have plagiarized themselves.”
Ferguson said another way to spot plagiarized code is to look at the comments, which aren’t executable parts of the code and have their own characteristics.
“You can tell from my comments by the code, and I can tell someone else by the lines of code, especially if they’ve commented on it,” she said. “So some hiring managers may be missing the key to determining whether or not this code is plagiarism.”