Thursday, 30 May 2013


A change of pace, for... a change (yeah, that was a bit redundant, as Jeff would say).

I'm a PC gamer. Please, let's not get started on the master race thing, OK? I'm not an obsessive gamer, although I have to agree with my wife when she says I occasionally get a little carried away. Still, I usually spend more time reading about games (and the gaming industry) than playing them.

And today I read a couple of pieces worth mentioning.

1. Dungeons & Dragons: Chronicles Of Mystara Adds New Content
What interested me was not actually the theme itself, but rather this paragraph:
Most intriguingly, Capcom promises a "House Rules" option that allows players to alter the game's basic functionality in whatever way they see fit. Want more health pick ups? How about unbreakable equipment? Simply flick a toggle and you're suddenly swimming in inexplicably healthy chunks of meat while swinging a blade made of what appears to be Wolverine's shin bones.
Let me describe the train of thought that left station as I read this:
  • I may play games for a number of reasons, as diametrically opposed as "challenging myself" and "killing time". But the elusive concept of fun is definitely involved.
  • Fun is an elusive concept because it's a matter of personal taste.
  • Ergo, if it's a matter of personal taste and you want your game to be fun to the widest possible audience, what you need is to build personalization (aka, customization) into your game.
That's what's being described in the quote. Now, notice how the paragraph begins: "Most intriguingly". I find it both amazing and amusing that we, gamers (or, to put it another way, users of gaming software), are so used to having little to no meaningful customization that when we see it, we go "How quaint, how did they ever come up with this?". When the question being asked should obviously be: "Why on Earth isn't this totally widespread?".

An example: In Witcher 2, on Chapter 1, there is an encounter with a Kayran (a kind of swamp monster). I found this combat challenging, and it took me quite some time, and innumerous attempts, until I got past it.

Each failed attempt meant reloading a saved game. Because you can't save while you're in combat, you must save before. However, immediately before the combat you have a video (a cut-scene); since you can't save during the video, you must save before the video. So, every time you reload, you get a chance to "enjoy" the video again. You don't have to watch the whole thing every time, because you can skip your way through it, fortunately.

I don't mind repeating the same encounter until I get it right, and sometimes I even repeat it after I get it right, either to try different tactics or to check if I actually did get it right, instead of just getting lucky. But, and this is the important bit - that doesn't mean I should have no alternative. And it definitely doesn't mean I should have to repeatedly skip through a video everytime I load a saved game at a particular point.

How could this be solved? Simple, empower your users. Give them an option that says "automatically skip videos after seeing them once". Then, give them another option to review any video they have already seen (they may need a detail they missed earlier). And then, give them another option that says "Check this objective as completed". Yes, if I'm sick of running around the Kayran, positioning and dodging and hitting and what-not and just want to get on with the story, allow me the option to do so. If I find that this particular encounter is not fun, give me the option to bypass it and move on. Am I cheating? Probably, but that's my problem, right?

"Most intriguingly", indeed.

2. Interviewing Software Engineers
I've always looked suspiciously at some kinds of exams. On the top of my list is the typical certification exam, with questions like this:
What is the maximum capacity of the virtual memory fluxolator system in Xpto Enterprise Server

1. 100% of your available RAM
2. 200% of your available RAM
3. 50% of your available RAM
4. None of the above
And you answer "1". But, alas, that was in Xpto Enterprise Server Now, in Xpto Enterprise Server, that was changed to 200% because in some situations it can produce better performance in a system under heavy load, etc, etc, etc.

Why don't I believe in the usefulness of exams like this? Because when I hire a certified Xpto Enterprise Server administrator, all the "certified" proves is that he passed a memorization test. Maybe it was because he's an experienced individual, or maybe it's because he memorized a large part of the documentation (not a trivial accomplishment, obviously, but it's not the main skill I'd look for in an Xpto Enterprise Server administrator). But I digress...

In the article linked above, the author (Jason Taylor) divides bad interviews into categories. One in particular struck a chord as I read; and, by what he wrote, is also his "favorite": Unrepresentative.

You know, when you get a job interview (which is a kind of exam) for, say, business application development, and suddenly you're faced with the task of solving The Mayor of Uglyville's Dilemma. And you're thinking:
  • I know how to develop software;
  • I know how to gather requirements and create specs;
  • I know it's important to understand the user's language and business concepts, because that's the "common" language I'll have to use;
  • I have a good enough grasp of the design and development process, and I usually can identify when I'm getting blocked and ask for a co-worker's assistance;
  • I know I have to consider the queries I run against the DB, looking at the DB engine's query plan, and, for those cases where I expect there could be trouble, I know I should design stress tests, to measure performance;
  • I can identify other possible sources of contention, both external (say, invoking other platforms) and internal (say, the need for synchronization on multi-threaded access), and even if I don't have experience in designing solutions, I know enough about the subject to look them up or ask for hints on the subject.
So, the question is - why am I being asked to divide squares across an axis? Why am I not being examined on what is relevant for the job description?

Are these puzzles fun? Yes, they are. I've got the book mentioned, and from time to time I'll pick a problem and try to solve it. But if I had to solve one of these problems at work, I believe I'd be spending my time (which, by the way, is being paid by someone else) much more wisely by googling up a solution, rather than trying to solve it myself.

And that's the gist of it all. This kind of questions, or the "white board coding" mentioned in the article are unrepresentative because they are not representative (duh) of the work you'll be doing on a day-to-day basis. And that much can be said for the "memorization" tests, too. If your carry out your day-to-day work in an environment where you have no access to the internet, let alone to your tools' documentation, then, as the saying goes, "you're doing it wrong". You, and/or whoever is in charge of your work.

No comments:

Post a Comment