2006

Agile doesn’t do good UI does it?

There is an argument that goes like this. Give two development teams the same problem. Get one team to use a waterfall model, the other an Agile model and see what you get. Chances are that the agile team’s code will be more elegant and cleaner than the waterfall team but their UI design will fall short of the Waterfall team’s.

Truly incremental development of code, adding features as they are required (according to business value) is just not suited to developing a consistent and intuitive interface. Without a model to specify what the interface consistencies will be the developers will build the interface according to the requirements of the current feature, not necessarily how it contributes to the overall experience of the application. This is often compounded by listening to the wrong “customer”. All too often the people who buy software are confused with the people who use it. Buying decisions aren’t using decisions. (Anyone who has used Lotus Notes primarily as a mail client will testify to this: you are a captive users. If you as an end user could choose you would probably use something different, but you didn’t buy Notes and were probably never invited into the discussion about it’s purchase).

Big up-front design?
If “change” is a dirty word in Waterfall approaches then “Big-up-front-design” is a dirty phrase in the agile vocabulary. Anything that smacks of design and specification documentation before a line of code has been written is guaranteed to get the backs up of agile zealots. Yet it is clear that in an absence of any roadmap for a UI, the interface could go anywhere, and for a component as critical as the interface between the user and the functionality this can have disastrous consequences. Any feature is only as good as the users’ ability to use the feature. The underlying code the developer has written may gain the admiration of her colleagues, but if it takes the user twice as long to use the new feature because of a poor UI then any business value promised in the application has been destroyed. On a project iteration level, the lack of any detailed UI design can cause a number of issues ranging from inability to get customer sign off on stories through to rework (not refactor) as the UI metaphor starts to evolve.

In practice it doesn’t have to be like this. You don’t have to do “big up-front design” to get the UI right, rather just do enough to produce a model that drives the project forward (what original XP called “metaphor”); an understanding of what we’re all striving for, so we can make emergent design decisions that match that metaphor. The question therefore is what is “enough”? As always it depends.

The user interface is rarely specified as a requirement. It is just assumed it will have one. A starting point to getting the UI right is by capturing it as an emotional requirement. How are users to engage with the application, how do we want them to feel about it. By doing this we can quickly ascertain whether we are looking at a “world class, best in breed, competitor beating application;” an “application that will help transform the productivity of our employees [happy workers = productive workers]”; or “just a maintenance application that the tech guys use”. Business value can be placed upon each of these requirements and should be prioritised against feature requirements, both in terms of benefit (builds the brand, faster transaction times, fewer mistakes etc) and in terms of cost (interaction designer and graphic artist input on project team).

The GUI model
Once we are agreed that the UI is important to the success of the project, we can produce models for the look and feel of the UI.

Feel
The model isn’t the UI design for the application per se, but rather the vision and the basic structure of the UI for the application to fit into. It provides some guidance for developers and BAs as they begin to analyse and implement stories – some basic structure the application can fit into so we don’t have to struggle to invent so much UI stuff for each story. And, so the finished application feels a bit coherent. The model may have two halves, firstly the vision that illustrates the feel of the application; how the user will flow through processes, an information architecture illustrating where pages will fit. Secondly the model may be prescriptive; how the will the user know what to do, how will widgets work. The primary artefact of this model might be ‘wireframe’ sketches of pages – a low fidelity prototype that walks through key user journeys. Alongside this may be basic interaction patterns, for example how a search mechanism will work, how forms are to be laid out. Just enough to ensure consistency in the feel of the application and prevent avoidable re-work at a later date.

Look
Alongside the feel model is the look model. The developers need not care too much about this, provided their html is cleanly marked up. The feel will be created by the graphic artist and interaction designer, and implemented in the style sheet. Obviously if the goal of the application is to be a customer facing “world class” website, more attention will be required on the look than if the application is a development support tool.

The important thing with these two models is that they are sociable, communicable and flexible. The whole project must be aware of them; when new people are brought onto the project, the starting point of the communication should be the wireframe sketches. “This is the vision of the project… currently we are working on these parts… you see that tab – that is release two…” They may also change. We originally thought we’d have a ‘wizard’ to complete the process, but after showing the wireframes to users they wanted it all to go on the same page. But it is better to have something to hold the UI together than assuming that it will evolve through incremental development.

(These thoughts are not entirely my own – much of it is distilled from a ThoughtWorks email thread on UI design, agile methods, and BUFD… or BUFUID as someone commented).

Beware the agile champion

New project? Got a business customer who is passionately into Agile but has never done it for real? Lucky you. But beware! Do they know what it really means? Do they blindly recite all the benefits of Agile with no experience of its reality? Do they think that it is a stick that will finally beat IT into delivering value to them? Agile is good, but as with any process there will always be pain. It is not a panacea for everything that is wrong with traditional software development. It takes time for an IT organisation to transform. Just make sure the business customer know this. Things are unlikely to change overnight. Make sure that expectations are set from the outset, schedule time for retrospectives (with safety controls) to ensure everyone is happy and make sure that channels of communication remain open. But as an agile practitioner you’d do that anyway.

Designing the bleedin’ obvious

How hard can it be to design something as simple as lift control panel.

The specifications are as follows: buttons for eight floors, hold door open, door close, alarm and key slot for manual override.

I’m sure that most people would logically take advantage of the users mental model of the way lifts work – i.e. up and down and posiiton the button for the eighth floor on the top and the button for the ground floor at the bottom. That is bleedin’ obvious isn’t it? (I believe that 90% of user centred design is the bleedin’ obvious). Sadly, some people don’t get the bleedin’ obvious and all too often they design things that we use every day. Like whoever designed this lift control panel. Vertically positioned buttons with the most frequently used button [ground floor] hidden in the middle of the bottom row of buttons. I have to think to find it.

lift control panel

(I also have to think “how sad am I” to notice such a thing, take a photo and blog about it. S’pose that is why the world needs interaction designers, to state the bleedin’ obvious.)

It’s not *all* about business value

Agile is all about “delivering business value”. Core to this mantra is prioritising features, getting the highest value stuff in first. But proceed with caution. I was talking to Dan North about this yesterday. It’s not *all* about business value.

Where is the business value in “log in”? It’s not driving revenue or reducing costs. You can’t place any monetary value on it. How about the emotional requirements that will create a buzz amoungst your consumers? Don’t have the compliance guys in the prioritisation workshop and no-one in the business is going to put auditing in their “must haves”. Yet these are show-stoppers.

A couple of thoughts. Firstly, think in terms of doing your prioritisation around themes – Jeff Patton [pdf] has written some great stuff on this. And rather than business value, how about “Stakeholder value”. This will map to key business drivers:

customers – increase revenue
employees – reduce costs
auditors – compliance

By giving each business driver an owner or a persona you can ensure that no one audience can hijack the MoSCoWs.

Ghana in the World Cup

Good to see Ghana playing last night (when I finally got home three hours after leaving the office – the rail network was in meltdown following a fire on the line). It reminded me of the time I was in Ghana and told the guys that I worked with that I wouldn’t mind playing a bit of football. A kick about in the park was what I had in mind. I must’ve been misunderstood. The next thing I knew, courtesy of a cousin of a friend of a brother of one of my colleagues, it was arranged for me to have a kickabout with one of the local teams – join them on one of their training sessions. This sounded great. Until they let me know the local team was Asante Kotoko – the Manchester Utd. of Ghana. They hadn’t seen my silky skills. Or lack of them. So I politely declined the offer.

The business value of emotional requirements

Whilst amazon.co.uk languishes in yesteryear, it’s transatlantic cousin amazon.com has gone all web 2.0. They’ve also introduced some new features, the ability for customers to associate and share their photos with products they have bought. For example for an ipod nano people have uploaded images that graphically illustrate how small the nano really is. Cool stuff. But I have a question. Where is the business value in this feature?

Agile is all about delivering business value. Business value can be crudely decomposed into four reasons why we do things:

  • To reduce cost
  • To increase revenue
  • Because of reguatory or compliance pressures
  • For altruistic reasons (such as giving something back to the community / imrpove emloyee morale etc)

Features that do not address these business objectives (and more often than not just the first two objectives) will be deemed low priority (if ever considered in the first place) and typically fall by the wayside. Which makes me wonder how Amazon get away with it. What is this business case for “Customer Images”? What business metric will they look to that will demonstrate the features success in driving revenue? I’m sure some obscure derrived metric could be arrived at – but I would guess that the key driver for this functionality is an extension of the brand. There is no monetry reason for the feature, it is just a right cultural fit with the overall product. It is about developing an emotional engagement with the customer that is beyond the purely functional (browse – buy).

As agile practitioners we capture stories. During the process we will also capture “non-functional” stories. (some would add “technical” stories to these). I’d argue we need to add a new category of story – the emotional requirement – how do we want our users to feel about our product? Such stories will enable us to build software that goes beyond the strictly functional and begin to engage. They will help us temper the cold business objectives that focus upon getting things done, with the softer intangible / aesthetic quality of the applicaiton that will keep the user coming back again and again. Come to think about it, there’s the business case for “Customer Images”. Building a better relationship with our customers to increase customer purchasing and reduce customer attrition. Now why don’t other businesses think like that.

Writely rocks

So I’m collaborating on a document. Usually this means starting with a word document, saving it as “version 0.1” and forwarding it via email to the collaborator. They do their revisions that come back in multicolours with the option to save or reject and it all gets confusing. What actually happens is multiple versions get saved to the hard drive and it is a really inefficient way of working. My Microsoft friend assures me that Sharepoint elminates the version control aspect of this, but this still means checking the document in and out to do revisions. I’ve tried to use Gforge as a repository and tortoise CVS, but it all gets complicated with plink and putty and I just give up. So what a revalation Writely is. I can collaborate real time on the same document. It has all the commonly used word processing functionality that Word has (keeping styles simple rather than the bloat the MS have added to Word. And at the end we can publish the document to the web, give it an RSS feed or just export it as a Word document. Awesome.

Is the ThoughtWorks mind the creative mind?

The guys over the fence in the media and advertising world are seeing a paradigm shift away from focussing upon the narrow “message” of a campaign to the broader “user experience” that encompasses the whole brand, not just a flashy graphic. This requires the “creative minds” to broaden their horizons. One such creative mind has created a picture that illustrates this.

The creative mind

This is a good way of thinking when attacking an IT problem. Not just focussing upon implementation detail, but the whole user experience. It means broadening the mind beyond the analytical. In addressing IT problems, developing greater “curiousity” and “expressiveness” is not a giant leap. But sesuality? Can developers ever have a sensual mind?

Recent experiences suggest so. Once a Dev has been hypnotised with a bit of web 2.0, emotional design seems to flow through their arteries. They “seek to satisfy all the senses. Aesthetics, beauty and form are driving forces…” That is they get all gradient-fills and curves and funky Ajax gizmos…

If it takes one man 3 days to dig a hole…

I was talking to someone working on the Kings Cross regeneration project and he told a sorry tale that has a certain resonance with IT projects.

So they were drilling a big hole that had to be drilled and they came across a major sewer. Now someone should’ve known the sewer was down there but clearly they didn’t and the hole drillers had a problem on their hands. You can’t drill through a sewer, the sewer had to be moved. And it is no easy task moving a major London sewer, it requires major bypass surgery. Costs necessarily spiral – it’s a new project building a new sewer and with the hole unable to be drilled the timescales of the regeneration project slip.

But that’s not the end of the story. Apparently they start digging a new trench to lay the new sewer bypass and it is by a building full of business people who like to have their office windows open and clearly don’t take kindly to all the noise and dust from the trench being dug. And work on the new sewer grinds to a halt as negotiations take place on what to do. They have the windows open because it is hot weather and they have no air conditioning. Time slips further and costs escalate even more as the solution is agreed. Until the contractors have installed air-conditioning in the building no work can continue on digging the trench, no work can continue on bypassing the sewer and no work can continue on digging the hole.

Hot air balloon

For a while I’ve been buzzing about Luke Hohmann’s innovation games and am looking forward to his new book coming out. Using games, stories and pictures is a great way to get people engaged in workshops and get to the crux of problems. One problem you often get with people sitting around a table is a small number of vocal people contribute loudly, leaving timid bystanders with good stuff to contribute afraid to get involved. Obviously a good facilitator will look to overcome this, but get people in pairs, give them blank cardboard boxes and coloured pens and ask them to produce the packaging for the product they want to develop and you’ve got a great levelller.

These exercises do take time and can really only be done one at a time. In an attempt to fuse together the “product in a box” identifying customer needs and “speedboat” which identifes the anchors that are holding the project back, I’ve used the analogy of a hot air ballon a couple of times to some success. You draw a huge hot air balloon on the wall with ropes teathering it to the ground. You then get participants to put the features that they’d like to see advertised on the balloon. Participants write these down on post-it notes and they are stuck on the balloon. Clearly if all these features were all written across the balloon they would not all fit if sized so they could be read when the balloon flies in the sky. So just like in Formula One where a logo on side of the car will be larger (and more valuable) than the advertisment on the back of the drivers helmet, you then identify those features that must be visible from the ground (high priority) and those that may only be seen on the ground (low priority). That’s the first part of the exercise. The second part is to get participants (again using the post-it notes) to imagine the ropes are project constraints that will stop the baloon flying. In the space of 40 minutes if all goes well you will have driven out the top-of-mind features the participants want the project to deliver (and priortised them) and identifed the top-of-mind risks and issues that particiapants have. And most importantly you should have everybody engaged; with any luck a bit of laughter will be heard on the way. And that can’t be a bad thing in a corporate meeting room.

6 of 9
123456789