Wednesday, June 12, 2013

The Code That Needs To Be Written

I have many good reasons for not wanting to be a manager, but they all boil down to this: I enjoy writing code.

I recently read a blog post about not writing code. If you haven't read it, I encourage you to do so. It's insightful and right on all counts. It's also biased, as you can see from the following quote:
My job isn't to write code. It never was. It has always been to make people's lives better and more productive.

Years and years of experience have taught me to avoid writing code when I can and write as little of it as possible. Every line of code you write has its cost. Some of that cost is the time it took you to write it. Some of it is the time it took you and, hopefully, at least one more person to test it. And then there's the time it will take you or someone else to maintain it. All in all, writing code is not something to dive into without careful thought.

As a coder, every line of code you don't write spares you and your team time. The question is, how do you spend that "extra" time? You could deliver the product earlier! Just kidding, it's more likely you'll spend that time writing other, more important code.

All joking aside, the above is a very serious, important point: don't avoid the code for the sake of avoiding code. Write the code that needs to be written. And there's always some code that needs to be written. While it's theoretically possible to build a complete, non-trivial software solution without writing a single line of code, I've yet to see that actually happen. At the end of the day, when all the management decisions have been made, someone will probably have to write some code

There are many ways of making people's lives better and more productive. Writing code might not be my business, but it is my calling.

Thursday, March 21, 2013

Off With Their Heads: The PyCon Incident and Our Society

Fair warning: If you've come here looking for a quick validation of your arguments for or against Adria Richards, you can go on elsewhere. I'm not interested in "winning a debate" here. Also, I'm a white male, so if you think that makes me unfit to have any opinion on this topic, I also invite you to move on. Still here? Good, let's have a civilized conversation.

If you're part of the software development industry and have looked at the social media over the past two days, you'll have heard of Adria Richards and what happened at PyCon. Just in case you haven't, though, here's the short version: two guys working for some of the sponsors were sitting within the earshot of Adria and making crass jokes involving "forking the repos" and "big dongles". I invite you to read Adria's blog post about it before going on.

Right off the bat, let me tell you that I'm not writing this post to condemn either these guys or Adria. Like I implied at the top, I don't see things black and white here and I think that too many people currently participating in the conversation -- including Adria -- are looking at this as a battle to win. This is something that bothers me a lot and I think something needs to be done about it. Before we get to that part, though, we need to discuss the incident a bit.

What Happened?

The first I heard of this incident was this very morning, when I looked at Hacker News front page and noticed that there was a story that had over 900 points and more than 800 comments. It was a link to a Pastebin text that paints what turned out to be a rather one-sided picture. My first reaction was outrage: just one paragraph into the text, my imagination conjured a vivid scene of two guys talking in a hallway and someone sneaking up on them to take a photo. I instantly developed a strong dislike for Adria and had to fight that dislike all the time while I was looking for more information. There's still a part of me that wants to hate Adria and I say that to illustrate the importance of not acting out on your first impression.

Here's the thing you need to keep as first and foremost in your mind whenever you stumble upon a situation like this: you don't know enough. I don't know what the words of the joke were. I don't know if their joke had anything to do with what was being discussed on stage or not. I don't know if the guy that got fired had a stellar record within his company or was considered problematic. Those are just some examples of things the vast majority of us don't know even now.

So let's start by sticking to what we do know:
  • If you're at a convention, you represent your company and your actions can reflect on it.
  • If you're sitting together with a bunch of people arranged in rows of seats, your expectation of privacy drops rapidly.
  • It is not acceptable to ruin someone else's experience for them with your conversation. It's like talking in a movie theater.
All in all, it was definitely not okay for the guys in question to do what they did and neither Adria nor anyone in her position should be expected to tolerate it. For the record, I also agree that just talking to the guys directly would most likely been ineffective. I've seen people deflect the complaint too often to keep believing that this approach works.

That said, things turned ugly on more than one level and this is what I want to discuss here.

Off With Their Heads!

If you look at Adria's Twitter stream and at some of the blog posts around, you'll notice something interesting: people have taken sides and are arguing against the other side. It's like we've dug two huge trenches and people in each are now taking potshots at the other trench.

Let's take a step back and look at the outcome of the incident, without foaming at the mouth. One good thing is that the PyCon Code of Conduct got upheld and it's been made clear once again that those aren't just words. Another good thing is that unacceptable behavior, got punished.

On the other hand, one undeniably bad thing that happened is that a person lost a job. I say "a person", because it should not matter whether it was a man or a woman or what their skin color is. I agree wholeheartedly with Avdi Grimm when he says:
We need space between "you're fine" and "you're fired".
Did the guy from PyCon deserve to be fired for his jokes? It depends on a number of factors: whether his joke was downright sexist or just immature, whether he was fired just for that or he had other problems at work, and so on. If we assume -- as most people seem to -- that his jokes were merely immature and that he was fired only for that, then I would argue that such a drastic disciplinary measure was out of proportion.

Another bad thing that happened is that a huge controversy has been made out of this and the rift between men and women in tech -- a ridiculous rift that shouldn't exist in the first place -- has likely been made wider.

Nearly everyone is out for blood. Some people are viciously reveling in the fact that one of the guys lost his job, while others are furiously demanding an apology from Adria and SendGrid.

It's like we fell down the rabbit hole and everyone is either the Queen of Hearts, screaming "off with their heads", or a part of her army of card soldiers.

It's too easy for things to spiral out of control and out of proportion and I find it worrying that, in our society, you can cause a social media avalanche with one tweet and set loose a mob on someone. Regardless of whether you feel righteous about it, you should step back and consider all the possible consequences before committing to an extreme action.

Punishment, Fear and Empathy

Trigger Warning: this section makes references to a high-profile rape case, so you might want to skip to the notice that says "End Trigger Warning".

Events at PyCon are really just a reflection of our society's attitude in general. One recent example that illustrates this attitude is the Steubenville rape case. In case you're not familiar with it, go Google it, because I'm not going to describe any details here. What I do want to focus on was the way certain media comments were handled.

CNN reporter Poppy Harlow made the following comment about the case:
It was incredibly emotional, incredibly difficult even for an outsider like me to watch what happened as these two young men that had such promising futures -- star football players, very good students -- we literally watched as, they believe, their life fell apart.
The public reaction was one of outrage. Again, my first reaction was similar. However, I later stumbled upon an honest and humble questioning of this reaction by a writer I admire greatly and that made me stop and try to think more critically.

There is no question whatsoever that these two youths deserve their punishment. I believe there's no defense or justification of their acts. That doesn't mean that the situation isn't tragic, not only for the rape victim, but also for them. These are two people that could have had a much better future, if only we, as a society, could have detected early the flaws in their upbringing and corrected them. It really is tragic to see all three lives damaged so profoundly. That's why we call certain things tragedies: the net outcome is negative.

Yet the society at large seems to value only the punishment and no one is allowed a modicum of human compassion and empathy for the bigger picture.

End Trigger Warning

The problem with the PyCon incident and with our society in general is that we manifest disproportional care about punishments. It's certainly necessary to punish inappropriate behavior, but is it enough?

As a father of a six year old kid, I can emphatically claim that it isn't. Believe me, it's a mistake I made earlier and the result was that my son was afraid of me. When he said so, my heart nearly broke. I've been careful ever since not to repeat the same mistake.

Another thing I had to learn was that not every offense deserves the same punishment. If your kid peed his pants because he didn't want to pause the damn video game, it's not the same thing as throwing a temper tantrum because you told him he can't play before he does his homework.

You cannot solve a behavioral problem by simply punishing the bad behavior and stopping there. You need to look at the bigger picture and you need empathy. Fear is a poor problem-solving tool.

I applaud Adria Richards for not tolerating unacceptable behavior and standing up to it, instead. I also disagree with her methods and believe there were better ways of dealing with things.

Most of all, I strongly feel that, instead of glorifying the outcome of the PyCon incident, we should focus and keep looking for ways to change our culture, so that the history doesn't repeat itself. 

UPDATE #1 (2013-03-21, 15:02 CLST): Continuing the trend of punishment-oriented overreaction, it appears that SendGrid has decided to fire Adria Richards. I am still hoping that they were simply hacked and that this is false information spread by the misogynist mob of script kiddies, but that hope is fading fast. I've never been more depressed about people illustrating my point for me.

UPDATE #2 (2013-03-21, 19:29 CLST): SendGrid has just posted an official explanation of their decision. While I still disagree with two people losing their jobs over this whole situation, I wholeheartedly agree with SendGrid's statement that Adria's "actions have strongly divided the same community she was supposed to unite".

Sunday, March 17, 2013

Mrs. Mayer's Major Misstep

I can't help feeling that a lot of us have had some rather wild expectations from the 21st century. We watched "Back to the Future" in our teenage years and fantasized about flying garbage-powered cars. We read Asimov and fantasized about having robots throw out our trash while we colonize other planets. We watched Star Trek and the idea of a post-scarcity society filled us with hopes and dreams.

The reality has yet to catch up with science fiction, but we did get to see quite a few technological advances that were nothing short of amazing. Unfortunately, it seems we expected to see the society change for the better at an equal pace as technology and that's why we keep getting disappointed on a regular basis.

Take telecommuting, for example. The very idea that you can be in a large team doing a complicated job and contribute your part from home would have been considered fantastic when I was a kid. Indeed, it was a fantasy back then: Asimov's novel "The Naked Sun" describes a society where almost every social interaction is done via holographic telepresence. Since then, the availability of telecommuting as an option has improved many lives and quite often resulted in a net gain for everyone involved.

Then came Marissa Mayer's decision to ban telecommuting at Yahoo. Unsurprisingly, the initial reactions across our virtual global world were largely those of outraged criticism. A furious debate sprung up between those who condemn her move as oppressive and those who see in it a logical necessity for Yahoo as a company to catch up with the competition. More than two weeks later, the discussion has slowed down fractionally, but it's far from stopping, as new articles and posts keep popping up all over.

Although much has been written about benefits and drawbacks of working from home and about whether Marissa's strategy is good or bad for Yahoo, that's not really the crux of this debate. Much like the assassination of the Archduke Franz Ferdinand was just a pretext for World War I, but not the real reason for it, the outrage about Mrs. Mayer's decision stems from its potential effects on the society at large.

It's amazing how many people still get this wrong. For example, Rebecca Greenfield of The Atlantic Wire writes that we should chill out, because Marissa Mayer's memo is not about us:
But when Mayer declares an end to working from home, it does not in fact put an end to working from home elsewhere. Which is a relief because, if we've learned anything, some people really don't want to work in an office all the time.
It sounds reasonable on the face of it, but it's either downright disingenuous or just misguided optimism, depending on how generous you feel when you read it.

If you really think Marissa Mayer's decision is only about Yahoo, then you're living a sheltered life. Regardless of its position in the Silicon Valley's pecking order, Yahoo is still a large, prominent company and, as such, it can and does influence the society at large. Right off the bat, there were places where Mayer's move was taken as a sign that working from home should be banned.

Take, for example, this article from The Economic Times. Here's a choice quote:
"Flexitime is a utopian concept that is not going to help anyone," says K Ramkumar, Executive Director, ICICI Bank. "Whatever is not natural to the market and commerce, will not work. Customer is the king."
You might doubt the quality of the source, but it does not matter whether Mr. Ramkumar really said that or not. What matters is that there are numerous companies and managers who think like that and who must have been elated by the implicit validation they received from Mrs. Mayer's decision.

Here in Chile, the prevalent management style has been given a colorful name: "The Ranch Owner". What that means, in short, is that a lot of managers here expect their commands to be taken as divine law. For them, the topic of employees' happiness can be summed up with "I pay you to work. Whether you're happy or not is your problem."

What I'm driving at is that high-profile decisions in a company like Yahoo have an effect on much more than the company itself. The ripple effects of those decisions can affect a large part of the world.

To mitigate the impact of her decision, all Marissa Mayer had to do was make her telecommuting policy a bit more moderate: allow working from home on a case-to-case basis and, perhaps, choose a better wording that acknowledges telecommuting as an option that can enhance the quality of people's lives in general.

Instead, she's being defended and even praised for making a tough, controversial choice for the good of her company. The effects of her decision are being swept under the carpet of "fostering innovation", by people like Rebecca Cooper in her article for Washington Business Journal:
If she thinks bringing all her workers together in one place to innovate is the way to rebuild the brand, then I think we should let her try. I'm all for companies trusting their employees and giving them the ability to perform anytime and anywhere they can flourish. But I also think we shouldn't react so quickly to condemn this CEO for trying some old-fashioned togetherness to reboot Yahoo.
Even more chilling are the stories that praise her for "basing her decision on data". There's nothing wrong with consulting VPN logs and finding out that a lot of people are abusing their telecommuting privileges. Getting from there to outright banning telecommuting with no case-to-case considerations has nothing to do with data. Promoting the idea that you can make any decision infallible given enough data is downright irresponsible, especially when supported by flawed arguments such as this one:
Once, a Google designer quit the company in a huff because he was tired of how Mayer, in charge of how homepage looked, would choose design elements like color or font not based on taste, but raw data.

For every design variable, she looked at how users interacted with Google with one design — and then the other.

If the data showed users were using faster one way instead of the other, that particular design choice won out.

It's hard to argue that Mayer's process didn't work for Google. It was not the first search engine on the market, but it's just about the only one anybody uses now.
Conflating Google's success as a search engine with Mayer's decision making process about Google home page design is naive, but it takes a whole new level of self-delusion to use that as an argument to blow Mayer's analysis of VPN logs out of proportion and defend her decision as "data-driven".

Big companies nowadays parade their social responsibility initiatives and milk them for all they're worth. Yet when it comes to having a care about how your words might influence the lives of workers across the planet, many people seem to think it's not such a big deal.

After all, why should we care about the power of words? "Sticks and stones will break my bones, but words will never harm me." If that's what you subscribe to, then maybe you should reconsider.

Monday, March 4, 2013

The Great Programming Debate

Over the last few years, I've noticed a pattern that keeps repeating in Internet forums and blogs:
  1. Someone asserts that programming is or should be for everybody, usually misrepresenting it as a glamorous and easy job full of benefits and no drawbacks, like this.
  2. Someone else posts an emphatic counterpoint, like this.
  3. A third person tries to point out that a certain degree of "programming literacy" should be required and goes on to point out that everyone knows (or should know) how to read and write, like this.
  4. The discussion devolves into polite bickering, because at this point most people are usually past their threshold for completely unbiased discussion and are invested in their own point of view.
I happen to have my own point of view, but it usually gets lost in the noise, since I invariably try to contribute it in a discussion during step 4. Looking back, I can see I've weighed in on both sides of the debate and I think it might be interesting to try to share a more balanced view and, perhaps, bring the people from the two extremes a bit closer.

Why Programming Should Be For Everybody

As I pointed out recently, in a similar discussion, I got into computers when I was 7 years old. Back then, "getting into computers", at least in my country, meant getting something like ZX Spectrum or Commodore and either playing games or learning how to code. Games were in English and a lot uglier than their arcade counterparts, so it should come as no surprise that most kids who had computers went on to learn how to make them "do tricks". That's the real allure of programming for a kid: you're typing in seemingly incomprehensible stuff and the machine does something. It's magic!

Not everyone had a computer, mainly because we were living in Communist Yugoslavia and it was not easy to import one, but nobody told us that computers are "not for everyone" and that only trained professionals can program. It was a slightly weird hobby to have, but it grew into some of the best years of my life: I grew up believing that the world would be transformed and that I would be part of it. Some days I felt like a combination of a wizard, secret agent and super-hero; other times I felt like a rebel straight out of Mentor's Hacker Manifesto.

At no point did I feel like a kid who's playing at being adult and should leave it to professionals.

You might think I'm attacking a straw man here, but this sort of elitism seems to be increasingly more prominent in discussions nowadays:
Sorry, but those things are technology and should be worked on by technologists because there's literally no on else who can work on them
That choice quote came from a discussion on Hacker News and it's the kind of extreme point of view that provokes people to react with very emphatic counterpoints.

Why Programming Isn't For Everybody

The problem with emphatic counterpoints is that they tend to go to the opposite, equally unhealthy extreme. If you've watched "What Most Schools Don't Teach", then you know that the intentions and goals behind the video are laudable. You probably also noticed that programming has been grossly misrepresented.

If you didn't know better, if you were the stereotypical impressionable youth, you might have walked away from that video believing that programming is easy if you know addition, subtraction and multiplication tables and that working as a programmer is a lot of fun, where you get free gourmet food, play video games and jam with a band inside an awesome office. You might also get an impression that you would be programming flying robots, self-driving cars and medical equipment.

As much as I agree that programming should be taught in schools -- and I'll get back to that later -- the fact is that programming is not easy and good programming is damn hard. To make things harder, good programming is a lot more important today, precisely because computers are so widespread. Bad code does have the power to ruin lives. I'm not talking about medical equipment or space shuttle systems here: a bad credit report won't kill you, but it might ruin your life for years; a badly programmed system might incorrectly match you as a terrorist.

When conveying a positive message in service of a good cause, you must take care not to go to extremes. Nobody tells kids that being a doctor is as easy as putting on a stethoscope and learning which side of the body holds the heart and which the liver. By simultaneously downplaying the difficulties of programming too much and painting a glamorous picture of it, you're setting kids up for disappointment:
We’ve all been raised on television to believe that one day we’d all be millionaires, and movie gods, and rock stars. But we won’t. And we’re slowly learning that fact. And we’re very, very pissed off.
-- Chuck Palahniuk, "Fight Club"

Incidentally, you're also bruising the egos of everyone who has worked their ass off for more than ten years trying to get closer to being a master programmer. While that's the most forgivable mistake, it still merits being mentioned, because you're alienating the very people you need the most.

Shades of Grey

In the end, it all boils down to recognizing that things aren't black and white. Putting the programming on a pedestal, unreachable by all but a select few, is as wrong as representing it as a glamorous job where anyone can be a rock star if they only try.

I agree that all schools should teach a certain level of programming, just as they teach literacy and a certain level of mathematics. In our society, computers are everywhere and everyone should be brought up to understand them and be reasonably proficient at manipulating them.

On the other hand, even though everyone is taught reading and writing, not everyone ends up being a writer. Even those who do are not necessarily successful. Likewise:
  • Knowing basic biology does not make you a doctor.
  • Learning how to play an instrument well enough to play it professionally requires constant practice and even then you might never get to be famous and hugely successful.
  • Getting into NBA requires more than being able to run the length of the basketball court.
  • Being able to prepare scrambled eggs or even come up with a recipe or two of your own doesn't make you Jamie Oliver.
Are these analogies exaggerated? Yes, but so are some messages we offer about programming. Let's face it, not everyone will have the aptitude to take make programming more than a hobby.

The important thing is that people of all ages need to be free to try it and we need to welcome them. However, it's equally important to make sure it's okay for them to fail. Our industry needs all the good hands it can get, but it's hard enough as it is without adding tons of bad, unhappy programmers who were promised the world and tricked into believing they could get it by wishing upon a star.

Thursday, February 21, 2013

Another Step in The Longest Journey

Over the last two weeks, I've been tweeting quite often about a certain project on Kickstarter. It's a game called "Dreamfall Chapters: The Longest Journey" and, if it doesn't ring a bell at all, I want to tell you why I'm so excited about it.

I've always loved video games, for the same reason I love -- and practically devour -- books: they tell me magical stories, take me to incredible places and allow me to do impossible things. The first game I ever played was "Chequered Flag" on ZX Spectrum 48 that my parents gave me when I was 7 years old. Since then, I've watched the history of video games unfold and it has been a fascinating journey.

Right now, the gaming industry is in a state that I find pretty disappointing: there's a bunch of big players that are mostly staying within the bounds of their franchises and churning out sequels following their tried, true and increasingly tired formulas. My prime example is Ubisoft. They won my heart with "Prince of Persia: The Sands of Time" and "Assassin's Creed". Then they broke it with "Assassin's Creed III". To be precise, they didn't break it all at once: they chipped away at it until it broke. It was a blow to me when they abandoned the beautiful "Prince of Persia" reboot in order to squeeze out "The Forgotten Sands" like another bowel movement, but what really eroded my respect for them was the way they kept stretching Desmond's story in the "Assassin's Creed" franchise until it felt like I stepped in a piece of bubblegum. Another example is Bethesda, although this one is much more positive, because they haven't (yet) pissed all over their players. The worst thing they've done is the progressive dumbing-down of "The Elder Scrolls".

Truly different games are rare and precious and if I had to single out a few, I would certainly start with "Shadow of the Colossus" and "Heavy Rain". Both throw away most of the conventions held dear by other games and come up with something unique. The former tells a pretty minimalistic story in a profoundly haunting way that leaves you in a pensive mood. The latter combines the best of reading books and playing video games: it's incredibly rich and immersive like a good book, but interactive and with a flexible story like a good game.

On the bright side, extreme innovation is not required to get a great game. Sometimes a brilliant execution of old gaming formulas will do the trick, such as Rockstar's "Red Dead Redemption" and "L.A. Noire". What makes these games exceptional is the way they explore profound themes through rich stories wrapped in engrossing gameplay.

This is why I'm so enthusiastic about "Dreamfall Chapters". For those of you who don't know the history behind it, it's the third and final part in the saga that started in 1999 with "The Longest Journey", a point-and-click adventure. The second part came out a whopping seven years later in the form of a third-person 3D adventure called "Dreamfall". Both games feature not only exquisitely rich and memorable world-building, but also excellent storytelling, with memorable characters and thought-provoking motifs, and beautiful graphics. And now, in 2013, Ragnar Tørnquist and his team at Red Thread Games are working on the final leg of a truly epic journey, wholly deserving of being called the longest: "Dreamfall Chapters".

Now, let's step back a bit here and focus on one important fact: how much passion, patience and balls does it take to stick to a dream over the course of 14 years? For that alone, I would have been inclined to back "Dreamfall Chapters", even if I hadn't played or heard of its prequels.

That, however, is not the primary reason why I'm trying to do all I can to promote "Dreamfall Chapters". The real reason is because I know Ragnar and his team are going to produce another masterpiece that will not only bring enjoyment to countless players across the world, but will also bring a breath of fresh air to the gaming industry.

Here's why I trust the Red Thread Games team: I first played "Dreamfall", without even having heard of "The Longest Journey". I played the whole game and enjoyed it immensely, without having any idea that it's a sequel. I never felt lost. There was never a "something doesn't end up" moment or "am I missing something here" feeling. And yet, when I discovered "The Longest Journey" and played it, not only it fit perfectly, but it transformed "Dreamfall" for me. So far, I've only had one other experience like that: when reading Discworld books by Sir Terry Pratchett. If you've read Pratchett's work, then you know how high a praise that is.

By all means, don't take me wrong: I don't claim these two games were perfect. "The Longest Journey", for example, had one of those "dude, wtf?" puzzles that old-style adventure games were so criticized for; just look up "the longest journey duck puzzle" on Google. "Dreamfall" had a totally superfluous combat system that makes a game of "Pong" feel like "Ninja Gaiden" in comparison. Yet, despite these imperfections, these games were -- and remain -- some of the most enjoyable adventure games out there.

So far I've covered why I trust the team, but I haven't really given much details about why I believe this to be so important. So it's another adventure game, albeit an excellent one, so what?

I'm very passionate about games. Apart from enjoying them as a player, I'm also one of those few adult programmers who hasn't outgrown the dream of making them. For me, it's important not only what games are made, but who makes them and how.

Ragnar Tørnquist left Funcom and founded Red Thread Games in order to make "Dreamfall Chapters". Don't get me wrong, I have nothing against Funcom at all, but the fact remains that a well-known game designer and one of the iconic figures of game development industry left an established, stable studio and went indie to make this game. And it's not any game, it's the long-anticipated finale to a saga that has, despite any imperfections we might find in it, earned its place in the history of video games.

I want to see it succeed and I want it to be a huge success. Apart from being a work of art, it will also challenge the status quo by showing that it really is possible to make a masterpiece without clinging to the old publisher-developer structure. And, as a bonus, it will contribute to Linux and Mac gaming scene and bring back some of the glory to PC gaming, wresting a bit of power from the tightly controlled walled gardens of the console world. All in all, it should be an important step in a journey even longer than "The Longest Journey": the journey through the history of gaming.

If you're still with me after all these words, then I hope I've convinced you to at least go to the Kickstarter page for "Dreamfall Chapters" and look at what you find there. And after that, if you feel moved to back the project, then so much the better.

Saturday, November 17, 2012

Fix my car!

Late Friday afternoon stretched slowly towards the evening. The A/C inside Mike’s auto repair workshop had been fighting a losing battle with the midsummer sun all day. To anyone coming in, the noise and the bustle were disorienting, and the smell of grease, oil and exhaust fumes was nearly overpowering. To Mike himself, it sounded like a hum of a busy day and smelled like the challenge of honest work.

Elbow deep into the hood of a ‘99 Jetta, whistling absentmindedly (and off key), Mike was concentrating on a tricky bit of engine repair, when a tap on his shoulder startled him.

“Excuse me,” came a tentative, almost plaintive voice from behind.

“Be with you in a jiffy,” said Mike, as he began to extricate himself. In just a few seconds, he was free and wiping his hands and arms on a rag as he studied the neatly dressed, bespectacled young man in front of him. “Hi, I’m Mike. How can I help you?”

“Yeah, hi. My girlfriend’s car is broken and I need someone to fix it.”

“Well, then you’ve certainly come to the right place! Bring it in and let’s have a look at it.”

“Uhm, I can’t. It’s not here. It’s parked in my driveway.”

“Ohh-kay.” It took Mike all the self-control he learned in more than a decade of running his shop to keep his face politely impassive. ”What make and model is it?”

“It’s... um, I’m not sure. It’s green.”

“Green. Right.” Silently counting to ten in the back of his mind, Mike tried a different tack. “Right. And what’s wrong with it?”

“I don’t know,” the young man in front of him huffed exasperatedly, “I was hoping you could tell me.”

“What I’m asking,” said Mike, surprised to find he’s not gritting his teeth, “is why you say the car is broken? What happened?”

“Oh. That. Sorry. It doesn’t move.”

“Uh huh... Anything, um, more specific?”

“Nope. Don’t know the details.”

“Well then,” shrugged Mike apologetically. “I’m afraid there’s not much I can do to help.”

“Okay, fine. Hang on a second.” With that, the young man whipped out a cell phone and punched a number into it. “Hi, honey. Yeah, I’m at the auto repair shop. Look, I need to know what’s wrong with the car... Yeah, I know, that’s what I said too, but they need more details to do their job... I know, right? … Uh huh. Uh huh... Okay, great. Love you. Buh-bye!”

“Right, so, the problem is that it doesn’t move when she puts it in the gear. She steps on the pedal and the car just sits there and roars. The wheels won’t move.”

“Okay,” said Mike, “now we’re getting somewhere. It sounds like a transmission problem.”

“Transmission? What do you mean? What’s it transmitting and to whom?”

“No, no, it’s the mechanism in your car that allows the wheels to move when you put it into gear. That mechanism seems to be the problem.”

“Right, that’s what I just told you. Now, when will you fix it and how much will it cost?”

“Well, when you bring it in, I can look into it and diagnose the exact problem.”

“Didn’t you just say that this transmission thingamajig is the problem?”

“Yes, but the transmission mechanism is a complex system with lots of components. I need to look at it to find out exactly what is broken and how to fix it.”

A suspicious look settled on the young man’s face. “I don’t know,” he said, arms crossed, “It seems to me like you should be able to tell me how to replace this transmission system.”

Mike tried to find something to reply to that and failed. He opened his mouth a few times, but before he could come up with a way to deal with this Kafkaesque situation, the young man threw his hands up in the air and said, “Fine! Alright. I’ll bring it in tomorrow. Anything else?”

“Not that I can think of,” said Mike cautiously.

“Good. See you tomorrow, then.”

“Unless I’m having a nightmare,” murmured Mike into his beard, as he watched the young man walk out in a huff. Slowly shaking his head, not sure whether what just happened had been real, Mike turned back to the Jetta. “Thank heavens my customers usually aren’t like that...”

So what do you think of Mike’s story? Did it sound absurd, almost surreal? Granted, there are all kinds of people out there, so it’s not impossible to stumble into someone like Mike’s strange client, but it sure is uncommon.

What if I told you the young man in the story worked in a car factory? Wouldn’t that make the story outlandish?

And yet that’s precisely what happens quite often in software development. Many smart people have already spent lots and lots of words on how to report bugs, how to ask for help, how to follow up and how to ask questions in general. I don’t have much to add to all that, but the next time you complain that some piece of software isn’t working without giving any relevant details, remember this story. Doubly so if you actually work in something related to software development.

Friday, March 23, 2012

My Playthrough On Your Fridge Door

Two days ago, I decided to take a brief break at work. Since I was still gloomy from having finished Mass Effect 3 that weekend, I went surfing the Web to see what's new on that front and stumbled upon a couple of articles that inspired me to write a new post on my blog. Only two days have passed since, but it seems much longer.

To be honest, I didn't expect to succeed at generating any kind of discussion about this. Most people, perhaps predictably, responded with a knee-jerk reaction along the lines of "Yes, you're just audience, so shut up!" Finding that there were people who agreed with me was quite gratifying. Finding that there were people who disagreed and wanted to discuss it, however, took me completely -- and pleasantly -- by surprise.

I don't blog much. To quote Snoopy, "there's no sense in doing a lot of barking if you don't really have anything to say" and I usually don't have much to say that other people haven't already said more eloquently or elegantly. To find myself blogging for the second time in one week is a new experience. I'd like to thank all the people who took their time to comment and to converse with me in various forums: thanks for inspiring me to write more.

Enough of meta-blogging. Let's get to the meat of the discussion: over the past two days, I've seen a few valid and interesting counter-arguments to my claim that players aren't merely an audience any more. I'd like to address those arguments here. (By the way, if you haven't finished Mass Effect 3 and don't want spoilers, be careful when following links from here.)

Let's start with the one that's easiest to refute and take it from there.

Playing Games is Not Art 

No, it's not. I agree completely. Maybe some day, playing certain kinds of games will become an art form, but right now, playing games is definitely not art.

Thing is, I never claimed it was. Don't get me wrong, I would love to see the day when there are games that allow players to use them as a medium for their artistic expression. But for now, what I claim is that playing games -- at least some games -- is an act of creativity. I also claim that players, by playing the game, complete the creative process the game developers initiated.

Although not as strong as "playing games is art", this claim still sounds weird. The reasoning that rejects this claim tends to fall into two categories. The first centers on:

Finite, Limited Universe of Expression

Arguments in this category reject players' participation in the creative process because said players are restricted to a finite and rather limited set of options, rigidly established in computer code by game developers. As Michael Rohde neatly put it:
[...] you are playing code, you are not helping write the story line, you do not have the ability to write unique aspects of the game. You are navigating a trail with finite endings.
The problem with this argument is that it's ultimately quantitative in nature. Just because English language has a finite number of ways of putting its words together in non-gibberish ways, doesn't meant that writing a sonnet -- a rigidly defined and limited form in itself -- is not a creative act. We have Shakespeare to back that one up.

To put it differently, if you're given a small set of Lego pieces, you can still put them together in a unique, creative way. In case of Mass Effect games, the sheer combinatory explosion of possible choices to take in the game is at least comparable to a box of Legos. Even though those choices converge on an extremely small set of final outcomes, the act of making those choices deliberately is no less creative.

That's the second problem with this argument: by focusing only on the creative aspect of the game's fixed assets, such as the story or the cinematics, it misses the fact that these assets themselves serve as a vehicle for players' creative expression. What each player in Mass Effect 3 creates is the character of Shepard and his or her arc. Aleksander Adamkiewicz expressed this nicely in his comment on a related Gamasutra article:
[...] I always thought Shepard was an empty vessel for the player to fill with their interpretation. [...] I never found that Shep undergoes any character development in the narrative of the game, yes he underwent a development -in my head- but not in the game itself.
That is precisely the allure of Mass Effect series, the characteristic that sets it apart from so many other adventures and RPGs. I posit that almost all players go through this "Shepard-development in their heads". Some do it more consciously, more deliberately than others, but everyone who's playing the game for more than "shooting stuff" does it.

Still, even this might not be enough to accept the players as creative agents. There's still one more category of counter-arguments to tackle:

The Question of Intent

My son's fifth birthday was in February, when most of his friends are out of town on vacation, so we threw a party for them last Saturday. This year, the main attraction was a magician. At one point, he invited my son on stage to "grant him magical powers", so he can "assist" the magician.

Asking for a volunteer in the audience and inviting him or her to participate is a standard part of a good magician's repertoire. However, this act of participation does not turn the audience member into anything more than audience. Their participation does not promote them to the status of the magician.

Why, then, do I argue that the act of playing a videogame can promote a player into a creator?

The crucial difference is in the intent. The magician doesn't intend to truly empower you, while a good game designer strives to do precisely that. Game developers have been acknowledging the players' desire for creative expression for years. One small example is Burnout Revenge, a game whose Xbox 360 version turned six years this month. A notable addition in the Xbox 360 edition of Burnout Revenge is the Burnout Clips feature, which allows you to create video clips of your offline races and share them with other players.

A much more important example is Little Big Planet, along with its sequel. The sequel, in particular, is the best example of a game whose sole reason for existence is to allow players to create their own content. Its single player campaign, unlike the one from the first game, is primarily a showcase for the new game mechanics you can use in your own levels.

And let's not forget other, much older "build your own stuff" games, such as Sim City. Sid Meier took this idea and turned it into an art form, if you'll pardon my choice of words, with his Civilization games.

Okay, I'm digressing and I'm sure you get the point. Let's get back to the game that sparked this whole discussion.

Was there intent to empower in Mass Effect? I would say that if there wasn't, BioWare is the luckiest company on the Earth. That kind of repeated serendipity is difficult to believe in.

Yes, I dare say that Mass Effect was deliberately designed to empower the players to build their own Shepard character in their heads.

Is this an act of creativity? I believe it is. If you see a reason why it shouldn't be considered as such, feel free to drop me a comment.

More importantly, has this creativity been deliberately encouraged by BioWare? I don't see any room for doubt here.

Incidentally, this is precisely why so many players are so upset about the ending. Like I already said in my previous post, the ending completely invalidates the players' choices. Yes, we're all used to our choices finally converging on a small set of endings, as in the previous two installments. However, for various reasons (which I won't reveal in order to avoid spoilers) the ending(s) in Mass Effect 3 are different: players' choices, instead of converging, are simply discarded and ignored.

Does Any of This Matter At All?

People who have children are very well acquainted with one amusing fact about creativity: the vast majority of little kids completely suck at drawing. That's perfectly normal for their age, though, so we ignore that fact and we praise them for their creativity and stick their doodles on the fridge door or on our cubicle wall. It's not because they're great works of art. It's because they matter to us, because our own children drew them.

Similarly, most of players' creations in games that encourage creativity are, well, the digital equivalent of a five-year-old's "crayon art". It's up to game developers to define their stance towards our creations.

Am I wrong to believe that they should try to be like proud parents, indulgent and encouraging? Only time will tell. In the mean time, let me know what you think.