Obligatory comment on X-UA-Compatible

This strikes me as a continuation of those ‘Best viewed in $browsername $version’ badges, that irritate me beyond all measure.

I will use what version and what browser I choose, to consume your content. If I choose to have the text chiselled out onto the back of a passing badger, that is *my* choice.

At the moment I’m suffering my way through an enormous web application, targetted at IE7 only (as it’s an intranet application and we are currently using IE7), but I would not dream of testing only in IE7, as I realise that time progresses (shocking, I know), and as IE crawls more and more towards standards compliance, I’m hoping that one day the playing field will be level enough for me not to have to test in n+1 browsers. Things looked fine in IE7 that looked skewiff in Safari3, which told me I’d got something wrong. I don’t want to be lied to by a browser, so being tied to IE7 forever sounds like my idea of hell.

It wouldn’t be quite so bad if IE8 went for ‘latest-version’ by default. That way, things can progress naturally. I *can* see the appeal of being able to specify IE7 mode if you have to (if you’ve hacked together something terrible in a hurry and can’t fix it before they rush out IE8 asap) to buy you a little more breathing time if it looks like trolls toenails in IE8. But we don’t want to get stuck in 2006, do we?

What saddens me most is the fact that it seems to be tearing the webdev community apart. There are some quite personal attacks going on and it’s sad to see WaSP eating itself. I’m sure it will sort itself out, we’re all adults.

I think the real problem is not necessarily the browser developers, it’s the web developers themselves. WaSP and co. are more or less a tiny minority of idealists (I’m not knocking idealism, I suffer terribly myself). Most web developers are cowboys. Yes, sweeping generalisation, but if you look at the majority of sites you get a good idea of the level of standards-awareness that there is out there. And yet, that’s not necessarily the fault of the developers either. I was consulted on a web project and mentioned accessibility. I got the response of ‘but who enforces that, do we have to do it?’ from the person commissioning the site. With attitudes like that, there is no real incentive to push for standards compliance in projects. It’s always quicker to cut corners and knock something together that displays and behaves okay in IE6 and doesn’t suck too much in IE7. Gets the job done, doesn’t it?

Have depressed myself with that, I always find it delightful to discover that some people *do* actually care about doing things properly and cleanly. I evangelise about nice clean code, use of CSS, maintainability, accessibility and basic sanity, but sometimes I feel like Scary Bag-lady haranguing passers-by.

What the web standards community *really* needs to do is to reach out a bit more, beyond the elite crowd, to the bums-on-seats level of web developer. Enthuse and fire these people with your message, get corporate penetration with the benefits of standards compliance – make it a *standard* approach to web development.

Only then, can we win the browser war.

  • Share/Bookmark
Posted in Web Development, thoughts | 1 Comment

Why User Experience Should Matter

Much has been said on this topic, by smarter people than me. I won’t attempt an educated version of the topic (as I’m not actually educated in that subject area other than by experience), I have nothing backing this rant other than an ability to empathise with end users and a burning need to Make Things Better.

No-one actually enjoys the daily grind of their job, all the piddly little repetitive actions they must complete in between the bits that keep them turning up to work each day. As a so-called systems developer, I’m in the lucky position to be able to smooth out process-wrinkles, replacing tedious manual tasks with things that the Computer can do for them. A large part of what I do is listen to users complain about their job and the tools they have to do it with. I sort the complaints out into Things I Can Help With, and Personality Issues.

I genuinely care about the user who has to wait 37 seconds for a badly-designed screen to load – I can *feel* how annoying and unproductive that is for the user. I can *understand* how much happier they would be doing their dull repetitive job if they didn’t have that extra annoyance to contend with. So I fix it.

I’m not, and never will be, a fantastic programmer. I don’t actually *want* to be, truth be told. It’s a job I’ve blundered into and feel a constant fraud as I know *genuinely* fantastic programmers. I’m too squeamish to be a doctor or similar – there are certain words I can’t even *hear*, never mind look at. So I play doctor to computer systems. That involves a certain amount of basic programming, and while I’ll never be a luminary, I get by.

I find it difficult to harden my heart against users when they complain about something that ought to be fixable. My view of IT is that we provide the means for other people to do their jobs, and where there are problems, we are the wizards that make the problems go away. We don’t provide direct financial benefits to the company – we don’t sell things and make money. Our worth lies in our ability to make the rest of the business more profitable, and part of that is keeping users happy.

Common sense, and several surveys, have shown that happy users are more productive. I’m generally happier when my computer doesn’t crash several times a day. Even if the problem is more low-grade than that e.g. an application freezing a few times a day and having to be restarted, it still has an impact on how a user feels about doing their job. Yes, it’s easy to restart an application, or reboot the computer, or remember that the printer can only print one copy of a document so you need to click print as many times as you want documents. Individually incidents like these are small and the symptoms are easily treated, but while the underlying cause isn’t addressed, the user feels like they are never going to get better.

I appreciate that IT problems are complicated and may involve a fair amount of trial and error to resolve them, and it may be that the solution to one problem is the cause of another. But that’s why they pay us more than the man who puts the paper in the photocopier – we are paid for our knowledge and experience at solving these problems. Otherwise, it could just as well be an office junior answering the phone and saying ‘just log off and log back on again’. Same result, but much cheaper.

At the end of the day, the IT infrastructure exists to allow the users to make money for the business. Therefore if user experience doesn’t matter to you, you shouldn’t work in IT. Go do something else instead and content yourself with reading BOFH.

  • Share/Bookmark
Posted in Development | Tagged , | 2 Comments

Outlook nagging reminders

For several weeks now, Outlook has persisted in reminded me about reminders I have already dismissed and I kept dismissing them only to be reminded again. I finally got annoyed enough to do something about it.

Close Outlook
Start/Run
Type “outlook /cleanreminders” (without the quotes)

This doesn’t always cure it but it sure helped me.

  • Share/Bookmark
Posted in tips | 1 Comment

Inexcusable Ignorance

I realised the other day, as I professed ignorance to the whereabouts of Edmonton, that there is seldom an excuse for ignorance these days, if you have any kind of Internet connection. A few moments with the web browser of my choice and not only would I know where it was but I could also learn about its history, town flower, principle attractions, grazing rights and almost anything else I could care to learn. Including a reasonable journey plan should I wish to see for myself. My ignorance was my own fault and the fact I did nothing to remedy this leaves me vaguely guilty.

My forebears would have swooned at the information available for the mere effort of searching. It’s not even as if you have to actually perform the search yourself- typing a few choice words in a box does not involve effort – it’s all done with computers these days you know.

I often feel, at work, that I’m mocked slightly for my keenness to get to the bottom of a problem, to find out what the cause is and squish it once and for all. I flex my google-fu at the slightest provocation in order to find out what exactly an annoying error message means; instead of telling the user to close the application and open it again.

There is just no excuse for being ignorant of things these days. Not that you have to remember everything – I outsource most of my memory to Google these days. I’m always reminded of the wonderful Feynman anecdote ‘map of the cat’ where he is incredulous that biology students bother to memorise the internal structure of a cat when it can be looked up in moments. I totally understand that sentiment, and generally feel it’s more important to get the gist of something rather than remember every little detail (unless you’re the surgeon performing an operation on my person, I suppose!). What I mean is, understanding is more important than being able to parrot back facts and figures. If you can’t tell me *why* something is true, I won’t be impressed when you say it is.

I will be forced to go find out where Edmonton is, it’s like a nagging toothache.

On a completely separate, but bitterly related, note, I give you How Email Works – a child’s view of the internets. Well, my inner child’s view, anyway.

  • Share/Bookmark
Posted in thoughts | 1 Comment

Optional Directions

I’ve just been sent a copy of the contact list for our major client. Listed within are instructions as to how to navigate the automated switchboard to reach various people.

As some of you may know, I’m in the throes of redesigning the software our company uses to manage its contracts/contacts/operations and stuff. What didn’t occur to me was to build in some facility for storing pathways through switchboards. Maybe I’ll just make the telephone field a bit bigger…

It seems to me that I’ll never be done designing, never mind building – there’s always something that no-one thought to tell me, or that I didn’t question sternly enough what I was told.

This is one of the thoughts that stops me from being self-employed: I’d never be able to get the full picture out of the users, not being fully immersed in the situation, so I’d never be able to design something that matched exactly to what is required and I’d be so fearful of making a shoddy system that I would be quite unable to produce anything at all for fear of it being unhelpful. That tells you too much about me, I suspect.

Having said that, I did spend some time working on a system for a local council, and managed to conquer my fear of producing Bad Things enough to deliver a system that seems to have made them happy. It would be too much to expect *two* such happy outcomes from freelance work..

Maybe I’m just too much of a perfectionist, but everywhere around me I see the results of bad software causing people to have to do daft things and I’d never want to do that to anyone. The infamous doom-system that I babysit here has a screen that I can’t even begin to fathom how to use, and apparently you can’t add more than one entry at a time, you have to close the screen and go back in every time. Personally, that would make me stabby if I have a pile of 50 things to process, but apparently ‘it’s always been like that…’ so it’s okay. No damnit, it’s not okay. If we put up with things like that then standards won’t ever improve.

I learned today that one of the more pleasant and amusing members of our company is off to fulfil her dream of working with her twin sister on her glassworking hobby and hoping to make a business out of it. I’m jealous beyond all measure.

  • Share/Bookmark
Posted in Development, work | Leave a comment

skills for the modern world

Human beings have always sought to make sense of their environment by labelling things (even if it was just different shades of “ugg” for a while). The modern (don’t make me say Web 2.0) web projects are popular, mainly because they give us a chance to label things for ourselves. Everyone’s understanding is different, and the same symbol will usually conjure up a whole range of labels, depending on the observer’s own experience of that symbol. With this is mind, it is necessary to agree some common ground, and a dictionary of agreed associations and meaning for a particular symbol.

I look after a quirkily-written application at work, where the symbol for ‘click here to go into the details page from the summary page’ is a dustbin. Yes, a dustbin. The (clearly only *almost*) obvious symbol for deletion/discarding/removal is actually the button you need to click to go into the screen to deal with the item on the list. This actually causes me pain when I click on it, as my brain is screaming no from the symbol-recognition point of view, while also telling me that I know how the button works and it’s safe to click on it. This kind of conflict makes it very difficult for users to use the application, as the brain ‘forgets’ the real use of the button and sees only the symbol.

Choosing appropriate representations of a particular concept or action is an often-underestimated skill: it requires the empathy to put yourself in the position of your user and what they might have been exposed to and how they might classify the action they need to take. It’s all very well that we have absorbed certain standard symbols for certain concepts and actions, but what if the user has not been exposed to these symbols? I found myself trying to explain how to save a file in Word, to someone whose computer didn’t have a floppy drive. Why is the ’save’ icon a disk? Why would she associate saving files, with a floppy disk? What’s a floppy disk? This is an example of a symbol that made sense at the time, and users have become accustomed to seeing it, so it still makes sense as it is familiar. But to a user who does not understand the symbol, it is no longer possible to grasp it even in a physical metaphor sense, as the physical method has changed. Saving files no longer ‘looks like’ floppy disks.

Like it or not, Microsoft have had a considerable influence upon the way we develop software interfaces. Through their sheer dominance, they have exposed most computer users to their way of doing things, so that any other way seems ‘wrong’ and ‘difficult’ for a user to grasp. If you want to write an interface to a word processing package, you had better make sure that it functions as the user expects it to i.e. like Word, or it will have to be *really* spectacular to compete. I wouldn’t say that this is necessarily a bad thing for those of us who have to support and train users!

But having a single driver of human interfaces with computers is probably not healthy. Having a single commercial company in charge of human-computer metaphors ties in the majority of users to doing things the Microsoft way, as anything else doesn’t fit their trained knowledge of symbols.

Part of the problem is superstition: the symbol *becomes* the thing, rather than a representation of the thing. In my experience, the user doesn’t think about how and why they are performing an action, and what the mechanisms are. The number of times I’ve been told ‘I just click on this button when I’m done’. When questioned as to what the button is supposed to achieve, they don’t know. Such brittle understanding isn’t solely confined to computer use, I know, but it is one of the things that makes innovation in interface design so daunting a task. Yes, you can come up with fantastic and nifty ways of representing what the user should be doing, but unless it translates on some level to something they are familiar with, you will have an uphill struggle.

Most of the problems I get with the Quirky Application are through misunderstanding of the interface – symbols are misused, buttons are in odd places and perform strange functions. I don’t blame the users (even when laboriously cleaning up the sorry state of their data), I don’t really blame the developers (although it might not sound like it sometimes, when I find some of the more interesting features)- user interface design is a tricky skill to master, especially when you don’t have the R&D resource of a software monolith.

Where the whole social web software concept is helping, is that it is training users to think about what something represents and how to summarise it. Think about tagging: what you are essentially doing (if you are a responsible tagger, that is) is boiling down an entire page/site into just a few words that will represent that article/site. You have to pick words that other people will think of and might be searching for, and you have to think of as many possible alternatives that describe the same thing. As an English teacher I would be jumping for joy about this concept: a chance to demonstrate that a good grasp on language and synonyms is useful for *trendy* things! It is finally cool to flex your vocabulary.

What I like most about the phenomenon of tagging and collaborative works is the idea that it gives everyone a little more insight into how other people might be thinking. I’d be really interested to put up a site full of common and proposed user-interface symbols and see what they get tagged with. Maybe we can collaboratively brainstorm our way into a new era of symbols.. I’ll get right on that.

  • Share/Bookmark
Posted in thoughts | Leave a comment

leaning towards learning

As a precocious (their words, not mine) 10/11 year old, I used to be given the books of my peers to check spelling tests, and was assigned as mentor to a couple of the less able members of my class. I wonder how Daniel is getting on these days.. I also have some memories of listening to the really young ones read, in the reading area of the primary school. I’ve no idea how that would have come about, as surely I’d have been in lessons, but the memories are there nonetheless.
When I was studying for my A-levels (although studying may be a bit too strong a word) I spent a good many of my free lessons helping teach science lessons to the younger kids. Our school was experimenting with something called ‘CASE – thinking Science’ which I don’t remember much about except that I approved of the techniques of stimulating thinking through practical work. I thoroughly enjoyed both the preparation and the delivery of each lesson, although I’m exceedingly grateful I never had to help with the class my brother was in. I also ended up actually teaching a lesson, as the teacher had gone off sick and the supply teacher taught English, not this scary science stuff, and basically left me to it. At 18. It went okay, despite my fear of the 14-year-olds.

For my work experience/community service, at more or less the same time, I was placed in a pre-school group, helping with the children. Mostly playing, if truth be told, but still educational playing, honest. Mmm Duplo ™.

Several years on and I found myself back in school, albeit as a lab technician. The school was a lot ‘rougher’ than the mildly genteel secondary school that I attended personally, and it was a bit of a shock to see how little respect the children had for certain teachers. Mind you, kids can certainly tell if you are confident or not and will take advantage of any lapse in discipline. One poor Indian lady, aged about 60 or so, was so cowed by her classes that I could scarcely hear myself think in my prep room. I resorted to standing at the doorway and glaring until they got the message. Poor Indira.

You would have thought that this would have put me off teaching, and to a certain extent, it has. I don’t think I would ever go straight to secondary school teaching. I think that would be something you have to work up to once you’ve found your feet.

I do, however, want to be a primary school teacher, in Scotland, on a remote island. Which seems a far cry from where I am now – working in Basingstoke, writing a ridiculously-ambitious piece of software, living in a ghastly town, in a cookie-cutter house. I long for the boundless skies and breathtaking scenery of Scotland. I long to do something useful, and I love teaching: whether it be demonstrating how to use some software, or explaining how something works. The joy of passing on understanding to another person is beyond compare.

Oh I know it’s not always a joyous experience. Nothing is. Many’s the time I’ve left a meeting frustrated because I’ve not been able to make myself understood. I assume that’s why some training is involved. It’s not enough to know your subject, you must be able to inspire, provoke and entertain your audience. I’m thinking this is where my drama classes might come in handy.

My mother trained as a primary school teacher, and did teach for many years. I find it weird that I want to follow in her footsteps, when we’ve disagreed on so many subjects in the past. But it’s not necessarily her that has inspired me. If I had to blame anyone for even putting the thought into my head, it would have to be the late, great Richard P Feynman. If I could only learn to emulate his talent for breaking the problem down into the simplest form, I would be a happy lady. I believe that anyone can understand anything, as long as the presentation is suitable. He had a knack of finding a common ground that most people could meet on.

I was lucky enough to be taught by a wonderful teacher at secondary school. His name was Pete Kaufman, and I’ve heard that he has since died. I mourn his loss, not only for myself, but for all the people who will never have a chance to be taught by such a truly great teacher. I don’t think many of us realised just how good he was. I certainly didn’t at the time. He was always the eccentric one, humble and kind, slightly zany, always had time to talk something over. He didn’t come from the traditional educational conveyor-belt – he did his chemistry degree through the Open University, which I think caused a few of the staff to look down on him slightly, but he did have the knack of making a potentially gnarly subject relate to everyday terms that we could understand. That is a priceless skill, and I only realise later how precious he was. Mr Kaufman, I may have disappointed you with only a C at A-Level chemistry, but you’ve left a far more profound mark on me than a grade could ever measure. I want to be like you.

  • Share/Bookmark
Posted in thoughts | 2 Comments

Entering NULL into table using Enterprise Manager

For those occasions when you are manually editing data and need to replace what you are removing with a NULL. The keystroke is control-0

The number of times I’ve googled for that, as I can never remember it..

  • Share/Bookmark
Posted in SQL Server | 1 Comment