Tuesday, December 16, 2008

Your Toast

I like toast. Because I like toast (a lot) I never skimp when I make the bi-yearly trip to Target or Sears to upgrade my middle of the price range toaster. I get the best my kind of money can buy, since, as I stated before, I like toast (a lot).

I don’t ask a lot from my toaster. At least I don’t THINK I do. I place slices of bread of varying shapes, depths, widths and heights in, drop that handle down and wait, expecting one thing as a result: hot, cooked bread. I can of course, select from a spectrum of desired “darknesses” before initiating the sequence, but my expectations remain the same. That based upon my one initial selection that I’ll soon be munching on something warm, brown (or black) and crisp. Simple machine really.

Input: Bread

Output: Toast

I accept that for my kind of money that the lifetime of the apparatus is limited. I also accept the responsibility of selecting the darkness of the toast. I don’t even care how it gets the job done. Electrically heated metal coils are just as fine to me as would be some ultra-sonic, dark matter radiated model circa 2027. I really don’t and shouldn’t care. All I want is toast. That’s my target, that’s my goal.

Of course, this article, like all others on this site, isn’t really about toast. It’s about markup and user interface implementation. So, now that I’ve seeded your mind with visions of tasty, butter melting goodness, let’s get to the point of the analogy.

The important part of the analogy above has to do with me not caring. I said I didn’t care about how my bread gets toasted, and I don’t. I know who the target audience is for the bread (me) and I know how it’s going to be used (I am going to eat it standing up in front of my kitchen sink because I am usually massively impatient and hungry if I have chosen toast as a meal option).

The core point is that I used to have the same attitude toward markup (XML/HTML/CSS, you know the roundup) as the toaster has toward my toast. That’s because I used to think that markup was the EASY part of web development. Anybody and their second cousin can and does write HTML and CSS. In comparison, writing all that Perl, PHP, Java, SQL etc. (showing my age here) seemed infinitely more complex and demanding of my attention than the piddling afterthoughts and minutiae of defining what the HTML and CSS that the output (ultimately) of the application would be. So there, there it is, the core defining and most telling sentence of the article. I had knowingly ceased to care what the output of the software I was creating was. This is, in short, BAD.

Of course once I started examining this attitude for more than 30 seconds I awoke (matrix like) to discover that my own mindset was stuck INSIDE of the toaster. And believe me, your toaster doesn’t care anything about you or your toast. It just toasts.

Now, in fact, if we want to stay true to our analogy, this KIND of not caring is the exact opposite of the kind of not caring I had originally mentioned. What I was originally referring to was my not caring about how the toaster got its job done. Remember, I just wanted toast. This is about role reversal and expectations. This is about the interface and the machine that produces it. This is about services and consumers and that thing (the interface) that sits between them. See now how all this toast talk is suddenly relevant?

That first kind of not caring is the kind that the users of your software have. But in today’s multi tiered, ultra distributed, service oriented and mashup addicted world we really need to bring clearer definition to a couple oft interchanged terms: users and consumers. I’ll attempt to do that in just a minute.

That second kind of not caring is the kind of thing that crept into mine and many other developers minds over the course of the past decade. The reasons for this are too personal and numerous for me to try to elucidate here. Suffice to say it all had something to do with the expectations of what exactly the output of a web application was supposed to look like and who the true audience was that would ultimately be consuming it (web browsers or other human beings). I’ll connect this point to the previous one moving forward as they are so intimately tied together.

That’ll need to wait until the next post though. I am getting hungry, be back in a minute….

No comments:

Post a Comment