Categories
Geek It Happened to Me Toronto (a.k.a. Accordion City)

“employment.nil”

"employment.nil" posterIn case you’re:

  • a programmer who works with the Ruby programming language
  • looking for work
  • available to get down to Toronto’s “West Queen West” neighbourhood soon

you might want to do what I’m doing in a couple of minutes (as of this writing): heading down to the Gladstone Hotel (1214 Queen Street West, at Dufferin) to get a look at employment.nil, which bills itself as “the first Toronto Ruby job fair”.

Organized by the fine folks at Unspace, who are also organizing the upcoming FutureRuby conference and FailCamp (where I’ll be the MC), employment.nil isn’t your typical computer programmer job fair. No computers are allowed! They’re going to be strict about it – even the use of iPhone applications is verboten. Bring printouts of your resume and some scratch paper to do “live coding”. I’m going to bring my mini-whiteboard and dry-erase markers.

See you there!

Categories
Accordion, Instrument of the Gods Geek It Happened to Me Toronto (a.k.a. Accordion City)

The “Make Web Not War” Accordion Video

One of the nice things about my job is that they actually ask me to incorporate the accordion into it. Yesterday, we shot this video featuring me on accordion promoting the upcoming Make Web Not War event happening next week right here in Accordion City. Think of it as another of my contributions to Accordion Awareness Month:


MAKE WEB NOT WAR – VIDEO FOUR – TORONTO from The Biz Media on Vimeo.

There’s only one mistake in the video – “accordion” is misspelled. If you’d like the follow me on Twitter, the correct ID is AccordionGuy, not AccordianGuy.

For more details about Make Web Not War, see:

Categories
Geek It Happened to Me

A Busy Day

This article also appears in Global Nerdy.

It’s a busy, meeting-filled day for Yours Truly down at the local headquarters for The Empire. Here’s a (slightly edited) photo that I took at our big Evangelism team meeting around 3:30 this afternoon:

battle_station_plans

Categories
Accordion, Instrument of the Gods It Happened to Me Toronto (a.k.a. Accordion City)

Playing the National Anthem at Tomorrow’s Toronto Roller Derby

Poster for Toronto Roller Derby, May 30, 2009 - "Chicks Ahoy! vs Gore-Gore Rollergirls"

Tomorrow at the George Bell Arena in Accordion City’s west end, I’ll be playing (and singing) Canada’s National Anthem at the start of the Toronto Roller Derby match between the Gore-Gore Rollergirls and Chicks Ahoy! I’m working on a rendition that respects the proud heritages of both Canada and roller derby.

Map picture

If you’d like to hear my rockin’ accordion rendition of O Canada and enjoy some roller derby (the motto is “Real Women. Real Hits. Real Heart.”), it’s all happening at the George Bell Arena (215 Ryding Avenue, in the “Junction” neighbourhood). Tickets are $12 in advance, $15 at the door and kids under 7 get in free. The doors open at 6:30 p.m. and the game starts at 7:30, which is when I figure I’ll be playing.

For those of you who can’t remember or don’t know the words to our anthem, here they are:

O Canada!
Our home and native land!
True patriot love
In all thy sons command.

With glowing hearts
We see thee rise,
The True North strong and free!
From far and wide,
O Canada,
We stand on guard for thee.

God keep our land
Glorious and free!
O Canada, we stand on guard for thee.
O Canada, we stand on guard for thee.

I’ll post my chord arrangements later.

And, as further enticement, here are the Gore-Gore Rollergirls:

The Gore-Gore Rollergirls

Categories
Geek It Happened to Me Toronto (a.k.a. Accordion City)

Toronto Coffee and Code Today! (with Slight Time Change)

Desktop "tower" computer with coffee machine built in

Yes, Toronto Coffee and Code returns today! It’s a day when I make myself (and by extension, Microsoft) very accessible by working out of a cafe and answering your questions, getting your opinions and sharing ideas. Once again, it’ll take place at the Dark Horse Cafe at 215 Spadina, near the lights between Dundas and Queen.

I’ve got some stuff to do at Microsoft Canada HQ in the morning, so I’m declaring tomorrow’s schedule to run from 1:00 p.m. to 6:00 p.m.. I might be there earlier, but I thought I’d give myself extra time in case traffic decides not cooperate. I’ll see you there!

Categories
Geek It Happened to Me Work

Mental Models, Mantras and My Mission

This article also appears in Global Nerdy. Like the previous article, it’s about my role at Microsoft and doesn’t delve too deeply into technology, so I thought it was suitable for a more general audience and decided to republish it here. Enjoy!

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
Geek It Happened to Me Work

Evangelist, Immigrant and Shaman

This article also appears in Global Nerdy. I thought it might be of interest not just to geeks, but also to people who are thinking about defining their roles at work.

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- ad 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.