Posts Tagged ‘front end’

A little bit of History

Monday, July 7th, 2008

User interfaces

I was programming before the IBM PC went on sale. But I have only ever worked on personal computers and microcontrollers. I bought my first computer in 1979. My Nascom 2 was built for me at Henry’s Radio on Tottenham Court Road in London by a man whose name I have shamefully forgotten. I have written software that has never made it out of my office and I have written software that is very public indeed.

I was first introduced to a computer at The Guinness Trust, somewhere in The City, when I was at prep school in London aged about 11 – I had little interest and no understanding. It wasn’t my favourite school outing (though I can’t remember what was my favourite school outing either).

I was next introduced to computers at school near Oxford where, in the head of maths’ office, there was a huge HP desktop calculator – I think it was an HP 9810A – it was the size of a large typewriter and had a tally roll printer. I would go in at lunch times, type in a tic tac toe program a sixth former had given me and play. It fascinated me simply because it was technical, and as a bit of a loner, its exclusivity appealed to me. But I felt no gravity.

I left school with one O level – and even that was a bit of a miracle. I had no interest in school whatsoever,An HP-25 programmable calculator it was as far as I could see a total waste of time. I went to work at Oxford airport as a trainee mechanic. Aircraft were fantastically cool. Eventually I decided to return to college to get more O levels – I had realised that being an aircraft mechanic all my life was not going to work. Then A levels beckoned, but not quite hard enough. Education was lost on me – I just couldn’t see the point. My mother suggested I did History of Art, but I wanted to follow my father and as far as I could divine he had done Zoology at Cambridge. But, even doing a subject that genuinely interested me there was just too much other stuff to do to waste my time on education. I friend of mine, Stephen Conlon, had the coolest calculator imaginable, a Hewlett Packard. It worked, as they still do, in RPN – Reverse Polish Notation. As someone who had consistently and intentionally failed any kind of maths, it made a kind of sense to me. I would endlessly load a moonlander game into it and, although it was not real time, break into a sweat trying to get the thing down safely.

On my twenty first birthday Stephen gave me a Sinclair programmable calculator. I had been jealous A Sinclair Cambridge programmable calculatorof his HP-25 for years. The calculator was temperamental and not in the same class as the HP, and it had an equals button, so it was not RPN but it was thrilling. It was also a bit of a pig to use, many functions had to be accessed by repetitive pressing of a button; as soon as the buttons started to wear these operations were fraught. But this birthday present was the first tangible evidence that gravity was forming.

Later I went to Oxford Polytechnic to study building design for no reason except I had sufficient An HP-33E programmable calculatorqualifications to get in and had figured that zoology, where my interest did lie, was not going to offer me much of a future. My uncle sent me an HP calculator from Chicago; I was aware even at the time that this was an important event. Like Stephen’s HP-25 the buttons were simply in a class of their own; as you pressed them down they clicked over centre. The thing exuded quality. In the second term we did an hour a week of computing as it was assumed that we would probably bump into some sort of computer, probably in the accounts department in the office when we left.

It was as if I had walked from a dark room into one filled with brilliant light. Someone had turned both colour and gravity on and the pull was irresistible.

I changed course to computer studies and threw myself into the parts of the course that I deemed important. Everything else simply got ignored. Cobol, maths and ethics were for other people, ethics simply because most people seem to need to be taught it (including, as far as I could see, the lecturer), for me they were part of my foundation. The subjects seemed to be neatly divided in line with their teachers – cobol was taught by a couple of dropkicks, maths – I don’t even remember. Fortran and assembler were taught by Geoff Tag, the second of three people who have totally changed my life by their input. Most people didn’t seem to get his classes, they were on the course to become cobol programmers at a bank or something. My time in Mr Tag’s classes were the high point, what that course was all about, for me. So while about a third of the course drove me the majority just didn’t get looked at. We also skirted around a bit of hardware with another lecturer whose name I have rudely forgotten. My second year project was to have been to write an operating system for my Nascom, interfacing it to a solenoid controlled Studer tape deck for the file system that one of the lecturers had pulled out of a skip. While I found it really interesting, I was not sufficiently hooked to ever learn how to design hardware and I regret that.

I failed the course.

Comprehensively and miserably.

And I regret that too.

So while all the other students hit the second year and went on to get their qualifications I went home and I programmed, some Basic and a lot of assembler. I spent a year programming for myself before I found a job. I managed to do a little programming there, and I would sit at my desk and laugh uncontrollably at the idea that someone could pay me to have so much fun. A year later I changed job and was programming full time. There I met Keith Frewin, the third of the three people to whom I owe such a very large debt of gratitude.

One day a box arrived from a contact in America and out of it fell a strangely shaped computer with a small built in screen. We found a 110V converter and turned it on. With a strange synthesised sort of trumpet parp a smiley face appeared and we sat there pole-axed. Hornswaggled. There are a few times in our lives when we can look back at an event and think, “oh yeah, that’s when everything changed” but we rarely get the insight “strewth, this is where everything changes – right now”. The latter was the feeling I got when I first looked at a Mac. Now, I don’t really stand anywhere on the Mac/PC debate – I actually think that while they both have the capability of being great, both of them can be pretty mediocre. Whose fault is that?

I suspect I just lost 9/10ths of the audience, but hopefully that means I have only the quality readers left and that’s good, because I’m not interested in talking to people who know so much already that they cannot learn any more. But what’s bad about it is that those that just left are the ones who really need to learn more.

Being partisan is an excuse for getting into a fight. Whether it’s about which PC camp you belong to or which version of creation you believe in (and I believe in my version passionately) I cannot see how life can be improved by getting into a knife fight over which football team is the best. It’s just not important. Really. Communicating is important and giving someone a good time is important, particularly if they are doing something they have to do rather than whatever it may be that they want to do. I believe in many things and because of who I am and the insecurities I feel about much of my life I can get very passionate about arguing for them but I will not trash or flame someone simply because I think they are wrong and there many, many wrong people when it comes to user interfaces.

Eventually I found myself working on a project for a bank (not using cobol – yay!) where there were a large number of very technical tasks to do, plus the user interface. Well, that’s how they saw it anyway. No one wanted the user interface as a task because no one wanted to have anything to do with the users who were basically idiots because they weren’t programmers. It is an unfortunate fact that I have spent so much of my working and nonworking life with two groups of similarly aggressive people: Programmers and guitarists. Now don’t get me wrong here, actually most of the programmers that I have worked with have been really good people, but having read many blogs and forums over the years, I don’t think I like programmers very much (there is one shining exception to this – Joel Spolsky). I have spent many years playing bass and singing in bands but I generally don’t like guitarists, although there are exceptions to this too. There is a joke that works just as well for programmers and guitarists:

Q/ How many [programmers|guitarists] does it take to change a lightbulb?
A/ 100. One to change the bulb and 99 to tell you how much better they would have done it.

So the user interface task fell to me because I didn’t take a step back fast enough and because I was the least confident member of the team and I saw the task as a refuge where no one would poke me with a sharp stick – in case they had to take some of the UI work on. And as I worked on it the brilliant light became brighter and someone turned the gravity up even more.

When that job finished I decided I’d had enough of working for other people and I’d had an idea for a product of my own. I wanted to make a device that controlled several synthesizers all at the same time using only feet. The control mechanism was already invented, MIDI, the Musical Instrument Digital Interface, that was easy all I had to do was follow the rules. The activation method was already invented, most musicians have at least one foot. The bit that I wanted to think about was how would people program the thing? People, as in human beings, not programmers. There was a big thing at the time (late 1990) about how musicians hated computers – computer sequencers were available and pretty ugly. Only geeks were into them. I wanted to make something that was good for everyone. So the first design decision was that it needed a huge screen. The unit was going to be built into a 1U high 19” rack so a huge screen was a two line, 40 character LCD. 80 characters in all. No graphics. This component was by far and away the most expensive part of the product and the only part that I never agonised over. Nowadays of course this would be laughably small, but for exactly the same reason – now people have an expectation of a graphical interface with menus and icons and help. There was to be no freaky numbers, there must be help, everything had to be obvious from what was currently on the display.

In a review in MT, the Music Technology magazine in August 1993, Ian Waugh said of the result “…the controlling front end is superb; the designer is obviously a member of the Musicians School of Friendly Interfaces.” I was pretty chuffed.

After 12 years on my own I went back to having a proper job and went to a company who made big test equipment. They felt that their current range was coming to the end of its life and a radical new product was required. The initial plan was to use the same UI that they had developed for the current product as it meant (quite reasonably) that the work had already been done. Actually I believe that’s being charitable – I don’t think they thought about the UI for one second. It just wasn’t important enough to warrant thinking about. Although my primary responsibility was low-level control of the hardware devices, once again I slipped the user interface into my task list. They were not happy but heck I was used to that. Few bosses ever want expensive developer effort wasted on the user interface – besides, this was a technical product for technical people; there wouldn’t be any users, only technicians. So I let people complain but left my artwork or workflow in. After a week or so people would accept that that was how that feature worked. As a late entrant into that particular market the company had some catching up to do – but we did it. And a lot of customers specifically  commented on the ease of use, which obviously pleased me. But not my boss. He felt that the unit was inherently easy to use purely by dint of its existence. After a few versions had gone by the pressure on me to give up my work on the user interface was becoming pretty intense. I was doing (and had done) all the artwork for all the programmers at home in my own time, but there was a lot of programming to do and the whole thing was getting more complex, trying to squeeze more performance out of cheaper hardware. Eventually I ran out of time and, under almost constant pressure to stop, I dropped the user interface work. The next version was met by a pretty universal wailing and gnashing of teeth by our customers. There were several reasons for this but one of them was stated loud and clear by several customers and by potential customers – The software was not easy to use.

We got talked to by the management – what had gone wrong? Why weren’t the customers – and potential customers – happy anymore? I pointed out that it was because the system is not easy to use – it’s just a mashup of different functions all of which were operating differently – there was no consistency across the functionality written by different programmers. My boss said no, that cannot be it; our customers are saying that we have the easiest to use system on the market. Except of course that they weren’t saying that any more. They were bizarre conversations and I would like to be able to go back and listen to them again to see if I remember them correctly. This mindless stonewalling went on for a while so eventually I asked him why he thought Microsoft and Apple had rooms full of artists and psychologists – and he replied “because they can afford to”. He was completely unable to take the next step and ask himself how can they afford to? People buy their software because despite all the whinging it’s actually not that bad and it always looks good. You get a good feeling from looking at it. Our relationship disintegrated and a while later, along with others, I was made redundant. That was three years ago. I was in their R&D department a few months ago and saw that not much has changed – bigger screens, more functionality but still a bit of a mess really.

Now I do feel that if I had been allowed to continue with my work on the user interface they could have a better product. I feel that if everyone spent more time, effort and money on their user interfaces they could have better products. If you spend more time on your user interface you would have a better product. What are you waiting for? How will you know if your user interface is better than it was? Well, how will you know if it isn’t?

Humans (well, most humans) enjoy humour. Humour survived because it was funny. Films can be serious or they can be funny. Plays, books, stories, cartoons, pictures, everything can be serious or funny (or, of course, they can be boring or ugly). But we choose not to waste our time in front of boring stuff. We choose not to take everything seriously. Most of us choose “enjoyable” over “difficult” when we can.

Why can’t we inject stuff into our user interfaces that make a small flicker of a smile crawl across a user’s face. I don’t mean jokey manuals (actually I really really don’t mean jokey manuals, they’re awful) but something so that a user can think “oh – they enjoyed writing that bit of code, I can tell”. Why not? One of the first examples I can think of was on the original Mac if you disabled the sound interface, where the buttons had been was a hole, with mounting screw fixings and a couple of disconnected wires dangling. Some people would see that and think, “oh – that doesn’t work at the moment” and not give it another second’s thought (which is fine), some, like I did, would laugh out loud. But I can’t think of many who would think “well that’s a stupid waste of time”, can you? My boss did at the test equipment company when he asked me to remove an indicator that didn’t need removing. So I replaced it with a hole with mounting screw fittings and a couple of disconnected wires dangling…<if anyone has an image of the original disabled sound control panel I’d be very grateful for a copy>

When the marketing department of a company creates a brochure they try to show the product in the best possible light, often using humour to catch the eye of the audience. Actually these days they tend to use good looking people usually drinking coffee – I’m not quite sure what they are trying to express here, perhaps that if you use our software you will have more time to drink coffee and either our product or the coffee will make you and your work mates better looking. Or, if you are a programmer and therefore already beautiful, it will make you worse looking. I don’t know, but personally I prefer a screenshot of the product. I know what I look like drinking coffee and I can assure you that it is pretty unlikely that you will ever see me drinking anything in an advert. But I digress. Surely if we are admitting that humour and good looks shift product, why don’t we make the product humorous and good looking? Doh!

Because it takes time and money.

But so did the marketing.

I suspect that some part of the smiling people drinking coffee is about familiarity. And familiarity is absolutely fundamental in user interfaces. Absolutely fundamental. How many of you remember one of the main thrusts of the Windows 1 advertising, which did actually follow all the way through (I think) to Windows 3? It was all about how if you could use one program in Windows you could use them all. Every program would use the same set of simple, obvious controls in the same way. Of course Microsoft pretty quickly allowed everyone to break that by allowing programmers to subclass the controls and stick their own graphics onto the functionality. But fundamentally they were still sliders, progress bars, check boxes and radio buttons; they just didn’t always look like sliders, progress bars, check boxes and radio buttons. But this did allow a terribly important change to occur. The concept of the mimic panel concerns the ability of making a user interface that looks like the real world environment that it is replacing. If you were to replace a nuclear power station control panel with a personal computer it would make the transfer easier if the user interface exactly replicated the hardware – the engineers would immediately know where to find every switch, dial and panic button. You’d barely need a manual. And if the UI controls were overlaid with photographs of the actual controls, surely that would enhance the users’ experience even further. If anyone out there has used a flight sim over the last few years, take a look at how the graphics have matured. If you haven’t, then here are some screen shots of Microsoft’s flight simulator over the years:

The Cessna 172 instrument panel from Microsoft Flight Simulator II

The second version of Microsoft Flight Simulator. In many ways it was a miracle – we could fly any time we wanted and at the time it felt like we were in the cockpit.

The Cessna 172 instrument panel from Microsoft Flight Simulator 5.1

The fifth version of Microsoft Flight Simulator. From here it looked like things just couldn’t get better.

The Cessna 172 instrument panel from Microsoft Flight Simulator X

But they did. The tenth version of Microsoft Flight Simulator.

All of this effort was for fun. Even if the product was being used for serious purposes, real pilot training, the sense of immersion was important. It was never dull or boring.

Oh, sorry, but that’s a game right? So it doesn’t count.

Gimme a break.

Again I ask – why can’t software be humorous and good looking?

Good user interface design is not impossible nor even hard but it can involve the unexpected. It doesn’t even have to have gorgeous and expensive graphics. There are a few things to learn, a lot of things to realise, and a great deal of fun to be had. Give it a go. Spend some time making your software better than everyone else’s and, if we all do that, then we will have raised the bar and made software a better place to go.

And after all this, what of my decision not to do History of Art? Well I think I have discovered that I am much more artistically minded that I realised. I still could not tell you the difference between a good piece of art and a bad one, nor could I draw you anything but I have tools for that. I think now that perhaps I should not have been a programmer, I am not confident enough to compete aggressively nor to believe that I am right and the compiler/operating system/API/library/whatever is buggy – I have wasted too many hours of my life in the mistaken belief that a bug must be mine. So now I work with the artistic side of my brain and I feel a lot more confident about what I think. Oh yes – now I know I’m right!

I was having dinner a few years ago and one of the party was the Financial Director of a very, very large international corporation. He asked me what I did for work and I explained my interest in user interfaces in a way I hoped he would understand. His response was “So, you’re a programmer – but on our side?” Once again, I was pretty chuffed.

I’ve told you why I’m so passionate about this, and how I came to be – next I’ll try to tell you some of the things you can do to your systems to make more sales.

See you then.