Categories
Uncategorized

“We’re Just Like Apple. You Can Buy Our Stuff Now.”

These ads for Asus’ suspiciously familiar-looking ultrabooks are plastered all over Toronto’s Bloor/Yonge subway station:

For all the aping of Apple’s MacBook/AirBook designs, it still doesn’t play the “See? We’re just like Apple!” card as hard as the Dell ad recently featured in Daring Fireball:

Categories
Process Programming

FizzBuzz Still Works

The Sorting Hat

I recently interviewed some programmers for a couple of available positions at CTS, the startup crazy enough to take me as its CTO. The interviews started with me giving the candidate a quick overview of the company and the software that we’re hiring people to implement, after which it would be the candidate’s turn to tell his or her story. With the introductions out of the way — usually at the ten- or fifteen-minute mark of the hour-long session, I ran each candidate through the now-infamous “FizzBuzz” programming test:

Write a program that prints out the numbers from 1 through 100, but…

  • For numbers that are multiples of 3, print “Fizz” instead of the number.
  • For numbers that are multiples of 5, print “Buzz” instead of the number
  • For numbers that are multiples of both 3 and 5, print “FizzBuzz” instead of the number.

That’s it!

This was the “sorting hat”: the interview took different tacks depending on whether the candidate could or couldn’t pass this test.

I asked each candidate to do the exercise in the programming language of their choice, with pen and paper rather than on a computer. By requiring them to use pen and paper rather than letting them use a computer, I prevented them from simply Googling a solution. It would also force them to actually think about the solution rather than simply go through the “type in some code / run it and see what happens / type in some more code” cycle. In exchange for taking away the ability for candidates to verify their code, I would be a little more forgiving than the compiler or interpreter, letting missing semicolons or similarly small errors slide.

The candidates sat at my desk and wrote out their code while I kept an eye on the time, with the intention of invoking the Mercy Rule at the ten-minute mark. They were free to ask any questions during the session; the most common was “Is there some sort of trick in the wording of the assignment?” (there isn’t), and the most unusual was “Do you think I should use a loop?”, which nearly made me end the interview right then and there. Had any of them asked to see what some sample output would look like, I would have shown them a text file containing the first 35 lines of output from a working FizzBuzz program.

The interviews concluded last week, after which we tallied the results: 40% of the candidates passed the FizzBuzz test. Worse still, I had to invoke the Mercy Rule for one candidate who hit the ten-minute mark without a solution.

The Legend of FizzBuzz

I was surprised to find that only one of the candidates had heard of FizzBuzz. I was under the impression that that it had worked its way into the developer world’s collective consciousness since Imran Ghory wrote about the test back in January 2007:

On occasion you meet a developer who seems like a solid programmer. They know their theory, they know their language. They can have a reasonable conversation about programming. But once it comes down to actually producing code they just don’t seem to be able to do it well.

You would probably think they’re a good developer if you’ld never seen them code. This is why you have to ask people to write code for you if you really want to see how good they are. It doesn’t matter if their CV looks great or they talk a great talk. If they can’t write code well you probably don’t want them on your team.

After a fair bit of trial and error I’ve come to discover that people who struggle to code don’t just struggle on big problems, or even smallish problems (i.e. write a implementation of a linked list). They struggle with tiny problems.

So I set out to develop questions that can identify this kind of developer and came up with a class of questions I call “FizzBuzz Questions” named after a game children often play (or are made to play) in schools in the UK.

Ghory’s post caught the attention of one of the bright lights of the Ruby and Hacker News community, Reg “Raganwald” Braithwaite. Reg wrote an article titled Don’t Overthink FizzBuzz, which in turn was read by 800-pound gorilla of tech blogging, Jeff “Coding Horror” Atwood.  It prompted Atwood to ask why many people who call themselves programmers can’t program. From there, FizzBuzz took on a life of its own — just do a search on the term “FizzBuzz”; there are now lots of blog entries on the topic (including this one now).

In Dave Fayram’s recent article on FizzBuzz (where he took it to strange new heights, using monoids), he observed that FizzBuzz incorporates elements that programs typically perform:

  1. Iterating over a group of entities,
  2. accumulating data about that group,
  3. providing a sane alternative if no data is available, and
  4. producing output that is meaningful to the user.
If you can’t write a program that does all of the above in its most basic form, you can’t program. It’s that simple. Needless to say, anyone who didn’t pass FizzBuzz didn’t pass the interview.

My FizzBuzz Solution

I can’t go fairly judge other programmers with FizzBuzz without going through the test myself. I implemented it in Ruby, my go-to language for hammering out quick solutions, and in the spirit of fairness to those I interviewed, I did it with pen and paper on the first day of the interviews (and confirmed it by entering and running it):

I consider myself a half-decent programmer, and I’m pleased that I could bang out this solution on paper in five minutes. My favourite candidates from our interviews also wrote up their solutions in about the same time.

A Forty Percent Pass Rate?!

Okay, the picture above shows a 33% pass rate. Close enough.

How is it that only 40% of the candidates could write FizzBuzz? Consider that:

  • All the candidates had some kind of college- or university-level computer programming education; many had computer science certificates or degrees.
  • The candidates had varying degrees of work experience, ranging from years to decades.
  • Each candidate could point to a sizeable, completed project on which they worked.
  • All the candidates came to us pre-screened by a recruiting company.

A whopping sixty percent of the candidates made it past these “filters” and still failed FizzBuzz, and I’m not sure how. I have some guesses:

  • Moving away from programming: Some of them may have started as developers initially, but over time, their work changed. They still hold some kind of programming-related title and their work still has something to do with the applications they were hired to develop, but these days, most of their job involves tasks outside the realm of actually writing code.
  • “Copy and paste, adjust to taste”-style programming: Also known as “Coding by Googling”,  this is when a developer writes applications by searching for code that’s similar to the problem that s/he’s trying to solve, copy-and-pastes it, and then tweaks it as needed. I get the feeling that a lot of client-side JavaScript is coded this way. This is one of the reasons I insisted that the FizzBuzz exercise be done on paper rather than with a computer.
  • Overspecialization: It could be that some candidates have simply been writing the same kind of program over and over, and now do their work “on autopilot”. I’ve heard that FizzBuzz is pretty good at catching this sort of developer unaware.

If you’re interviewing prospective developers, you may want to hit them with the FizzBuzz test and make them do it on paper or on a whiteboard. The test may be “old news” — Imran wrote about it at the start of 2007; that’s twenty internet years ago! — but apparently, it still works for sorting out people who just can’t code.

Be sure to read the follow-up article, Further Into FizzBuzz!

Categories
Uncategorized

Goodbye, Mr. Sinofsky

Goodbye, Mr. Sinofsky, and thank you for teaching me two of the most valuable lessons in office politics during my tenure at The Empire:

To be fair, Sinofsky is that combination of “smart” and “gets things done”. In his heartfelt “farewell” article, Dare Obasanjo writes that he took some products in need of fixing up and love — Windows Vista, Surface-the-big-ass-table, “a mish mash of confusing consumer synchronization products” — and turned them around into dramatically improved versions: Windows 7 and 8, Surface-the-tablet and SkyDrive.

Other takes:

Shareholders have already braced themselves for a drop in value — not the $60 or $70 that Apple’s has dropped to the low, low, low price of $540 a share after Forstall’s and Browett’s departure announcementsbut by about a buck to $27-and-change at the time of this writing.

Categories
Uncategorized

Local Heroes: Shifthub’s and Maluuba’s Video Interviews at TechCrunch Toronto

At their Toronto meetup, TechCrunch conducted a number of video interviews with Toronto area-based startups, two of which were Shifthub and Maluuba, which I’m showing below.

Shifthub aims to solve the problems of coordinating the schedules of employees who work in shifts. If you’ve ever worked in retail or at a restaurant or bar, you know how easily bunged up employee scheduling can get, especially when you’ve got factors like high turnover, personal emergencies and people trading shifts. Now that a lot of people’s tips go towards the purchase of a smartphone, a system like Shifthub, which handles the scheduling of staff and lets staff work out changes to their schedules in a way that ensures those changes don’t get lost in the shuffile, makes plenty of sense. Shifthub was founded by my old Tucows coworker James Woods (not the actor/Peter Griffin stalker) and Jeremy Potvin, who chatted with TechCrunch‘s East Coast Editor (and my homeboy) John Biggs in the video below:

The guys at Maluuba describe it as a “do engine” that understands what you say in order to help you get things done. It takes your natural conversations and converts them into queries that are applied to a set of third-party services and takes action on your behalf. Asking Maluuba about when the next showing of Skyfall takes place will show you movie listings for your area and give you the option of setting a reminder or marking a date in your calendar. Wolfram Alpha provides it with general knowledge, while other information is provided by Wikipedia, Yelp, Rotten Tomatoes, Weather Underground, Eventful and more. In the video below, TechCrunch’s Jordan Crook talks with Maluuba’s Tareq and Eric:

Categories
Uncategorized

A Great Time at TechCrunch Toronto Last Night

Last night, TechCrunch came to town and invited 1,000 people to come and mingle at the Steam Whistle Brewery. Anitra and I attended the event, which was packed solid. Even with 1,000 free tickets available, there were still a large number of people waitlisted.

The photo above shows the party floor as things were winding down. At the start of the party, the place was packed solid, with local tech startup people watching demos put on by startups who managed to pull together the $1,500 sponsor fee, catching up with each other and trying to meet new co-founders, collaborators, funders and employees.

A good number of the Usual Suspects were there, including Rannie “Photojunkie” Turingan and Rob Tyrie, pictured above. Also present were some of my former colleagues at Shopify, including Blair Beckwith, Brian Alkerton and Mark Hayes, Shoplocket co-founders Katherine Hague and Andrew Louis, Anna Starasts from Grossman Dorland, James Woods from Shifthub (I worked with him at Tucows, along with Greg Frank, who was also there), Julie Tyios (who I cracked up with my Ford Canada interview), Vahid Jozi (whom I met while in Ottawa), Austin Ziegler, Jon from Venio, Rohan “Silver Fox” Jayasekara, John Gauthier and Jean-Luc David, to name a few. Special out-of-town mention has to go to Greg “Gregarious” Narain.

John Biggs and Joey deVilla.

John Biggs and Yours Truly at TechCrunch Toronto.

My moment of the evening: when John Biggs, TechCrunch’s East Coast Editor saw me and asked “Is that the Accordion Guy?” It turns out that’s he’s been a reader of The Adventures of Accordion Guy in the 21st Century for some time! I’ve been following his stuff since he was Editor-in-Chief at Gizmodo, so the recognition made me feel like a rock star — a very nice birthday present!

Events like this are good for our local startup ecosystem. The chance meetings and exchange of ideas at shindigs like this have led to all sorts of things: friendships, collaborations, partnerships, employment and even getting some funding, but most importantly, they lend that sense of cohesiveness necessary to creating an environment where little businesses built on big ideas can thrive. My thanks to the folks at TechCrunch, the sponsors and all who came for making this event a fun and productive one!

You can read the TechCrunch summary of the event here.

This article also appears in The Adventures of Accordion Guy in the 21st Century.

Categories
Uncategorized

The Lines That Got Me in Trouble at Microsoft (and the contest winner!)

In a post I made yesterday, I asked you to read an article that I wrote during my Microsoft days and see if you could spot what part of the article garnered me a huffy email to my skip-level (that’s Microsoft’s Newspeak for “the boss of my boss”) from none other than Steven Sinofsky, President of the Windows division. Next to Steve Ballmer, Sinofsky is probably the most powerful guy at The Empire, as no undertaking of any import takes place at Microsoft happens without at least the tacit approval of the people who control Windows and Office, the geese that lay the golden eggs. This is why the Courier tablet got killed. Getting up Sinofsky’s nose is akin to stretching clear plastic wrap across Darth Vader’s toilet: it’s amusing, but there are consequences.

Like Darth Vader, higher-ups at Microsoft prefer to use the Force and choke you from a distance. In this case, the Force was my skip-level. He had made the long and arduous climb to level 63 and wasn’t going to have his best-laid plans undone by a blog post. Microsoft has employee levels, just like World of Warcraft, and in both, the real fun begins at level 60 (I myself was a level 61 employee).

The anonymous Microsoft insider blogger Mini-Microsoft astutely notes that the unwritten rule for success at Microsoft — and especially for climbing past level 62 — is “Influence if you can, scare if you must”. It’s good, sound, if somewhat Machiavellian advice, but in the Ayn-Rand-meets-Asperger’s upper echelons of The Empire, that rule all-too-often gets interpreted as “Scare! Scare! Make them crap their pants!

So he did what any level 63 with any sense does: he delegated. He asked my manager “Should we fire him?” My manager, being one of the good guys and understanding the true message of my post, said “Nah, he’s cool.” In the end, I got a slap on the wrist and life, or what passes for it as a Microsoftie, went on.

Some contestants  were under the impression that it was referring to the big tabletop computing device then known as Surface as “The Big-Ass Table” got me in trouble. Surprisingly, that was not the case. Microsoft can be cool — really, they can — and they’re just not uptight enough to get riled about the term “big-ass”.

Some contestants also guessed that it was referring to Microsoft as “The Empire” that got me in trouble. Nope. It’s done internally all the time, and often to great effect by such people as Lauren Cooney, former leader of Microsoft’s Web Platform Team, who has dressed up at Darth Vader from time to time for events and presentations, and Ariel Meadow Stallings, another ex-Microsoftie, who handed out “I am the Empire” shirts to fellow bloggers.

For the record, here are the bits that got me in trouble:

I believe that over the next few months, you’ll see some interesting touch-related stuff coming from Microsoft, and that we have a responsibility to help developers understand the differences between mouse/keyboard computing and touch computing.

We’re aware of the challenges of touch (and other sensor) input and over the next little while, you’ll see our answers to those challenges. And better still, we’ll share what we’ve learned in order to make you better developers and designers of software that use these new interfaces.

I got in trouble because they were forward-looking statements. Microsoft is a publicly-traded company, and such statements, as obvious and harmless as they might seem, are the sorts of things on which investors make decisions and the wrong statement has the potential to play havoc with the stock price. For a Fortune 50 company, even a fraction of a penny’s change can mean millions of dollars. This in turn can mess with several people’s year-end reviews and promotion opportunities. Only at such an organization can the stakes be simultaneously so high and so low.

The contest winner is Kevin Dean, who submitted this guess at 3:30 p.m. yesterday:

My guess is you got blasted for “making a pre-announcement” when all you were doing was speculating.

As the winner, Kevin had the choice of claiming either my near-mint-condition Zune HD or his choice of a Manning Publications ebook. He went for Manning’s iOS in Practice, which means that the Zune will stay in my museum of forgotten-but-well-meaning electronic devices. My congratulations to Kevin and thanks to everyone who participated!

Categories
Uncategorized

Microsoft Gets Touch, and the Touch Technology Article That Got Me in Trouble at Microsoft (plus a contest!)

Lance Ulanoff wrote in Mashable that Microsoft’s vision for touchscreen computers is the right one. He argues that the ergonomic principle known as Gorilla Arm (which states that our gorilla-like arms aren’t designed to be held in front of us, making fine motions, for more than brief periods of time) doesn’t apply to devices like laptops and the Surface in “kickstand mode”. He found it natural to switch back and forth between touching the screen and using the keyboard and mouse. He also found himself absorbing the Windows 8 gestures — which Marco Arment said were non-intuitive in his article An Alternate Universe — so well that found himself absent-mindedly trying to use them on his iPad.

A day later, Jeff Atwood at Coding Horror wrote pretty much the same thing in his article, titled Do You Wanna Touch, which concludes with this paragraph:

 The received wisdom about touchscreen interaction with computers was that it didn’t work. That you’d get “gorilla arm”. That’s why we had to have special tablet devices. But Surface proves that’s not true; typing and touching are spectacularly compatible, at least for laptops. And I’m beginning to wonder about my desktop a little, because lately I’m starting to I think I wanna touch that, too.

This reminds me of something I wrote a couple of years ago…

On August 1st, 2010, when I was a Developer Evangelist and Windows Phone Champ at Microsoft, I posted an article titled A Touchy Subject both here and in Microsoft Canada’s blog, Canadian Developer Connection. I was working at Microsoft at the time and wrote it in response to an Ars Technica article titled Ballmer (and Microsoft) Still Doesn’t Get the iPad; the gist of the article is “As a matter of fact, we do get touch.”

The article got a lot of comments, including one you never saw: a huffy email to my skip-level (that Microsoftese for “My manager’s manager”) from non other than Steven Sinofsky himself, President of Windows and Windows Live, who suggested that I be reprimanded for one thing in that article. I’m offering your choice of one of the following small prizes to the first person who can tell me what that one thing was:

Submit your guess to joey@joeydevilla.com. Former coworkers from Microsoft Canada’s Developer Evangelism group are, alas, ineligible.