>Real business value-creating requirements tend to resemble an arbitrary puzzle
Actually they don't. I say this with 25 years experience as an engineer and a couple patents and a long history of solving very hard problems. The hard problems are rare, the trick questions and puzzle type problems virtually never exist in business and are useless for evaluating programmers.
Programming is about a lot more than solving puzzles.
Why not simply give programmers the NYT and have them solve the crossword puzzle? That's what this is the equivalent of.
It only addresses one aspect of programming and actually a very small part.
Thinking about systems. Communicating with code that others can read, and communicating about code in a way that others understand, these are skills not addressed here. Maintenance and reading others code, also not addressed with trick questions.
I really have no problem with them making programming based games-- if the games are fun, great.
My objection is only with using this as some sort of recruiting tool. It shows a lack of understanding of what programming is, and it optimizes for exactly the kind of recruiting tactic that has effectively destroyed the software development profession during the past 20 years-- it's seeking code monkeys, not software developers.
The reason software is broken is the current model is "get a biz guy to tell code monkeys what to do, hire the fastest code monkeys and pay them as little as possible using the threat of outsourcing to indian code monkeys to keep the min line."
The ability to find a faster code monkey (as measured by their score on a coding game or hackerrank or any other arbitrary score) eliminates the messy need to have the hiring team actually understand software development enough to hire developers.
A better solution-- one that would be cheaper and more efficient -- is to hire more expensive software developers and have them lead other more junior software developers to develop software that actually solves business problems.
It's shocking how rare this is.
Straighter is enabling the problem, not trying to solve it.