I must admit I’m pretty passionate – some would say obsessive – about some things. And if you read this blog regularly you know that one of those things is web standards, and I consider it a privilege to be involved in the future of the web.
So it upsets me when otherwise amazingly talented people just don’t get why we’re here. I speak of David Heinemeier Hansson’s reponse to Dan Webb’s article about Ruby on Rails. His comment “I?ll trade purity in HTML for purity in .rhtml any day of the week” is unhelpuf at best and downright reckless at worst.
Jeremy Keith agrees, and says this somes down to some pretty fundamental questions. It’s true, this does show up an attitude with some developers who care more about themselves than the end users. But, let’s be honest, who are we doing this web thing for?
SUre, we’re doing it for ourselves – I love what I do and am very glad I have the opportunity to be paid to do it. We do it for the companies that hire us, after all they are the ones who give us money to do what we love.
But no matter what business you’re in, if you create websites they fundamentally you’re doing it for them out there – call them visitors, eyeballs, potential customers or whatever you like – they are the ones that matter.
I help run a community site, which is all about the people that participate in the community. I run an e-commerce site, which is all about the customers that come to buy. I am developing an informational site which is all about the people that come there for information.
No matter what site I am involved with, I try to remember that the reason I’m doing it, every line of code, every pixel, is for the people who will be using it. Fortunately, I’m constantly reminded of that as I walk around my workplace and see websites and intranet applications I’ve written open on people’s screens. When was the last time I used these systems? When I built them, but these people use them every day. How could I not put them first?
So I’m disappointed with David’s comment, although I do believe he means well. We need to thing more about the end users than we do about ourselves as developers. Sometimes that will mean causing us extra work (form validation, anyone?) but it’s always the right thing to do.
Here’s a little analogy I thought of earlier:
Pieman: Good morning, sir, can I help you?
Customer: Mmm! Those pies look lovely! How much are they?
Pieman: Thirty pence each, or four for one pound.
Customer: Very reasonable value, I think. So what’s in them?
Pieman: Well, the usual stuff.
Pieman: Meat, vegetables, that sort of thing.
Customer: Ah, right. What sort of meat?
Pieman: Just … meat.
Customer: Lamb? Beef? Chicken?
Customer: [starts to get nervous] Erm, rabbit? Come on, I’d like to know. Those pies sure look mighty fine, but I’d like to know what I’m eating if I buy them.
Pieman: OK, it’s rat.
Pieman: Yes, rat.
Customer: But you can’t sell pies made of rat meat!
Pieman: I can, and I am. In fact I’ve already sold over twenty of them this morning alone.
Customer: Good grief, that’s horrible! Why are you using rat meat, surely some official government authority will bring charges against you?
Pieman: Quite possibly, but to be honest I don’t care. Rat meat is free, easy to obtain, and easy to cook.
Customer: What? You’re just plain mental, you are.
Pieman: I may be, but in this game whatever makes my job easier is the right thing to do. Now, how many pies would you like?
[Addendum} I know what people will think, so I have to set their minds at rest. I’m not a masochist, and I don’t like to make my life unecessarily complicated. I’m all for easing the burden on developers, but not when it’s at the expense of the quality of end users experience.