Saturday, February 25, 2006

The Slow Demise of the Page

The world wide web was designed with a powerful metaphor: pages. It's powerful because anyone can grasp the idea in an instant, and at the same time its scope encompasses no less than the entirety of accumulated human knowledge. Of course, we already had pages for centuries on paper. The web's contribution is not its concept, but its scale; I estimate that it has already expanded the publishing privilege by three orders of magnitude, and I believe it's got at least another two up its serpentine fiber optic sleeve.

Ok, so the web is breathtaking, no argument there. The page metaphor has been wildly successful by any measure, except maybe one.

I saw my first cgi script in the spring of 1995. It was a page (there's that word again) that displayed the current date and time whenever it was requested. Some alpha geeks were huddled around a mac on the showroom floor of the campus computer store where I worked part-time. I was not yet an alpha geek, so the significance of this demonstration was lost on me. Of course the true ramifications of this development are so great that we'll have to wait a generation or so for the historians to sort it out. The browser had become a medium for delivering software instantaneously anywhere in the world.

Web applications are amazing. I owe my career to them. Incidentally, I also owe my blog and the editor I'm writing this in to them. The trouble is it's just so darn hard to shoehorn a software application into the page metaphor. Those of us who develop web applications are so used to taking this paradigm for granted that we forget how weird it is until we have to explain it to someone else.

At long last, change is in the air. With the advent of AJAX, the idea of a web application as interconnected pages is going to become rather antiquated. The correct way to think of a web application is as a DOM that can be updated in whole or in part by events from both the client and the server. In this brave new world, a URL is no longer a “location,” but a message from the client to the server.

Yes, the interface of the application is still a document (that's what the “D” in DOM is for), but the document is just an abstraction that permits you to describe a user interface in plain ol' text. Ok, maybe it's still a little strange, but it's a breath of fresh air for developers and a sea change for the world wide web.

Tuesday, February 21, 2006

On New Ways to Get Hired

I just saw this story at 37Signals about how someone recently created a blog all about Gawker in an effort to convince Gawker to hire him. I expect this trend to thrive, and I hope that it will.

Résumés and the traditional job interview are a terrible way to learn about someone. What businesses and prospective employees really want is to know each other, and everyone knows the standard hiring tools are pretty thin and pretty fake. That's why it's so much easier to get a job when someone introduces you. There is tremendous value in the relationship that a referral represents. Human beings are experts at relationships (even if it doesn't always seem that way). Have you ever hated someone who looked good on paper, and even interviewed well? I have. I believe there is a better way.

The Information Age offers us some nice alternatives. I'm currently a lower-tier committer on an open source project called Sakai. I've been working with people from around the country and around the world for close to two years. Some of the contributors are volunteers, and some (like me) are paid by their institutions to help out, but no one has to pass an interview to start working. Let me tell you something: the cream rises to the top. There are 1,318 people on the developer mailing list, and if you asked everyone to name the best 1%, the same names would appear again and again. When my institution came up with some extra money for new staff, I emailed the person I wanted the most and offered him a job. Of course we still have to negotiate the details, but I know his personality and I know his work, and I can bring him into the team with complete confidence.

The rise of web publishing also plays a huge part in this new way to get hired. If we know how to write, we can learn a lot more about each other than we can get from a résumé. And the best part is, we are free to express our true selves online, not the perfect-employee version that we pretend to be in an interview. From now on, I hope anyone who hires me knows I'm mercurial, distractible, idiosyncratic, and a dozen other adjectives you would never find on a job application. My wife knew all those things about me before we got married. She still loves me, even!

This new brand of getting-to-know-you doesn't only extend to the prospective employee. Increasingly, it is possible to learn enough about a company to get a clear idea of whether you will fit in there before you ever approach someone there. There are around a hundred employees at ThoughtWorks who keep a weblog. If you follow for a couple of days, you will feel like you've actually worked there for a while. It is such a refreshing change from the galling bullshit that passes for information at most corporate websites.

Lately I've been lurking on the Ruby on Rails core developers mailing list. I don't have anything to contribute just yet, but I might in the not-too-distant future. Every time a fellow by the name of Michael Koziarski posts something on that list, I think "Holy crap, that guy really knows what he is talking about." You can't fake this stuff. I went looking for more information about his company , because anyplace that hires people like Koz has got something going for it.

In the 37Signals story cited above, they suggest that the blogger-turned-Gawker remained anonymous while he was gathering the necessary attention to land a job. I don't believe it's necessary to be covert. I think it's perfectly acceptable to make your intentions known. It's like applying for a job, but instead of insisting that they make up their minds about you right away, you take as much time as you need to make it self-evident that you should work there. If you don't make the grade, then why not improve yourself until you cross the threshold?

I like the new way of landing your dream job. Instead of pretending to be what your employer wants, you use all the information at your disposal to become what your employer wants. It's elegant in its simplicity: you see the path, you follow it.