Wednesday, March 31, 2010

hidden complexities

well, they're not very well hidden. I mean, you can't hide things you haven't defined yet.

I'm currently developing wireframes for UI specification based on user activity flows for applications for a client in financial services which is a sentence a bit more complex than I had anticipated when I started typing it even though I suspected there were elements to it that I hadn't even realised might be necessary in order to provide context that might make it rather more full-featured than the initial scope I had in my head. which goes some way to providing a metaphor for the user experience design conundrum I'm facing, if, in fact, a conundrum can be faced. its not an unusual problem. I'm designing a solution for a problem that can't quite be fully articulated. as I iterate on user interaction descriptions and map out user action flows and try to develop wireframes that support those interactions that can be translated into functional requirements for application development, its clear that the initial, narrow scope for must-have features for go-live of version-one don't tell nearly enough of the story to enable me to successfully capture all the core interactions, let alone the extended feature set that adds the value to applications that might actually convince the business that they really should use it thereby making all this effort worth making.

and this is a complex environment. it is a number of degrees more complex than most web-based, rich internet applications. as a single application that is part of a broader application framework that supports a wide range of trading activities, it is actually a quite small, discrete deliverable, but even that small, discrete deliverable, in the operating environment in which is is embedded, has an interaction model that is as big as you feel the need to define. you could easily take a number of weeks or months refining the activity flows, building scenarios, iterating wireframes and doing all those things you do to try and ensure that the user experience is as engaging and intuitive as is humanly or machinely possible and still, on each iteration, and at every review meeting, you'll find that there is another enormous chunk of user operations that you didn't know about yesterday and that chunk begets another chunk and that other chunk requires an altogether different contextual description to enable you to understand its operation and how the user interaction model might need to be considered if, indeed, we are to include this chunk you've just told me about in the initial release, which we are, because we actually want it all now.

but this isn't a bad problem. this is a good problem. as a user experience practitioner, the reason I do what I do is that I like to solve problems and provide elegant solutions. what I don't like to do is take somebody else's solution and just draw boxes and arrows around it. in this case, I get a complex problem and I'm asked to provide a simple solution - an excellent user experience - and how I solve it is up to me. perfect. I'm travelling more than five hours a do to do it, and they want it yesterday, but, really, minor irritations when to put them on the balance against job satisfaction.

Friday, March 26, 2010

agile user experience design

if you're subscribed to about 27 job searches like I am and are very specific about the nature of your search parameters, say, ooh, I don't know, 'user experience Norwich 100+ miles', even though you end up with a list of java developers and IT managers in Stevenage, then you've undoubtedly seen a proliferation of job specifications that on the surface look like exactly the kind of thing that matches your skillset and you're just about ready to call up that recruitment consultant who likes using capital letters and concatenations of job titles repeated every other word throughout the advert, when you see, near the end of the page, the 'Agile' word. as in, 'must have experience of working in an Agile environment'. or 'Agile experience required'. or 'we follow an Agile development methodology'. or 'Agile Agile Agile Agile Agile Agile'. or something like that.

this is fair enough. I applaud the adoption of a structured methodology to support a development process since I know just what a creepy mess it can be to not follow any method at all. and Agile looks like its a reasonable software development practice. it means you do things quite quickly. I can do that. I can do things quite slowly too, but if there's a team dynamic and a project management style that encourages rapid development and lots of meetings where you stand around each other's desks pointing at widgets and occasionally breaking out to the whiteboard that doesn't have any pens, then that's fine. but just because you do that, it doesn't mean you're necessarily following an 'Agile' methodology. I mean, its 'agile', as in, you're able to make decisions, act upon them, and reset the project outputs with expediency, but, you know, it might not be necessary to attach a label to it and market it externally as that. you don't have to have a capital 'A'. because as soon as you do, you've changed the job description entirely.

the role I'm in now is pretty agile. working for clients in the city on software development projects that require daily collaborative sessions on user journey development and wireframe builds necessitates a rapid, robust style of user experience design. I've had the luxury, in previous roles, of having lead time for development and intervals of checkpoints measured in weeks, when in reality, a couple of days was probably more sensible. for this project, however, there is a definite urgency, not least driven by expenditure, that requires that the user experience design iterations are compressed into daily outputs and reviews. I can't say that I prefer working one way or the other, although the day-by-day cycle definitely drives increased output and, as yet, doesn't appear to impact either the focus on the user or the quality of the output (he says, doing that breathing on his fingernails and polishing them on his chest thing).

so why am I bothered about what somebody calls their particular working environment, when it really doesn't matter, since it doesn't effect the ability to deliver engaging, meaningful user experiences? because that word is a barrier to employment. that's why.

barrier 1: 'I don't see that you've got enough Agile experience'. this applies when you sit with a development team as part of over 3 hours of face-to-face interviews for a user experience role at a software house in a corner of a business park somewhere between an A-road and another A-road, and are told they work in an 'Agile' environment, whereby they do all those things I've just mentioned with each other's desks and whiteboards with dry pens. in this case, no amount of discussion on my part about working to suit the environment and being fine with daily scrum meetings and managing sprints and workstreams and swimlanes or whatever, manages to persuade them that I can work in an 'Agile' environment. because I can only demonstrate that I could work in an 'agile' environment. I can't actually check the box, that I probably designed in the first place, that says 'Agile (make sure its a capital)'. or they just didn't like me. which is equally likely.

barrier 2: 'I don't see that you've got enough Agile experience'. fair play that if after half a day of talking to real people in a stuffy conference room about a role that they then use the 'Agile' thing to let me down. at least I had an opportunity to demonstrate that I was the right candidate. at least I was across the threshold. at least it was a team of people who at least have their own understanding of what 'Agile' means. this is just a mild annoyance. in contrast, what really gets my goat, even though I don't have one, is the creeping proliferation of 'Agile' as a keyword in job descriptions posted via recruitment partners on behalf of clients. this nastiness is much worse, because it actively excludes potential candidates before they even have the chance to demonstrate their worth. it is the doubled-edged sword of internet recruitment whereby I might maximise my presence in searches or on recruitment portals by ensuring that 'user experience' or 'information architecture' or 'UX' or 'IA' is a key attribute such that searches will find me. and that's pretty successful. mind you, you can probably find me if you search for 'Norwich' and 'idiot' or something, but that's a different user altogether. the downside of optimisation in this case is that I don't use the 'Agile' keyword to enable a higher ranking. that's to say, when those machine-driven CV scrapers are trawling for candidates based on a job description with 'User Experience' in the title and with 'Agile' as a keyword requirement, I'm probably not on the list. unless its for a job in Norwich. which it never will be. why not just add 'Agile' to my CV? because, in fact, and to the point, I can't honestly say I've worked anywhere that has used the 'Agile' word, despite the fact they might be 'agile', so I don't use the word. It would be a lie.

barrier 3: 'I don't see that you've got enough Agile experience'. slightly more galling than not even getting onto a shortlist is getting onto a shortlist managed by an agent acting on your behalf who understands what 'Agile' is marginally less than they understand what' User Experience' is. I have to say, I have come across some excellent recruiters at some excellent agencies, and they really understand the marketplace and the applicability of roles to my experience. but they don't manage all the client relationships. there are numerous black holes I've been down whereby the only application route is online to an agency I've never heard of to a client I don't know, based on a job description I quite like the look of (which, coincidentally, pays going rate). after falling through the silent vacuum for a few days, not really getting any indication of application status, I might endeavour to find out what's going on. if I'm lucky, the application process will have yielded a phone number for the recruiter which means I can actually follow it up. if I'm unlucky, I'll contact them and they'll say 'yeah, I saw your CV, but I don't see that you've got enough Agile experience, and they said they were looking for that, so I didn't feel I could put you forward', or 'yeah, I saw your CV, and they liked the look of you, but they didn't see you had enough Agile experience, so they didn't select you for interview', or 'Tim Caynes? What job was that? User Information what?' . its the human interpretation barrier that is the worst. I'm reliant on a third party communicating to a forth party about my personal experience and applicability when they have to negotiate around a keyword that neither they understand or I believe should be a gating factor. or they just didn't like me. which is equally likely.

as Rob said the other day 'Agile? That's just working quickly, right?' I can do that. Do I need to pass an exam or something?

Monday, March 15, 2010

gainful

as in employment. I've recently started working for Tobias and Tobias in London doing lots of nice user experience work for some rather nice clients in the city and its a rather nice change from just looking for work in London doing lots of nice user experience work for rather nice clients in the city.

its a significant change from the working environment I have been used to for the last few years, in terms of office space (there is some), project management (there is some) and stakeholder relations (there are some), but the core requirements of the role are essentially the same, that is, to understand the business requirements and define the user experience that supports and encourages engagement, streamlines interaction, and drives business growth, oh yes. and gets it finished by last thursday. based on the changes we just made to the requirements. in the meeting you weren't at.

that last bit was a joke. I was at the meeting.

Thursday, March 4, 2010

well, this is embarrasing, firefox

I used to put hidden messages in programs. I'd wait for unsuspecting users to generate an error and then display something like "I'm sorry, you can't do that, that's rubbish", or "Please enter a number. Not a name. Least of all your name", or "Boing! Not Correct!". but then, see, I was just writing some subroutine in a telnet client or something which only worked on a single server that a handful of people had the misfortune to interact with. I was young. it was funny. once.

since then, I've often seen similar mildly-amusing-once-if-that messages generated by alert conditions or error messaging in applications that I'm trying to use to achieve some workpath goal. not necessarily a particularly important goal, but all the same, its during an interaction I'm having using an application I'm trusting to just enable me to get on with it. usually its just a trivial cuteness, like an 'oops!' when I'm trying out the beta of brizzly and it fails to do something because the twitter api has prolapsed. sometimes its more terse and slightly more annoying, like a 'something is wrong' followed by a calamitous fail that condemns my unsaved spreadsheet formulas to an inglorious uncertain document recovery undeadness. but sometimes, its an overly smug acknowledgement that something went wrong but, hey, its ok, because things go wrong, right? we don't know why, but, you know, never mind.

I do mind. I am slightly irritated that it is acceptable that an error condition can be apparently rendered less important simply by adding a spoonful of pith and a continue button. I'd almost prefer a window.open() with a stack trace dump in it, which, if you don't know what that is, is as dull as it sounds, but at least its specific, and relevant. the latest incarnation of this creeping error-as-friend experience that I've been invited to share is the 'well, this is embarrassing' condition as blarted out by the most recent release of firefox. simply put, if firefox crashes unceremoniously, probably because my laptop battery has run out or something, then the next time it starts, it throws a mini hissy fit and refuses to load the tabbed content it apparently knows that it should be loading. which it finds embarrassing. maybe not as embarrassing as the fact that I seemed to be preoccupied with pubs and hardware last time firefox crashed, but, ooh, sorry, a bit embarrassing, all the same. I mean, the rest of the error is quite specific and possibly even quite helpful, but nonetheless, the context in which it sits is now one of over-friendly banter, which does nothing to reassure me at all.

I might be being a tad over-zealous. after all, its just a little jokey headline. but I've now seen it about 9 times. and its starting to grate. and that's my point, such as I ever make a coherent one. be careful where you pith.