Posts by: marc

Rich fat client

Sometimes we use terms that we just assume everybody understands.  I was recently at at bank looking at how they manage their client relationships.  Conversation turned to the difference between applications that are delivered via the web and applications “on the desktop”.

“From what you are saying it looks like a rich fat client” the developer said.  The banker looked at him blankly.  In his world a rich fat client is someone he has a personal relationship with.

Macro-tastic

It’s a remote control unit for a conference room phone. Slide the cover down and you’ve got 34 “macro” buttons. Why, why why? There maybe a functional requirement for user defined programmes (most likely one-touch dial), but did no one consider the context of usage? How people use conference phones?

A little insight would most probably have revealed that 34 macro buttons is overkill. Unless I am missing something “macro”, In the space allowed, far better to have a vertical column of 7 buttons with label space by each for users to write down the numbers they will call.

The worlds worst remote control

It’s not good enough to blame the computer. Blame the lack of tests

It’s education lottery time. Parents are receiving letters bearing good or bad news from schools telling them if their little lovelies have got places in their chosen schools or not. Choice being the big thing – although there isn’t really such a thing as choice, it’s more a preference. Parents have have three choices, ranked one two or three. Good schools have strict admission criteria, and will usually only accept “first choice” children. Don’t get your child into your first choice school and you are at the mercy of the local education authority – no good school will accept parents who rate their schools as second or third choices. It’s not an ideal system, but at least all the letters go out on the same day so you get to know where your child has been allocated a place.

Sadly we fall into the unfortunate category of parents whose first choice has not been honoured. Our first choice school has rejected us on the grounds of distance from the school. Their classroom quota has been reached and we didn’t fill it. That is not good for us! So will we be exceptionally lucky and our daughter get a place in our second or even third preferred schools? We don’t know. And Surrey Country Council can’t tell us.

We’ve got a week of anxious waiting before they send their letters out. They’ve got a problem with their “systems.” Well that is the message I get told when I rang them up. “We can’t tell you anything more because we don’t even know” I was told.
Frankly it is not good enough to blame the computer. If something so critical happens in the private sector, SLAs dictate a course of action; this is a severity one problem that will be fixed within hours. Not weeks. But this is good enough in the public sector where faceless bureaucrats can hide behind the computer, cosy outsourcing deals with little accountability mean that no-one really needs to take responsibility. Take responsibility for the pain and distress this is causing me and my family!
So I got their press office number from the website and rang the Head of Communications. She knew nothing of any problems with letters going out, but promised to have someone call me back to let me know what the problem was.

A little while later I got a call back and was told that there was indeed a problem with the computer, specifically in resolving offers, and in particular resolving offers where children have other siblings already in the school. I was also told that they’d earlier had problems in importing data into their systems.

Now the deadline for getting completed applications in is the end of October. That was four months ago. Four months to scan several thousand forms and process the data, and get it right. That is not such a hard task is it? OK, so the process changed for this round of admissions so changes would have been required to the systems, but even more reason to make sure you get it right. It begs the question, was there a test strategy in place? Did anybody do any testing? I believe that the system has been outsourced to Capita. Has anybody at Capita heard of test driven development? It strikes me that this sort of project is ripe for an agile approach to delivery; a business critical system that cannot fail, simple business rules… I wonder if my MP is going to listen to this story…

Productvity, creativity, lean and a blockbuster movie

When it tries to reinvent itself, software development takes paradigms from other industries; in many respects traditional waterfall approaches are analogous to the construction industry, and more recently software development is looking to the manufacturing industry with “lean” being in favour. The benefits of lean in the car industry are self evident, look at the daddy of lean, Toyota. Just-in-time is firmly embedded in the manufacturing lexicography and one of its by-products, six-sigma, has overtaken quality and the TQM movement in many areas.

Software is still in the dark-ages of scientific management, it is more Henry Ford’s production line than Toyota’s production system.

When you do a “Value Stream Map” of Waterfall software development, (a lean methodology that essentially takes each step in the process and asks “how long does that take?”) it is evident that Waterfall is an inefficient process with significant bottle necks at every step of the process. Applying agile / lean techniques aims to overcome these bottlenecks and eliminate “waste” in the process can only be a good thing in an industry that is rife with bloat and failiures. All well and good, but I wonder if we need to take the whole lean manufacturing thing as the ideal paradigm for software development. After all, a software product is not a mass produced car, isn’t it is more a work of art. Something creative…

…you should be thinking about the tectonic shift from productivity to creativity – how shifting from work to play is the source of real, durable, economic gains in the post-network economy.

Shift from productivity to creativity. I like this. I wonder that if we focus solely on productivity and turn software delivery into an ultra-efficient production line, where stories (requirements) are little more than inventory, we risk loosing any creativity in the process. Maybe there is another paradigm we can learn from, that of the film industry. Afterall, building a piece of software in many respects is more like creating a film than building a car…

For a start, it is generally a one-off, it is not a production line.

The team who work on the film are brought together based upon their expertise, they are a project team, rather than a production line business a usual work unit.

There is no architecture, rather a script (overarching story) that is visualised in storyboards.

Filming is not linear, it is done in iterations; film all the scenes on a particular location, regardless of the order they fit in the film.

Filming needs to be responsive to change within the boundaries of the overarching vision (business objective); often decisions are made on location; the director sees a particular shot that was not storyboarded and changes are made there and then.

At the end of each iteration you have the rushes (showcase).

Before being launched the film is previewed (usability tested) and depending upon the audience reaction changes may be made.

And then the film is released to critical acclaim. (Or maybe not…)

I’m not suggesting this is a better paradigm than lean – indeed read the wikipedia entry on film making:

An entire big Hollywood-style production cycle typically takes three years. The first year is taken up with development. The second year comprises pre-production and production and the third year comprises post-production and distribution.

…and that sounds distinctly like waterfall.

There is much the software industry can learn from Lean; it’s not an either/ or, rather that I’m sure there are plenty of lessons that can be learned from the film industry. Let’s not loose creativity in our drive to productivity and efficiency.

Zen and the art of sitting at your desk

We are creatures of habit. I was recently on a gig where we were helping a client innovate, creating a vision for a new product. When I wasn’t out talking to or observing users I was in our “war room”. Four weeks sitting in same seat; every day the four of us in the project team sat at the same place in the room. When our sponsors came into the room they sat in the same seats. Habit. Retuning to the comfort of our “spots”.

In organisations that promote hotdesking, people will still naturally move towards the same seat. People have their “spots” that others soon recognise. Same seat, same view. Can’t sit there, that’s Jacks desk.

In our room anything we produced went on the walls. I faced the processes. My colleague opposite me faced the personas and their descriptions. This view undoubtedly influenced our thinking. Reflecting on the four weeks, I was more process orientated, my colleague moew persona orientated. Because process was what I was looking at and personas what he looked at.

A long time ago I spent a while in the foothills of the Himalayas in India at a Buddhist retreat. When entering the meditation hall the natural thing to do was to go to the same place. The teacher said don’t do this. Returning to the same position every time was to become attached to that place. And of course in the Buddhist world all attachment is suffering. You get attached to where you sit; if you’re prevented from sitting “in your seat” you’ll be miserable. But what are you missing by never changing your view?

So why not try something different tomorrow. Sit somewhere else. It will feel uncomfortable (attachment is suffering; you were attached to that desk by the window, now it is gone you suffer). But maybe it will offer you new insights, to see things differently, to talk to different people. You never know, giving up that attachment may be the first step on the road to your professional nirvana.

When do you need to design a UI?

Via Ian Cartwright  an interview with “Lean software gurus” Mary and Tom Poppendieck.  All is going well until  Mary says this:

When do you really need to design a user interface? Oftentimes it drives the whole design, but in fact you don’t really need it until you’re about to do your first alpha test. Before that you can be designing the business layer and you can actually put testing in below the user interface and you can be designing all of the other business logic; you can get that done with any kind of interface and in fact you ca drive testing with a automated interface, and then just before you go to alpha testing you decide what you want for your user interface. Then you take it off and at that point in time you figure it out. But up until that point in time you don’t need that.

This jars with my experience of building compelling customer experiences. There is a good reason why the user interface should drive the whole design because that is how the software is manifest.  To the people whose lives are to be touched by the software, the users, the consumers, the interface is the software.  To leave the UI till last presents a  huge risk of building software that is functionally rich but has a UI modelled around the features; the underlying data and logic rather than how the user wants to work.

Starting with the UI is an excellent way of capturing and communicating requirements.  And bakes in usability into the design.  You want this feature and that feature?  Great.  But will they be coherent and usable to the user?  Drawing out a UI  on paper – paper prototyping- is far more efficient that making assumptions about requirements on a list.  Afterall, isn’t this what the manufacturing industry that the Poppendiecks take thier inspiration from?  Don’t the car manufacturers start with CAD and move onto clay models?  Ergonomists have a hand in the design of car interiors, using anthropometrics to build in comfort and work out lines of sight.  The engineers don’t build the engine and the bodywork and then make decisions about how the car will look.  These things are designed from the start.  And so should it be with software.

When do you really need to design a user interface? It should be the first thing that you do.

Have you considered the consumer mind?

Some things that the development community take for granted as “bleedin’ obvious” are often far from it for the end consumer.

Cue a story.

I’ll protect his identity and call him Jack. Jack is 60 and has been using the internet for a while; He’s got broadband; he banks on line, buys books on Amazon, books cheap flights with easyjet and sold his car on eBay. He considers himself internet savvy.

Not so long ago a friend castigated Jack for using Internet Explorer as his browser, and downloaded Firefox for him. Jack loved the tabbed browsing. Jack was a happy chappy.

When I was in Hong Kong, Jack thought it would be good opportunity to try out the web camera he had never used. He had Instant Messenger, and pinged me asking me if we could have a video chat. We tried to connect but couldn’t. Messenger told me he had an old version of IM and should upgrade. Jack said he thought he’d already done this – I sent him the URL and left him to it. Five minutes later he pinged me that he’d installed the new version of IM. Great I thought. I tried to connect and got the same error message – Jack was still using an old version of IM. Maybe he needed to shut down his machine… Jack disappeared for a couple of minutes and came back on line. Still the old version. Hmmm. I asked Jack to try installing it again. He came back proud of definitely having definitely installed it. We tried to start a video call:

The Video Call failed because jack is using a version of Messenger that does not support this feature.

Hmmmmm.

So we went through all the steps that Jack was going through. It transpired that Jack was saving the file, but there was no call to action to actually launch it.

Firefox save dialog box

And there on Jacks desktop were eight saved versions of msgr8.exe.

Jack often wondered what these files on his desktop were, but assumed they were important (he hadn’t put them there, the system had) and didn’t want to open them, let alone delete them.

Was Jack’s mistake such a big one; to assume that “saving” a downloaded application was the same as installing it? In developer mind, probably. But in consumer mind? Clearly not.

We talk a lot about beginner mind / expert mind, shu ha ri… But thinking about Jack, there is another mind that needs to be considered. Consumer mind. Expert in the things I do everyday, clueless in anything beyond my immediate sphere of need or want.

This impatient monkey

I’m impatient.  I also expect technology to work.  When it doesn’t appear to be working, when I’m getting no feedback as to what is happening, I get frustrated.  I click-click-click the mouse button.  I hammer the enter key.  I repeatedly thump the keyboard.  “Work damn you!” I curse.

The technology was probably just creaking along, it may have got there in the end, but my hammering is the last straw, it breaks the application. Frozen out, frustration turns to user anger.

The developer tuts, “it’s your own fault” he says, “you broke it with your impatience”.  And that is why Dan North’s recent blog about Monkey Testing fills me with happiness.  Testing software for my monkey behaviour, so that it doesn’t break when I do things that I’m not supposed to do – because I am human.

Just because you can, doesn’t mean that you should

Following a recent Economist article, JP Rangaswami blogged about “can versus should“. His theme was around DRM and identity; just because the government can monitor your digital behaviour does not mean that they should. I like this, but think it can be extended to much of the IT domain.

Web 2.0 introduces many new styles of interaction, drag and drop, take over the right-hand mouse button… just because we can do these things doesn’t necessarily mean that we should. What will the impact be? Hide calls to action behind the mouse button on your site and your site alone, how does the user know to find them there? When building a “deluxe web” site at the forefront of mind should be how will people actually interact with the proposition. Just because we can do some technically cool stuff that would give us a buzz and gain nods of appreciation from our technical colleagues, doesn’t mean that we should. A customer who has come to the proposition probably requires clarity and an ability to accomplish their goals. They care very little for the stuff we can do.

Multiple select on a list - check boxes or web deluxe take over the mouse?
And then there is mobile. Just because we can deliver the ability to enable customers to watch TV on their phones, doesn’t mean that we should. Too often new propositions are driven by IT ability rather than consumer demand. WAP was a great example of this; IT consultants getting excited about delivering content on mobile phones using WAP, completely overlooking what a shocking experience it was and simultaneously missing what consumers actually wanted to do – text message.

blog style

My latest post resulted in a comment accusing me (in jest I am sure) of being a usability nutter.  The comment was a fair one.  But it raises a couple of questions about blogging;

1.  Should I edit the offending blog in the light of the comment?  Probably  not.  I’ve responded to the comment and I’ll leave it at that.

2.  More fundamentally, how should one blog?  I tend to bash out a stream of consciousness, usually using notepad on the train to work.  I then upload it and post it.  I’ve not yet put a spell-checker on WordPress so often publish with typos.  I rarely  proof read (beyond a cursory glance) what I’ve written.  I contrast this with other bloggers who refine what they write and only publish when they are really happy with the article.  Personally, I like the urgency of blogging, just getting stuff out.  And if every now and then I get stuff wrong, I’ll be humbled and move on.
(BTW, I’m not a usability nutter:) )