Programming Lessons from Online Screening Software
Some time ago, I applied for a position at a major university. As is typical, part of the online application was a questionnaire. One question turned out to be a minefield. On the surface, the question was simple: Do you have a Bachelor of Science in Computer Science? A Bachelor’s in Computer Science was listed as a requirement in the job description, but like many of us I came to programming via an indirect route. I know several individuals that have degrees in math, physics or chemistry and have years of experience in programming. I have a Ph.D. in Physical Chemistry, which in some ways is the intersection of math, physics and chemistry. I don’t have a Bachelor’s in Computer Science. The purpose of these online screening questions is to eliminate those who don’t meet the position requirements, and thus allow employers to focus their efforts on the applicants who do. This is a good way to make use of limited resources. But as in most things, to be effective the details have to be implemented in order to achieve the goal. As programmers we need to anticipate all possible scenarios and ensure that edge cases are handled. We need to think carefully about every possible input and ensure that our code will at the very least fail gracefully for any input. I’d like to think that our employers do the same. When they write position descriptions, they consider the applicant edge cases and have requirements that reflect what is really needed for the role. In my case, even though the job description required a bachelor’s in Computer Science, I think that a Ph.D. in Physical Chemistry would meet with the hiring manager’s approval. My options were either to lie and say I had the necessary undergraduate degree so I could pass the online screening, or be honest -- and be rejected -- before a live person even reviewed my application. I answered the question honestly and was passed over by the screening software. To add further insult, the system said that I would be prevented from applying again and changing any answers. The person who defined that screening software didn’t consider the edge cases. A few words added to the question would have allowed me to answer affirmatively. The question could have been phrased, “Do you have a Bachelor of Science in Computer Science or a related advanced degree?” This is probably what the hiring manager intended, but they didn’t give the question enough thought.