Don’t be a NAMCO

August 16th, 2010 by dan

I noticed a disappointing post via Slashdot the other day; apparently Namco has decided to force MIT to remove a PacMan clone made in Scratch. At face value, that probably doesn’t sound like a big deal to you, but that’s probably because you’ve never heard of Scratch. Allow me to explain.

Scratch is the future of programming education.

I’ve been teaching kids to program using Scratch for years (through OCRI). The reason we often choose Scratch is that it was made by MIT with the express goal of introducing students to programming and programming concepts (check out the About Scratch page if you’d like to learn more). The idea is that students who have never programmed before can create real, working software applications and share them online for other students to gain inspiration and learn from.

This is very similar to how real software development works. These students pour their heart and soul into creating something they care about, and proudly share it with a community that reacts to their ideas — adding features, remixing concepts, pushing the boundaries of what can and can’t be done. This is exactly how the web works. This is how kids learn.

Of course, if you’re Namco, that’s less important than preserving the copyright of a game that is older than almost everyone that uses Scratch (myself included).

Why is a Pac-Man clone important?

Several reasons:

First and foremost, it’s something kids recognize and can relate to. The tutorials for Scratch make some pretty bland applications, so to really push them to create something incredible, it’s important to show the students something they find impressive. The go-to applications for this are game remakes like Pac-Man and Tetris. Why? Because these games are instantly recognizable, and get students hooked on the idea of Scratch. They realize that with a bit of hard work, they can make something really cool.

Second, game remakes help the creative process. When you start with a blank slate, the idea of making something fun or interesting can be very daunting. Where do you even begin? For students, this can lead to frustration. Encouraging them to draw from other things they like helps narrow their focus without robbing them of choice. They can make something that they want to make, focus on solving the programming problems for that specific game, and make whatever creative changes they see fit along the way.

Finally, polished games are extremely difficult to write in Scratch (even something as basic as Pac-Man). These examples always contain interesting techniques and approaches to problem solving that show some really neat aspects of Scratch that I’ve never seen done any other way.

What does NAMCO get out of this?

You tell me. Do they really think people were lining up to play a Scratch version of Pac-Man? Are any of these (likely non-existent) people going to go out and buy a copy of Pac-Man from Namco now that the Scratch version has been removed? Other than ruining something that means almost-nothing to them and a whole hell of a lot to people like me, what exactly does Namco expect to accomplish?

What if they took the opposite approach. What if they decided that, copyright be damned, it’s awesome that 30 years later people still find the original Pac-Man fun. What if instead of being appalled, they were honoured that someone chose to learn to program by reproducing one of their games. Can you imagine a world where rights holders and every-day people with no intention of ripping anyone off worked together to promote culture and innovation? Because that’s not what I see here. I see a company that has its priorities so ass-backwards that it’s targeting a platform whose sole purpose is to help children learn.

Don’t they have better things to do?

Elsewhere: HTML5 and Browser Testing

August 9th, 2010 by dan

I wrote a couple of posts for work last week:

Hopefully those will be of interest to you if you’re into techie web stuff.

This week’s post for this blog is a bit more opinionated than usual, and is taking longer as a result. It probably won’t be up until tomorrow. But it’s going to be my first post (ever!) about copyright, which is something I can get a bit touchy about, so you don’t want to miss it.

Be Your Own Ambassador

August 2nd, 2010 by dan

These days, your identity on the web can be quite broad. You might have a blog, you almost certainly have a Facebook account, you’ve probably at least heard of Twitter and LinkedIn, and at the very least, you watch YouTube videos and read other people’s blogs. To make things seem even more spread out, many interactions in these spaces tend to be very short — and I don’t just mean Twitter, I bet your comments on Facebook and several other social tools are usually a few hundred characters or less.

With such a wide set of places to leave your mark, and these interactions tending to be shorter and shorter, it’s easy to make a lot of them and its easy to make them without thinking too hard. Lately I’ve been trying to put more thought into comments I leave on people’s blogs and tweets that I’ve whipped up on the spot, and the other day I realized something: Every tweet, every status update, every forum post, and every comment I leave online, anywhere, is an opportunity to make a good first impression.

Pause and consider that for a moment. Every time you submit any content online, someone else is meeting you for the first time. Sometimes it might really only be one person, but often it’s dozens, hundreds, or even thousands of people. Now imagine meeting this many new people in person rather than through a screen. Would you still just blurt out a quick statement without thinking? What kind of first impression would that leave?

Think of this from a branding point of view. Every time you write a quick, pointless statement online, you’re wasting a chance to properly introduce yourself to a handful of new people. Why not seize every opportunity to make a strong first impression — something people will remember?

Some tips for making those first impressions count:

When you post on a blog or forum, link your name to something. There are plenty of options: your blog, your twitter, your shared items in Google Reader, anything you have that says more about you. If I like what you have to say, I’m going to want to know where I can go to listen to more of you.

Please (please, please, please!) don’t just write “great post!” when you comment on someone’s blog. That doesn’t tell me anything about you. Mention why the post is great: what do you like about it? Do you have a similar experience to share? Does it remind you of something funny/stupid/unique? If you’re going to take the time to leave a comment, leave something worth reading — or better yet, something worth re-reading.

Along the same lines, when commenting on something in Facebook, don’t just say “lol” or “epic!”. That’s what the Like button is for. If you’re going to comment on someone’s status, add a bit of personality. You never know who might gain value from your reply, and something heartfelt and sincere could really make the original poster’s day.

Try to be helpful. This doesn’t just apply to question-answer sites like Stack Overflow; people are asking for help all the time, using every tool available to them. This includes the obvious ones like Twitter and most forums, but the same goes for blogs and Facebook/MySpace/Yammer. You probably know all kinds of things that others don’t — share that knowledge!

Be personal. Remember that you’re interacting with one or more human beings. Don’t spam us to death (I’m looking at you, LinkedIn “power users” and Twitter “experts”) and try to talk like you would talk to someone you’re meeting at a park or grocery store. Be humble and respectful, and don’t just talk about yourself.

Proofread before hitting submit. Those typos and basic grammatical mistakes that ruin otherwise great resumés can also sabotage thoughtful comments. Don’t let easily-correctable errors distract me from what you have to say.

Finally, practice makes perfect. This post isn’t meant to scare anyone away from online interactions. Make lots of them; just remember that each and every one is a chance for you to show the world how great you are.

How Much Longer will it Take?

July 26th, 2010 by dan

Let’s talk about re-estimating software projects. Here is a situation I find myself in every now and then:

Say I’m the lead/best/only developer on a project, and partway through that project, we realize that we’re going to miss an important deadline. My manager will come to me with a question that I absolutely dread:

How much longer will it take?

It’s a perfectly fair question. Since I’m the lead/best/only developer, I’m in the best position to estimate how much more time is necessary, and my manager needs this information to make important decisions (add more people? talk to the client? etc). But it’s extremely difficult to answer! If the initial estimates (which I either came up with or approved) are wrong, how am I supposed to magically come up with better, more accurate ones?

The most important thing is to not answer on the spot; a great manager once told me that the best answer any time anyone asks you for an estimate is always “I’ll get back to you” and he’s completely right — there is absolutely no way you can put together a sensible estimate off the top of your head. Ever. You’ll always have to do a bit of math and take a few things into consideration, so give yourself time to do those things.

Now, let’s talk specifics. There are three main approaches I’ve seen myself and others use to re-estimate a project. For the following examples, let’s pretend that you’re in charge of a project that was initially estimated at 10 weeks, and after 5 weeks of work you find yourself 1 week behind schedule. How much longer will it take?

The Naive Method

The knee-jerk reaction that you might even say out loud if you answer on the spot is that you’ll need 1 extra week for a total of 11 weeks. The naive thinking here is along the lines of: “hey, we’re 1 week late, so give us 1 extra week to make up that work and everything will be fine”. The problem here, of course, is that if you have been late on your initial estimates for the first 5 weeks, you’re probably going to be late on your initial estimates for the next 5 weeks as well. We need to account for more than just the time missing so far. This brings us to:

The Logical Method

You may be thinking that the correct answer is 2 extra weeks for a total of 12 weeks, since if you need 1 extra week after the first 5 weeks you’ll probably need 1 more extra week on the 5 remaining weeks. That’s no longer a naive answer (it’s indeed logical) but your math is flawed and we can do a bit better.

Look at it this way: it took 5 weeks to do 4 weeks’ worth of work. So after 10 weeks, we’ll have done 8 weeks’ worth of work. Historically, if 4 weeks’ worth of work takes 5 weeks, then that last 2 weeks’ worth of work will actually take 2.5 weeks. So what you should be asking for is an extra 2 weeks and 3 days (always round up) for a total of 12 weeks and 3 days.

Now we have an entirely logical answer, and by all accounts you should be able to tell your manager with confidence that the project will be done after 12 weeks and 3 days. But here’s the thing — you’re probably still wrong. The fault lies in the very concept of estimates: you’re assigning a logical, mathematical number to the actions of real people with real lives and real feelings. If your team was entirely composed of robots, then yes, the logical answer is probably a great estimate, but that’s not how teams work. There are a number of estimate-affecting factors that the team dynamic adds:

  • Some people will work longer days, evenings or weekends.
  • Some people will “speed things up” by skipping test cases or code review.
  • Missing milestones affects team morale.

None of these are always going to be good or bad for the project schedule, but it is foolhardy to ignore them outright. That’s why I believe in:

The Human Method

This is where it pays to know your team.

The idea is to take the proper logical answer, 12 weeks and 3 days for our running example, and tweak it based on the team dynamic. Does one of your fellow developers step up her game when the project falls behind schedule? Knock a day or two off the re-estimate. Do you have a teammate that gets easily overwhelmed? Add a day just in case. Is a stakeholder in the project going to want to have frequent meetings about why the project is late? That’s another day or two as well. You might be surprised at how things stack up: maybe it’s not as bad as you thought, maybe it’s much worse. But at least now you know.

Of course, you can’t always predict everything about your team, so sometimes you have to ballpark the team-dynamic chunk of the re-estimate. The best thing to do in this case is to err on the side of caution and add a buffer — something in the 20~30% range. For our example, that means adding another 25-ish% of the 2 weeks and 3 days that we’ve already added, call it 3 more days, bringing us to 3 weeks and 1 day. This means that our originally-estimated 10 week project is actually going to take a little over 13 weeks. Probably longer than what your manager was hoping for, but at least now we have some numbers to back it up.

And what’s your alternative, really? Make something up off the top of your head?

The iPad Dilemma, Revisited

July 19th, 2010 by dan

Back in early February, I lamented about how hard it was to decide if I wanted a Macbook or an iPad. At the time that I wrote the post, I had already waffled quite a bit on the issue, but the discussion in the comments led me to think that a Macbook was probably better for my needs — a position I held for a long time. Eventually I made my way back to wanting an iPad, though, and I finally picked one up a couple of weeks ago. What changed my mind? Several things:

The Macbook update was less than stellar.

Before the Macbook update, I often claimed that if it included a price drop, I would pick one up the next day. Unfortunately, there was no such price drop, and the update itself was pretty weak. Furthermore, the Macbook Pro update that had happened a little earlier was actually considerably more appealing, and I likely would have gone with a low-end MBP rather than a Macbook + RAM upgrade due to how the pricing worked out. Overall, this was a big turn-off for the Macbook.

The iPhone gained multitasking through a firmware update.

This was pretty big news because it meant that the same thing could easily happen to the iPad. Multitasking was my biggest concern with the device, but knowing that it might not be an issue forever was enough to quell that fear and give the iPad another chance. Granted, the multitasking on the iPhone isn’t the same as the freedom inherent in a full OSX install, but it was certainly enough to get me looking at the iPad’s oh-so-gorgeous screen again.

I was able to get my hands on an iPad through work.

Due to the exciting work we do at my day job, we got an iPad well ahead of its release in Canada. I was slated as the likely candidate for developing an app for it for one of our larger clients, so it was left in my care. I may have borrowed it for a few evenings… and possibly a weekend. I actually read a full book on it in about 3 days (easily a record for me), at which point I realized I was kind of in love with everything about the interface. Spending some time with an iPad really helped me fall for its charms, and this was what probably sealed the deal for me.

There were other miscellaneous factors as well, (price became more of an issue when the wedding costs started to kick in) but overall it simply felt like a bad time to get a Macbook and a good time to get an iPad. And so far, I’ve been very happy with my decision.

Varied Goals: Not SMART, but Still Effective

July 12th, 2010 by dan

I set a different kind of goal for myself this month, and it was pretty unconventional. It made me think of how we set goals, and more importantly, what kind of goals we’re encouraged to set. I’ll tell you about that goal a bit later on, but let’s start with the stuff you probably already know:

If you’re at all familiar with planning and motivation, you probably know that it’s a good idea to set goals for yourself. If you’re up on the latest trends, you probably know that you should set SMART goals. That stands for Specific, Measurable, Attainable, Realistic, and Timely. Basically, it means you should make goals that are challenging yet possible, as specific as can be, and with a deadline. “Get 10 accepted answers on Stack Overflow before my performance review in November” is a SMART goal (I’m at two so far).

That’s all well and good, but today I want to talk about a different kind of goal. It doesn’t have a fancy acronym, but for short I like to call them Varied goals (the name will start to make sense soon). As you are about to learn, Varied goals are not at all SMART goals:

  • Varied goals are intentionally vague.
  • Varied goals are not easy to measure.
  • Varied goals are never meant to be fully accomplished.
  • Varied goals are extremely idealistic.
  • Varied goals don’t have a specific deadline.

…but that doesn’t mean they’re not useful.

Varied goals are all about fine-grained motivation.

We’ll get to what Varied goals are all about in a moment, but first let’s look at an example of where SMART goals fall short:

Suppose I want to get better at soccer. It might help me to set a few SMART goals like “make a really solid pass every shift” or “score a goal in the next five games”. These goals give me specific tasks to fulfill that will help me improve important soccer skills. However, they’re pretty course-grained goals, don’t you think? Every game I’ll probably perform dozens of other actions that don’t impact those goals at all. What is pushing me in those cases? None of my goals apply, and my general desire to get better at soccer is far too general and not particularly inspiring. The idea of Varied goals is to fill that gap.

A Varied goal would be something like “Run harder than last shift”. This is something I can try really hard to do every shift, even though it doesn’t really satisfy any conditions for SMART. If I run into an unexpected soccer-circumstance and don’t really know what I should be doing, I can revert to my Varied goal; running harder is probably a good idea in a lot of situations, so this is something I can depend on. Best of all, it’s quite inspirational. When I’m running to get back to help defend my team’s net, I can think “Remember how fast I did this last shift? I’m going to be even faster right now”.

More formally:

  • Varied goals are meant to complement SMART goals, not replace them.
  • Varied goals are meant to be striven for, not attained.
  • Varied goals favour what’s possible over what’s practical.
  • Varied goals should be applicable to many general situations.
  • Varied goals should be inspirational. Something that really fires you up.

Now, about the name.

I call them Varied goals because it’s very important to keep variety in mind. For starters, as mentioned above, Varied goals should apply to a variety of situations. But even more importantly, it’s a reminder that you should maintain a variety of goals — some Varied, even more SMART.

Back to our soccer example: running harder than my previous shift will apply to a lot of situations, and it will complement a lot of SMART goals very well. How am I going to get that first goal in the next few games? Maybe by outrunning a defenseman when I have the ball, or sprinting up the field so that I’m open when my teammate is looking for someone to pass to.

So, what’s my Varied goal for this month?

Be unstoppable.

That’s it. I have it starred and highlighted at the top of my todo-list, which I check several times a day. It’s a frequent reminder that for this month, every instant of every day, I want to be unstoppable. Am I going to let that IE6 bug slow me down? Not a chance. Am I going to get overwhelmed when my already-overbooked schedule fills up even more? Definitely not. After a long day, when I have to decide whether I should sit on the couch and watch TV or go to my desk and pump out an epic blog post, what’s it going to be? I’ll give you a hint: it’s barely even a choice.

I suspect this sounds a bit crazy, but it’s just what I need right now. I’ve been early on all my deliverables at work so far this month. I’m a wedding-planning machine. I’m out of a so-so slump in softball, and I’m finally getting better at soccer. I wrote this post six (!) days early. Obviously I can’t attribute all of this to a bland, over-arching statement, but I feel it does really drive a lot of small victories that are helping me accomplish my SMART goals more effectively.

Does any of this resonate with you?

I’d love to hear some reactions to this. Are Varied goals something that could help you, or is all this wishy-washy idealism stuff total nonsense to you? I’m still very much figuring this out as I go, and your opinion means a lot.

Modern YouTube meets Retro Firefox

July 9th, 2010 by dan

A quick bonus-Friday-post to help get your Friday rolling:

I’m doing some web development at my day job for a site that simply must work in Firefox 1. It’s not as bad as it sounds (we’re also supporting IE6, which is a far bigger hassle) and every once in a while using a really old browser provides a bit of comic relief. For example, when I accidentally opened a YouTube video using Firefox 1, here is what I saw:




(click image to enlarge)

The text reads: “Hey there, this is not a commercial interruption. You’re using an outdated browser, which YouTube no longer supports. Some features on YouTube may not work.”

How ironic that the outdated-browser warning message is nearly unreadable in outdated browsers! It looks like even the brilliant minds at Google occasionally struggle with legacy-browser support, just like the rest of us ;)

Have a good weekend!

How to Make Use of Open Type Fonts (Windows)

July 5th, 2010 by dan

For our upcoming wedding, my fiancée and I thought it might be neat to license a really awesome font and use it throughout the various texts inherent in this sort of event (invitations, place cards, thank you cards, etc). Using a designer font turned out to be a little more interesting than I expected, and I found help online to be spotty at best, so here’s a listing of facts I figured out while getting a beautiful open type font to render and print correctly in Windows (I tested XP and Win7).

Step 1: Finding a great font.

We looked around for a bit and eventually took a liking to Biographer, a font profiled on I love Typography as one of the better fonts created this past year. This isn’t a free font, but it’s gorgeous… and after looking at the current landscape of free script fonts, we decided that having a totally unique font across all the type in our wedding was worth $85.

Tip #1: A great way to find interesting fonts is by checking out a few typography blogs. There are tons out there, and they can really help make the sea of available typefaces a lot easier to navigate.

Tip #2: It’s ok to pay for a font. Typography, like any form of design, is an area where you often get what you pay for.

Step 2: Downloading and installing a font.

I bought our font license through a website called Veer. They’re a pretty popular reseller, and it was easy and straightforward to purchase and download the font files. I’m not sure if all font-selling websites are like this, but I can certainly recommend this one.

Installing the font was a breeze. If you’re not sure how to install a font on your system, a quick query on Google will sort that out for you in no time. Here’s the page I used: Installing Fonts in Windows.

Tip #3: Do your research, and only buy fonts from reputable websites. This goes without saying, but the internet can be a scary place to enter your credit card number. Bonus points if the site uses a purchasing framework such as PayPal.

Step 3: Using an open-type font’s special characters.

This is a huge hassle. Biographer has a lot of alternates for its characters; there are multiple versions of letters with elegant, swooping tails like ‘h’, ‘p’ and ‘k’. Regular word processors aren’t able to access these. The most common-place application I heard of that could was Office 2010, but I didn’t have that so I had to get creative.

The first thing I tried was the Windows character map. This shows all unicode characters, so surely my alternates would be there and it would be easy to insert them into something basic like Wordpad. Yeah, not so much — they simply aren’t there. If anyone can explain why, I’d love to know; this really surprised me. After giving up on getting any help from the OS, I decided I’d need a serious word processor to tackle this one.

The next things I tried were Office 2007 (where I managed to eek out a few ligatures, but still no alternates) and Open Office. To be fair, I didn’t actually download and install Open Office, but their own FAQ was kind enough to inform me that my efforts would have been in vain. This was getting frustrating. It’s 2010, people! How hard is it to support a few extra fancy characters?

Getting desperate, I tried to install LaTeX — I think. Maybe I was just installing some prerequisite libraries or some sort of command-line utility, I’m still not sure. This was the most confusing software setup I’ve ever experienced, and I bet I could write an entire post called Things that Suck about Installing LaTeX if not for the fact that I’m in no mood to put up with that much headdesk-inducing hassle. Moving on:

Finally, I downloaded a free trial version of Adobe’s InDesign, software that is made explicitly for desktop publishing. This worked like a charm. Straight out of the box it varied which versions of each character were used as I typed, and if I wanted to specify an exact variant to use, I could do that through the remarkably intuitive glyphs menu. I highly recommend this approach if you’ll only need to be able to work with the font for a short period of time and/or you’re willing to shell out $700 for InDesign.

Tip #4: If you want to use the special characters of your open-type font in Windows, your best bet right now is either Office 2010 or Adobe InDesign. If you can’t get a license for either, InDesign has a free 30-day trial.

Tip #5: Only attempt to install LaTeX if you are a grad student or a masochist, or you have absolutely no other options (and even then, you should try to find a grad student or a masochist to help you get it up and running).

Step 4: Printing with an open-type font.

InDesign provides a pretty fantastic printing experience, so I didn’t have to struggle at all in this regard. I set up my new document to be exactly the dimensions of the card stock I was printing on, and it went through my standard, off-the-shelf printer without any trouble. I seem to remember reading some sort of horror story about needing to manually tweak printer drivers to get them to recognize a new font, but thankfully that’s not something that happened to me (and sadly, I can’t find the relevant link).

Tip #6: You might have printing issues. A good word processing tool will mitigate this as much as possible, but God help you if you’re using LaTeX or anything equally obscure.

I hope this will be helpful to at least a few people out there. And in case you were wondering, our invitations look down-right incredible, and we’re looking forward to printing the rest of our wedding-related copy over the next few days.

If you have a similar story regarding font manipulation, or a question that I didn’t answer above, I’d love if you left a comment.

How to Learn Twice as Much from Blog Posts

June 28th, 2010 by dan

The trick is to read posts that are doubly-useful.

Let’s look at a few examples:

I’m a big fan of JD Roth’s Get Rich Slowly, a finance-tips-for-the-layman sort of blog. While I do appreciate the best practices and money hacks (I feel they help me develop and maintain good financial habits), I could get those anywhere. A huge part of why I read GRS is because JD is a fan-freaking-tastic blogger. He writes diverse content on a near-daily basis, his posts always come off as sincere and never condescending, and the totally-committed community he has built up around GRS is nothing short of incredible. When I read posts at GRS, I’m not just learning about personal finance, I’m learning about how to write for and manage an extremely successful blog. Two things.

Another blogger I really like is Lisa Barone over at Outspoken Media. She writes mostly about search engine optimization and branding, which is often useful information for small-time bloggers like myself, but it’s not what she says that I’m paying the most attention to — it’s how she says it. Lisa has voice. Her writing is playful but clear, concise but with flair. I’m confident that if someone gave me ten posts about SEO and told me that one of them was written by Lisa, I could find it hands down. She’s identifiable and unique in an industry that is crowded and largely bland. Her content is useful, but it’s her style that I learn the most from. Again, two things.

And doubly-useful content doesn’t always have to be about honing pairs of skills; it works just as well for entertainment. Take, for example, Penny Arcade. There are at least two things I find entertaining on this website. The obvious one is the content they produce; their comics, podcasts, and PATV episodes are inspired and wildly popular, but I’m also a huge fan of Tycho’s writing! There have been days when I’ve loaded up PA to see the latest comic, and after reading Tycho’s post, completely forgotten that they even do comics and moved on to something else. Tycho’s posts are so captivating on their own that I would visit the site even if they didn’t make hilarious content. You guessed it: two things.

This doesn’t just apply to blogging either. I’ve tried several times to find a few francophones to follow on Twitter, because in addition to enjoying their opinions (I like to cover a wide variety of demographics on Twitter) it will also help me practice my french. It’s surprising where phenomenons like this can crop up.

So next time you’re about to drop half an hour on FAIL Blog or that popular social-media site that you only follow because everyone else does, consider spending that time on something with more depth. Something you can gain two insights from instead of one. Something doubly-useful.

Rules are Made to be Not Strictly Followed

June 21st, 2010 by dan

A couple of things happened over the weekend that made me wonder about rules. More specifically, they made me wonder about why rules exist and how strictly rules should be enforced. Let’s look at these two stories and see if we come to the same conclusions.

How I scored a free bus ride.

On Saturday, my fiancée and I attended a wedding (not our own). By a miracle of convenience, the reception hall was a 10-minute bus ride from our humble abode, and the reception included an open bar. This meant neither of us had to worry about driving or finding a ride home, we could simply take a bus that ran until 2am.

And so, shortly after 1:30 in the morning, the two of us stumbled out to the bus stop and caught our bus. I have a monthly pass, so I walked on as usual, but when la fiancée went to pay her fare, the bus driver stopped her and told her not to worry about it. I’ve never seen this happen before, and I’ve been taking buses in Ottawa for over ten years. The rule has always been pay your fare or get off the bus.

Why did he break this rule? My working theory is that the driver saw two young-adults making the responsible but unusual decision of taking a city bus home from a wedding in the early hours of the morning, and decided to mark the occasion by breaking a rule and saving us a few bucks. More on this in a moment.

How I spent half an hour at the airport.

On Sunday, I went to the airport to surprise my parents with a ride home. Their flight was delayed… for about two hours. So to kill a bit of time, I thought I’d grab a drink at the bar (yes, the day after the wedding; no, I don’t have a problem).

I sat down and ordered a gin and tonic. When it arrived, I realized that I didn’t have any cash on me and began digging through my wallet for my credit card. The bartender told me not to worry about it, and to just let him know when I’m ready to pay. I was a bit surprised here. Usually the rule is that the barkeep brings you a drink and you either hand him some cash or start a tab.

He didn’t know if I had any means to pay for my drink. In fact, he completely left the bar for about ten minutes to make a club sandwich for another patron. I could have nonchalantly up and left if I were that type of person (I’m not — I watched a bit of baseball, and paid for my drink when I got up to leave).

Why did he break the order-your-drink, pay-for-your-drink rule? Because it was convenient. I was fumbling through receipts and business cards, and someone else had just ordered a meal. Why make the hungry gentleman wait for me to sort out my payment details?

Let the over-analysis begin.

The first point I’d like to make is that both cases were great examples of good customer service.

On the bus, the driver likely recognized that I take the bus frequently on account of my pass, and may have deduced that I talked my date into taking the bus home. Maybe the bus line wants to encourage wedding-goers to benefit from its services, or maybe the bus driver just wanted to make our ride memorable so that we would tell people about it (mission accomplished). The price of a single fare on this one rare occasion was a small price to pay for those goals.

At the bar, the bartender managed to please two people by not requiring me to pay for my drink immediately. He trusted me, even though I was a total stranger. He had no idea that it was my first time at the Ottawa Airport Bar and Grill, or that I had a blog and might mention it in passing. He was just doing his job, and making a positive impact on his customers.

The second point I’d like to make is that this sort of behavior is probably actively discouraged (and that sucks).

I seriously doubt either the bus driver or the barkeep would have broken their respective rules if “the boss” had been watching. It’s way easier to enforce the rules (all passengers must pay, no exceptions! all drinks must always be paid for immediately!) than it is to flexibly provide great service.

I’m not going to say this should be actively encouraged, as that could get chaotic very quickly in both cases, but every once in a while a situation presents itself where it’s ok to break a rule or two. It makes the interaction feel more human, and we like that about it.

And the final point I’d like to make is this: are there any rules you strictly follow that might be ok to break every once in a while?