Have you ever done one? The experience left me with my dander and my hackles up, my crest fallen. The question style is very distinctive:
Your electric drill gives you a shock when you touch its handle. What should you do?
- Carry on and finish the job, holding the drill so as not to touch the metal parts
- Stop using the drill at once and report the issue to your supervisor
- Do some non-drilling work for the rest of the day and leave it to the next shift to discover the problem and fix it
- Do nothing, but tell your girlfriend about the problem at home later that evening
This question is entirely typical (and, by the way, option D is a genuine quote, a treasure swiped from a test taken some years ago). It demonstrates two key characteristics of the genre:
- The distractors are rubbish, distracting only in the sense that they initially tempt one to giggle, and latterly ferment a spirit of rebellion. After reading a few dozen of these, one dreams of inflicting some dreadful act of revenge on the whole of the H-and-S industry, by changing the words printed on every sheet of safety lavatory paper to Now eat your lunch, for example
- The correct answer is nearly always to halt everything and cede the initiative to a superior. Supine helplessness is the order of the day
A recent refinement of the exam's structure emphasises point B. These days, they open the batting with a sequence of linked questions, in which each scenario feeds into the next.
For example, when I sat my test, in Question 1 my persona Connor arrived for his first day on the job and was invited to start work without a proper site induction. By Q2, saturated by the coffee he had consumed during the compulsory-reversing-into-parking-places talk he had insisted upon, he needed to commune with nature (as he would surely have phrased it) but found the facilities somewhat below par and re-summoned the delighted foreman.
At the third question, presumably having obtained relief by means unstated, Connor was set the task of enlarging a trench... but demurred, claiming to notice that there was something in its bottom that might be asbestos, an 11kV cable or a protected species of frog. After that, he could be found refusing to dispose of a heap of oily rags by setting fire to them, or perhaps he was not putting up some plasterboard studding with a broken nail gun. I forget.
By the time he got to go home and tell his girlfriend all about it, Connor had complained to his boss five or six times and achieved, to borrow an expression on sale-or-return from our American cousins, zip. The suspicion tippy-toed in steel-toe-capped safety boots across my mind that, on the morrow, given the free choice between rehiring Lucky Connor of the Reverse Midas Touch and, say, the more tractable bloke from question 18 who cheerfully tied up the frayed safety harness with one of the oily rags, the decision just might go against our man. Of course, this would never happen in real life.
Anyway, my idea is this. Safety programming already exists, and is all about properly initialising variables, checking error returns and not tolerating compiler warnings. Kids' stuff. Health and safety programming will be its more profitable, government-mandated successor. Of course we will make our meeelions – naturally I say "we" because I know that you'll want in on this at the ground floor, and StobCo will be Kickstarting this in the next week or so – licensing training schemes, issuing identity cards and selling accessory trinkets to our captive audience. Mirrors imprinted with gloomy mottoes like
YOU ARE LOOKING
AT THE PERSON
YOUR TECHNICAL DEBT
and humourless, ugly posters forbidding the unsupervised use of regexps in the toilet cubicles. That sort of guff.
But the main thing we need to get going is a few hundred humanity-hating, intellect-insulting multiple-choice questions from which we can construct our online training course and, of course, the invigilated exam itself. This is where you come in. If everybody pulls out a digit and contrives just one example, we could be finished by yesterday lunchtime. Here's one to get you started:
While performing routine maintenance on a library, you notice that a C function in the file you are editing returns a pointer to a stack variable, which is bound to cause a crash sooner or later. How should you proceed?
- Put in a quite strongly-worded comment warning of the problem. Any manifestation of the bug becomes the fault of the caller for not reading the code properly
- Stop work on this module and refrain from checking in any changes you have already made. When the bug is eventually found, the audit trail can't attach any blame to you
- Send a tweet to the team leader warning of the problem. Introduce a deliberate compilation error and check in the module to prevent further successful builds, until the situation has been reviewed by a properly qualified person
- Recompile the module using C++ instead of C, because C++ prevents this kind of issue, being more modern
Off you go. ®