Categories
Uncategorized

Mental Models, Mantras and My Mission

Mental Models and Bill Buxton’s “Draw a Computer” Exercise

Bill Buxton

In the mid 1990s, well before he was Microsoft’s user interface guru, Bill Buxton often asked people to carry out a simple little exercise: draw a picture of a computer. Most, if not all, of the people he asked would draw something that fit the common mental model of the desktop computer of the era: cathode ray tube-type monitor, keyboard, mouse and that box housing the motherboard and drives that many people mistakenly refer to as “the CPU”.

If Buxton were to ask the question today, the drawings of computers might look like these:

Four computers from the 2000s - a laptop, a couple of all-in-one-desktops and a desktop with a "box" -- all with flat screens

If he asked the question in the mid-to-late 1980s, the drawings might’ve looked like these:

80s-era computers: Apple ][, Commodore 64, TRS-80 and IBM PC

And had he asked the question in the mid-60s, the drawings might’ve looked like this:

The classic fake "home computer as envisioned by RAND" photo

Buxton likes to point out that the changes in computers from the 60s onwards are largely in the implementation technology, processing power and outward appearance. When most people draw computers, he said, they’re merely drawing their mental model, which is based on the outer packaging.

However, if you use the mental model of a technologist, computers have been essentially the same instruction/ALU/storage/input-output boxes whether they’ve occupied whole rooms or fit in your pocket. They’ve been pretty much the same at their core, in the same way that fancy tech and hybrid engine aside, there really isn’t too much that separates a present-day Toyota Prius from a Model T Ford.

If Bill Buxton could approach Microsoft Corporation as a person — and hey, that’s the way the law treats corporations, so why not? – and asked him/her to draw a computer, I suspect that s/he would draw something based on mental model of a souped-up circa 2000 computer: a desktop computer with a nice flatscreen monitor, running Windows XP and having a somewhat limited connection to the ‘net.

I think that this is a problem. I also think that the source of this problem is Microsoft’s success.

Microsoft’s Company Mantras

“A PC on every desk and in every home” was Microsoft’s longest-lived slogan and the company mantra for the first 24 years of existence. Like the best slogans, it succinctly summarized the company’s goal. The problem is that the goal has pretty much been reached. In most parts of the first world, a good chunk of the second world and even a sizeable fraction of the third world, you can easily find a desktop computer, and it’s quite likely that it’s running some sort of Microsoft software.

Since 1999, the company mantra – I really hesitate the use the phrase “vision statement” — has been a little more vague. The company’s been thrashing between them a little more frequently, as you can see in this list of mantras taken from chapter 1 of How We Test Software at Microsoft:

  • 1975 – 1999: “A PC on every desk and in every home.”
  • 1999 – 2002: “Empowering people through great software – any time, any place and on any device.”
  • 2002 – 2008: “To enable people and businesses throughout the world to realize their full potential.”
  • 2008 – present: “Create experiences that combine the magic of software with the power of internet services across the world of devices.”

The post-1999 mantra all seem a little limp in comparison to the original. Reading them, I cannot help but think of a quote attributed to web design guru Jeffrey Zeldman:

"…provide value added solutions" is not a mission. "Destroy All Monsters." That is a fucking mission statement.

Because the old mantra lasted for so long and the new mantras just don’t have the same straightforwardness and gravitas (How We test Sofware at Microsoft quotes Ballmer as saying that we may never again have a clear statement like the original to guide the company), the original remains quite firmly etched in the company culture and mindset.

I think it’s holding us back.

The Desktop as the Goose That Laid the Golden Egg

Altair 8800 computer on display at Microsoft's Building 92 gallery

The original mantra doesn’t just focus on the desktop, it actually mentions it by name. In 1975, when computers were room-filling behemoths that you could access either via batch or time-share, the concept of a desktop computer was downright radical. If you think the iPhone is impressive (and yes, it is), imagine how mind-blowing the Altair 8800, the first commercially-available desktop computer, must have been to a geek back in the Bad Old Days. It was the platform on which Microsoft’s first product – a little programming language called Altair BASIC – was launched, and it was BASIC that in turn launched the company.

In his book Outliers, Malcolm Gladwell talks about how the Altair 8800 was a golden opportunity for Bill Gates and his buddies at his fledgling company, then called “Micro-Soft”. Unlike a lot of other companies at the time, they took the desktop computer seriously. Even when IBM got into the desktop computer game in 1981, it was a product of their Entry-Level Systems division, a clear indication that they thought the PC was a machine you bought until you were ready to graduate to a real computer. I don’t think that this philosophy ended up serving them well.

An Applesoft BASIC cassette featuring a sticker that says "Copyright Microsoft, 1977"

Since the big boys were paying no mind to the desktop computer, upstarts like Microsoft had a big empty field in which to play, and they thrived. Crack open just about any late 70s/early 80s computer that had BASIC built in – even Apple machines — and you’ll see a row of ROM chips with a Microsoft copyright notice. It was Microsoft that swooped in with PC-DOS when a deal with Digital Research for a PC version of CP/M was slow in coming (and this is despite the fact that Gates recommended that IBM go to Digital for an OS). A lot of people’s experience with desktop computers (and Microsoft revenue) is defined by circa-1995 Microsoft thanks to Windows 95 and the results of Bill Gates’ memo titled The Internet Tidal Wave, both of whose influences are still felt to this day.

Once upon a time, it used to be unusual to walk into someone’s home or office and see a computer. These days, it’s unusual to walk into someone’s home or office and not see a computer, and Microsoft’s focus on the desktop had a lot to do with that.

The Desktop as Albatross

Albatross, shot with a sucker-dart arrow, falls on the head of a Disney-esque cartoon character

When electric motors first became available, engineers envisioned factories and eventually houses being equipped with a single electric motor. They imagined that the central motor would, through a series of gears and drive belts, be connected to whatever machines in the house or factory had to be driven by it. What happened in the end is that rather than relying on some central motor, electric motors “disappeared” into the devices that used them. Here’s an exercise to try: go and count the electric motors in your house or apartment right now. The number should be a couple dozen, and if you can’t find them, this article might help.

When big, room-filling computers first became available, engineers envisioned businesses being equipped with a single computer in a manner roughly analogous to the aforementioned big central motor. We know what happened in the end – while many businesses do make use of big datacenters, a lot of the computing power got spread out into desktop computers.

I have a theory that comes in two parts:

  1. Just as electrical motors disappeared into the devices that needed their work, and just as computing power got spread out from big mainframes into desktop machines, computing power is now both disappearing and spreading out into mobile devices and the web/cloud.
  2. Microsoft, with its desktop-centric approach, at least outwardly appears to be missing out on this migration of computing power.

Most of the company’s attention, at least to an outside observer, seems to be focused on Windows 7. Yes, chances are that with computer sales being what they are, Windows 7 will probably end up on more of laptops and netbooks than desktops, but I consider those devices to simply be the desktop computer in a more portable form. It worries me that there have been more concrete announcements about Windows 7 on netbooks than upcoming versions of Windows Mobile, despite the iPhone and BlackBerry-driven evidence that the real mobile action is in smartphones.

(Tomorrow, I’ll post an article in which I argue that netbooks are a dangerous red herring pulling away our attention from devices like smartphones.)

Microsoft ASP.NET

Even when the company reaches out beyond desktop development, there’s no escaping the desktop “gravity well”. Consider ASP.NET (that is, the “traditional” ASP.NET, not the recently-released ASP.NET MVC). To my mind, as well as the minds of a lot of other web developers, it’s a web framework that tries really hard to pretend that the web doesn’t exist. It makes use of a whole lot of tomfoolery like ViewState to create a veneer of desktop app-like statefulness over the inherently stateless nature of the web and a programming model that tries to mimic the way you’d write a desktop application. It’s almost as if it were designed with the mantra “the web is like the desktop, but lamer” instead of “the web is like the desktop, but everywhere”. Although the framework works just fine and there are a number of great sites and web apps built on it, I think a lot of developers sensed this design philosophy and went elsewhere for web development.

(An aside: My old boss at OpenCola in late 2001 told me that he’d been meeting with Microsoft people and suspected that Internet Explorer 6 would be the final version of their browser. The expectation that web pages and web applications would be replaced by Windows client applications pushed over the net, a prediction similar to one made by the Java folks a few years prior.)

Windows Mobile logo

The same situation exists with Windows Mobile’s current user interface, which is basically a subset of Windows’ standard UI controls for the desktop, scaled down to fit smaller screens, and with a stylus standing in for the mouse. It’s almost as if it were designed with the mantra “mobile computing is like desktop computing, but lamer” instead of “mobile computing is like a mobile phone plus PDA and an MP3 player, but cooler.” If the ASP.NET design mantra is a whisper, the Windows Mobile mantra is a scream.

I suspect that the reason the XBox 360 didn’t fall into a similar kind of trap — “set-top boxes are like desktop computers, but lamer and only for games” – is that the XBox team is situated off the Microsoft Campus and less susceptible to the desktop influence.

My Mission

Stick figure, chained to desk, breaking the chain

At my most recent one-on-one meeting with my manager John Oxley, we talked about a need for each member of our Evangelism team to define his or her area of focus. The Microsoft platform is a vast, nerdy expanse spanning the range from embedded computing all the way to Cray supercomputers; no single person can hope to cover it all.

He already had a good idea of what I wanted to focus on, and by now, I guess you do as well. I feel that just as computing expanded beyond the big computer rooms and onto our desktops, computing is expanding beyond our desktops into all sorts of different places:

  • Invisibly, into the web and cloud in the form of web applications and services
  • Visibly, into our pockets and living rooms, and embedded into all sorts of real-world things

While I believe that Windows 7 is a necessary part of the Microsoft platform, I’m not too worried about focusing on it – there are more than enough people at the company to promote and evangelize it. I want to focus on the platforms that I feel that Microsoft hasn’t given enough love and attention: the non-desktop platforms of the web, mobile and gaming, as well where they intersect.

It’s a big area to cover, but I think Microsoft needs to be active in this area if it wants to be true to its forward-looking roots. I even have a mantra for it: “To help web, mobile and game developers using Microsoft tools go from zero to awesome in 60 minutes.” I want to give developers both that rush when getting started with a new technology as well as the sustained passion to keep working with it, in the same way that Ruby on Rails and the iPhone got developers with an initial flash of excitement and turned it into long-term passion. It’s an ambitious, audacious mission, but no more so than the one coined by a bunch of scruffy nerds in New Mexico in the the 1970s: “A PC on every desk and in every home.”

Joey deVilla with cardboard cutouts of Microsoft's 1978 team

Categories
Uncategorized

Evangelist, Immigrant and Shaman

This week, Microsoft Canada’s Developer and Platform Evangelism team is getting together to do its planning for the upcoming financial year, which runs from July to June in The Empire. There’s a lot to talk about, especially in a year that combines the Credit Crunch, the releases of new versions of Windows, Windows Mobile, Visual Studio and who-knows-what-else and a company looking to establish its place in an increasingly web- and mobile-driven world.

A good place to start might be to think about the roles that we, as individual members of the Evangelism team, play.

Evangelist

Old colorized photo of a boy evangelist with the title "I've got a message!"

Unlike Anil Dash and Jeff Atwood, I never had any reservations about the job title “Evangelist”. The religious connotations never bothered me. It might have had something to do with spending eight years in a Catholic school — it didn’t do me any harm, and it didn’t seem to hurt Keanu, who went to the same school around the same time. It might also have something to do with the fact that like Atwood, I think that “Software development is a religion, and any programmer worth his or her salt is the scarred veteran of a thousand religious wars.” I could never be happy with only programming; I need to mix it with sharing the knowledge and passion for the craft through writing, speaking, schmoozing, performing and entertaining.

Like evangelism of the religious kind, being a technical evangelist isn’t a job that you can do “on autopilot”. There are some jobs that you can do and even excel even though you hate them and the work is of no interest to you. No doubt you’ve seen or know people who do their jobs “on autopilot”, functioning well enough to perform the tasks required of them. Evangelism isn’t one of them. As the title implies, if you don’t have the believe in what you’re talking about, if you don’t have faith – you can’t get the job done. Evangelism is about winning hearts and minds, and people just know when you’re faking it, and once they know, they’ll never listen to you again.

Guy Kawasaki

I’ve wanted be a technical evangelist ever since I learned about Guy Kawasaki, who held the title at Apple in the mid 1980s. He may not have invented the title or the position – credit for that has to go to Mike Boich, Guy’s buddy at Apple – but he popularized the term and set the standard. The job engages both what we colloquially refer to as the “left brain” and the “right brain”; it requires you to tap into your rational and creative sides, often simultaneously. It’s the sort of work that I can really sink my teeth into. It is my dream job.

Nobody questions my suitability as an evangelist. People have asked about my suitability as an evangelist for Microsoft. How can a guy who’s been working largely in the open source world for the past seven or so years, mostly on a Mac, be an evangelist for The Empire?

Immigrant

Immigrant family on Ellis Island looking at the Statue of Liberty in the distance

I came to appreciate Microsoft’s tools after leaving my first job. In 1997, my friend Adam P.W. Smith and I left multimedia development at a shop called Mackerel, to go try my hand at building “real” applications at our own little consultancy. We wanted to graduate from building multimedia apps for marketing and entertainment purposes – software you might run once or twice and then discard — and start building applications that people would use in their everyday work to get things done.

Despite being Mac guys at heart, we chose the Windows platform since that’s what our customers were using, and opted to use Visual Basic to build our apps. Although it was considered “the Rodney Dangerfield of programming tools”, Visual Basic in the pre-.NET era was the best tool for producing great applications in a timely fashion that both we (and our customers, since they got the source code) could easily maintain. Our longest-lived application, a database of every mall in America written for National Research Bureau in Chicago, was first written in 1998 and its codebase lived on until a couple of years ago. In today’s world of ephemeral Web 2.0 apps, that’s an Old Testament lifetime.

Splash screens for "HPS Training System" and "Shopping Center Directory on CD-ROM"

Just as the best immigrants bring a little bit of their home culture and add it to the mix in their newly-adopted country, we decided to bring Macintosh user interface and workflow culture to the Windows world. We took care to write user-friendly error messages and also structured our applications so that you wouldn’t see them often. Our layout was consistent and everything was clearly labelled so you never felt lost in the application. And yes, we sweated over aesthetics because we felt that beautiful tools lead to better work.

Here’s the original application that we were given as a guide:

Original crappy SCD screen 

…and here’s our rewritten-and-redesigned-from-the-ground-up app that we built for National Research Bureau:

New and improved SCD main screen

(For more on what we did, visit the page where we showcase our work.)

A decade later, I find myself an immigrant in the world of Windows development, and once again, I want to bring a bit of the cultures from which I came and add it to the mix. This time, that culture is from Build-on-Mac-Deploy-on-Linux-istan, a cultural crossroads which blends a strong design aesthetic with the focus on the web, mobile applications, unit testing, distributed version control, sharing code and a scrappy startup work ethic and spirit. At the same time, I see the potential in my new Microsoft homeland, with its expansive reach into just about every level of computing, from embedded systems to giant enterprise datacentres, its excellent IDEs and frameworks and its large developer base. As an “immigrant” Microsoft evangelist, I see the chance for me to ply my trade in a new land that needs my skills, energy and outside perspective, and earn a fair reward for my efforts.

Shaman

Shaman holding a Windows 7 logo

I’ve been trying to take how I see my role at Microsoft and distill it into a single idea, perhaps even a single word. The term “Change Agent”, which appeared all over the place in early issues of Fast Company captures a lot of what I’m trying to express, but it feels sort of clumsy and doesn’t have that summarize-a-big-concept-in-a-single-word oomph that “Evangelist” has.

Luckily for me, my friend Andrew Burke was reading an editorial in Penny Arcade which had the perfect word:

What Microsoft needs badly is a shaman. They need somebody who is situated physically within their culture, but outside it spiritually. This isn’t a person who hates Microsoft, but it’s a person who can actually see it. I can do this for you. Give me a hut in your parking lot. I will eat mushrooms, roll around in your cafeteria, and tell you the Goddamned truth.

That’s not bad. There are a number of ways in which “shaman” might be more applicable than “evangelist”.

Family photo where everyone except one kid is dressed in their Sunday best; one kid us dressed like a biker/metal dude.

For starters, I am situated physically within Microsoft’s culture, but in many ways I’m outside it spiritually. This is thanks to the fact that I’m a mobile worker and don’t have a cubicle within Microsoft’s offices and to my manager John Oxley’s efforts to keep me from getting too deeply entrenched within the culture. I was hired partly for my outsider’s perspective, and for me to be effective, I need to maintain some of my “outsideness”. This perspective makes me able to do or see things that a hardcore Microsoftie might not consider (such as Coffee and Code) or perceive (such as the rise of the iPhone, while Steve Ballmer said that “There’s no chance that the iPhone is going to get any significant market share”).

"Mediator" photo: guy in suit acting as a referee for two guys in suits arm-wrestling

Unlike religious evangelists, shamen are mediators. While an evangelist’s communication is typically one-way, from the supernatural to the people, the shaman not only speaks on behalf of the supernatural to the people to influence them, but also on behalf of people to the supernatural to influence it back. If I am only evangelizing to developers on behalf of Microsoft, I’m only doing half my job. I also need to evangelize to Microsoft on behalf of the developer community.

When I joined Microsoft, a number of my friends suggested that I’d be good at changing the company from the inside. I think that that task is better left to the people who either develop its technologies or strategy; as an Evangelist – er, Shaman – I am better positioned to change the company from the outside. Think about it: a good chunk of what makes a platform is its developer community; without it, it’s just sits there. Without their developer communities, Windows wouldn’t have become the dominant desktop system, Linux wouldn’t have become the dominant web OS and the iPhone would be another Nokia N-Gage. Developers shape the platform just as much as the platform vendor, and they do it best when they have a conduit to their platform vendor – a shaman.

Package for the Nintendo game "Captain Planet and the Planeteers"

For some religions, the position of shaman is also an ecological one, and as a developer evangelist so is mine. According to Wikipedia, some shamen “have a leading role in this ecological management, actively restricting hunting and fishing”. I am charged with making sure that Canada’s developer ecology is a healthy one; in fact, when I was hired, I was told that I was hired “for Canada first, and Microsoft second.”

A healthy, thriving developer ecosystem is good for the field, which in turn is good for Microsoft. As a developer who likes to participate in the community, I have an active interest in keeping the ecosystem healthy, and a Microsoft that contributes positively to that ecosystem is a good thing. The nurturing of ecosystems isn’t covered by evangelism, but it certainly falls under a shaman’s list of tasks.

Wide-eyed LOLcat hiding: "Bad trip kitteh wishes furniture would just stay in one place."

And finally, the idea of eating mushrooms and rolling around the Microsoft cafeteria is intriguing. I doubt that they’d tolerate me playing my accordion while high as a kite, wearing nothing but body paint and assless chaps, rolling all over the salad bar and smothering myself with cottage cheese. It is an amusing idea, though.

Categories
Uncategorized

“Canada’s Next Top Model View Controller” Presentation at Metro Toronto .NET User Group Next Thursday

This article also appears in Canadian Developer Connection.

Canada's Next Top Model (moose) View (Lake Louise) Controller (beaver)

If you’re going to be in the area of downtown Toronto next Thursday, May 28th, you might want to check out my presentation, Canada’s Next Top Model View Controller at the next Metro Toronto .NET User Group meeting. I’ll be talking about the ASP.NET MVC Framework, Microsoft’s answer to MVC frameworks like Ruby on Rails, Django, CakePHP and Catalyst. As is my stock in trade with presentations, this will be informative, enlightening, entertaining and just might feature a rock and roll accordion performance.

The presentation takes place Thursday, May 28th at 6:00 p.m. at the Manulife Financial Building (200 Bloor Street East, Toronto, between Church and Jarvis – use the entrance on St. Paul Square). Admission for the presentation is free, but you have to register, and as of this writing, only 24 tickets remain.

For more details about the presentation, visit the Metro Toronto .NET user group site.

Categories
Uncategorized

Muscle March: Weirdest Videogame of 2009

I think we’ve got an early contender for the title of “Weirdest Videogame of 2009”: Muscle March for the Nintendo Wii. As if the game weren’t weird enough, the trailer below ramps up the weirdness by presenting it in that oh-so-Japanese style with epilepsy-inducing jump-cuts and a hyper-enthusiastic Japanese TV announcer:

[Found via Waxy.org.]

Categories
Uncategorized

Toronto Coffee and Code: Returning May 29th

This article also appears in the Coffee and Code blog.

Coffee machine embedded in "tower" computer enclosure: "Toronto Coffee and Code Returns Friday May 29th!"

I’m a bit swamped with work and other things, so the Toronto Coffee and Code events are taking a hiatus for a couple of weeks. Worry not, it’s a temporary thing, and in a couple of Fridays – May 29th, to be precise, Coffee and Code will make a triumphant return, all phoenix-like, to the Dark Horse Cafe at 215 Spadina on Friday, May 29th from 11:00 a.m. to 6:00 p.m..

Categories
Uncategorized

Videos from the 2009 RSA Conference

This article also appears in Canadian Developer Connection.

rsa_conference

The 2009 edition of the RSA Conference, the biggest and best-known cryptography and information security conference, took place last month in San Francisco. Each year, the conference has a theme based on or relevant to crypto or infosec, and this year’s theme was Edgar Allen Poe (previous themes include the Navajo Code Talkers of World War II, the secrets of the Mayans, Mary Queen of Scots and Alan Turing).

Adam Savage and Jamie Hyneman at their keynote at the 2009 RSA Conference

The people behind the conference were kind enough to post video of the keynotes, which I found thanks to a pointer from TechNet’s Jeff Jones, author of the Jeff Jones Security Blog. You can click on the links below to watch the videos. Jeff strongly recommends that you do not miss the opening ceremony segment of the “Day 1 Keynotes” video, and I don’t have to tell you that you should catch the closing keynote, featuring Adam Savage and Jamie Hyneman of the popular nerd television series Mythbusters:

Categories
Uncategorized

The Story Behind “Keyboard Cat”

Another internet meme made the big time today – today’s edition of CNN’s “American Morning” ended with anchor Kiran Chetry announcing that they would be “played out” by “Keyboard Cat”. In case you haven’t yet seen them, Keyboard Cat videos all follow the same formula:

  • They all have the name “Play Him/Her Out, Keyboard Cat”
  • They begin with a segment in which someone humiliates or hurts himself or herself
  • They cut to a strange video featuring a cat playing a tune on a cheesy home keyboard

This is my favourite Keyboard Cat video, in which a guy learns an important lesson in nunchuk safety:

This one, featuring a guy whose parents are trying to convince him that it’s bad idea to broadcast his meltdown online, is a close second:

And now, we can find out about the origin of Keyboard Cat and how he turned into an internet meme, thanks to this story in the Los Angeles Times.