Inserting the UX into an existing Agile Project.

It is a Wednesday afternoon in Sydney North Ryde, humidity is quite hot and I am walking up a fairly steep hill panting and cursing to myself about getting to the gym sooner rather than later. I glance over to my left and I see this person riding a unicycle up a hill whilst listening to music and moving at a pace that is faster than my walking (yes that is how unfit I am).

I simply stopped in my tracks and first chuckled at how amazingly insightful that was to witness as I immediately thought “that basically was the visual for my role as a UX Architect” – which was to say, “Poor me, how hard is my job as only an idiot would ride a unicycle up a hill”.

Sometimes life is like riding a unicycle up a hill.

Sometimes life is like riding a unicycle up a hill.

As I continued to walk, I started to think about how much effort that person is putting into attacking the hill before him. Firstly he has to balance whilst at the same time maintain a steady forward momentum (too fast he falls, too slow he falls). Secondly, he is listening to music while he attacks the hill that I can only assumes helps him focus on the mission ahead by blocking out distraction(s).

That encounter inspired me, it gave me a renewed sense of energy at facing down the biggest problem I have today – “how do you integrate UX into existing Agile projects cleanly”. I mean to say the task before me is not easy, it is filled with many uphill battles such as balancing between function and form, whilst at the same time not spooking stakeholders into cost blow out panic attacks. I also am required to have a concentration level that simply at times feels inhuman given the unchartered territory ahead.

The difference between that role and the actual guy on the unicycle is well at least he gets to see what’s ahead of him whereas a UX in Agile world is typically doing the same thing blind folded.

Discovery vs Delivery.

I spent over three years travelling around Australia in every capital city visiting “developer” teams for all types of companies (enterprise, startups, government etc.). I have seen the same thing happen over and over, whereby each company swears by their agile manifesto and how important it is to maintain “agile” discipline. I also notice they cherry pick agile each time to make sure it fits in with their culture and more importantly to not take it as an absolute but more a relative approach to designing software.

The part that often sticks in my craw is not the sprint cycle(s) or the sprint backlog creation. Nope, the part that I immediately notice as being the fatal flaw to why User Experience is often the sacrificial lamb in the development process is well the discovery of the said feature(s).

For instance, a team will often sit down in a room with a whiteboard and then begin coming up with some stories around what they are hoping to achieve with the software. They then will likely document these stories with the usual “As a User I want the ability to do X so that I can do Y” style sentences. After that process they, would likely then unpack these at a later time into developer task(s) along with success/fail criteria (tests, definition of done blah blah)?

I would guestimate that 90% of the hundreds of developer teams I have visited do pretty much the above. Furthermore, I would often be invited into some of these teams at around the last few sprints to help “make it look UXy” as if there was some way I could just “Integrate” into the team(s) development process, fix the UX problems, low impact to the code and do the aforementioned in a timely manner (Usually I say: “You don’t need a UX Architect, you need a priest as this thing is dead and all you’re after is a lot of prayers to reanimate the corpse”).

Let me simply say this, as a contractor I would love nothing more than to have you do the above, especially if I am charging you per hour. I could simply tread water and extract large amount of free useless work hours knowing either outcome still does not result in a successful delivery.

Ethics 101 aside, today, I am not that contractor, I am a UX Architect and I have a queue of other products waiting in line for my same attention. I do not have time to drag the timelines out so I have to instead get the above optimized.

The flaw in this aforementioned process of white boarding features is the part that you first make your biggest and ultimately largest mistakes when it comes to making a software product (which is a general argument to make, but hear me out). As when you sat down to the feature, you did not document whom you are making the product for. In addition, how much time did you spend on refining the process other than the first bunch of fragmented ideas? Lastly, how do various stories influence one another?

Agile is not an excuse to just deliver a project without planning and planning doesn’t mean you have to spend the bulk of your time in “waterfall” delivery purgatory either.

Great quote from Jeff

It is probably a good point to say that if you are focused on delivery and you spent little time on discovery, well you are basically in for a lot of turbulence and “UX Tetris” in the coming sprint cycles.

Unpacking the Discovery phase.

Take an existing project you are on today, now look at the User Stories you have (ignore your tasks). Now grab these stories whilst grabbing some pens & notepads. Now take some of these stories (does not matter where you start) and begin drawing a comic book of your product, that is “how would you draw an activity from the moment the user clicks on an icon to the splash screen and then to what they see first”.

Example – If I was building Outlook I’d say scene(1) is user clicks on icon, scene(2) splash screen loads, scene(3) outlook opens in default folder view, scene(4) user creates new email etc.

uxblur

The objective behind this in the first part of the discovery phase is to illustrate that your story whilst at first sounds perfectly fine is not really “done”.  How many UX Personas did you draw in the comic? I would wager maybe one? Moreover, how many times did you redraw this process before you exhausted the steps into what you would consider “simplicity”.

  • How much influence did iPhone, iPad, Microsoft Office, Outlook, Windows 8, Adobe Photoshop, Adobe Illustrator, Visual Studio etc. all play in the mental model you had for the software(s) design?
  • How many DataGrids and Tree controls did you “assume” existing in the UI as you drew the comic story?
  • Did you draw the UI as a wireframe or just abstract shapes? (If you did wireframe, stop, rub it out and keep it abstract).

A Definition of a Story is “An account of imaginary or real people and events told for entertainment” – the key words from that definition are “An account”. That is to say, it is your own personal bias coming through on how you foresee the event taking place based on existing ideas or experiences from the past.

Now, to bake your noodle, grab three or four of your colleagues and get them to do the same process on the said story but be very careful not to lead them on the same path you just took (e.g.: “draw a comic book for how our customer can create a new email. STOP. No more information”).

I have done this a few times and usually what happens if done correctly (i.e. everyone is in isolation) is the story typically has similar patterns but the ordering and approach taken often has mixed result(s) (especially if its domain specific to your companies problems and not generic like email checking).

First lesson learnt here is that we all approach the design with a bias in mind and yes, we feel that if we all share the same pattern in design it will in turn invoke less agitation on the end user(s). Agitation such as this is still good and most of the time the behavior of the said end-users will likely follow the approach defined.

Problem is you are not in the business of “good enough” anymore. Software today is expected to rise above mediocrity and everyone is under pressure to deliver products as “simpler” and less “dense” in terms of feature(s) and/or layout design(s).

With that, it is your job to put this entire story design on a very strict diet that should take more time than you probably anticipated. Typically you will want to time box this process as it can drag out and I highly recommend you grab a healthy mix of developers, customers (trusted), sales, marketing and if possible receptionists (i.e. people who aren’t your target user) in the creation process. The more diverse the background the more likely you can feed of each other’s ideas of “simplicity” without having blinders on. Lastly make sure it’s in a room where everyone can draw their ideas and do not break these sessions into hourly mini meetings – make them days, in that spend five days in a room fighting, crying, swearing, hugging and so on (as you will take two days to get everyone in a relaxed mode whereby failure won’t be seen as embarrassing – humans are funny like that).

ProTip: Simplicity can be measured.

A Comic style slice of all your user stories can feel like a complete time waste, especially if you have pressure to deliver. In order to do this you have to justify how this can improve cost of delivery whilst at the same time it looks dangerously close to “Waterfall”.

Truth be told, in under a week or maybe two you could potentially visualize your entire current story catalog in a way that would likely reduce countless hours of communication issue(s) around design which in turn would without a doubt reduce communication costs. That being said, that is a very loose “return on investment” pitch to make.

  1. For giggles, take the existing slice you have designed and then unpack that into tasks with forecasts attached. Record that number and cost it out in terms of effort.
  2. Now, for giggles again, take your team and tell them “make it simpler” that is refine the story further, squeeze it to the point where you automatically feel it is not as “Powerful” in terms of feature design.
  3. Once that occurs, run your costs against that.

If done in a way that I am assuming you should see a fluctuation between the two cost(s) and it can be either higher or lower in terms of cost.

You have the first measurement to add to the “simpler” cost center, in that if it’s lesser in terms of cost – awesome, see we just reduced a lot of excess coding time!.

If it is higher then well how badly do you want a better user experience for the product you are making? (Sneaking this past people usually ends badly, so be honest and if executives do not subscribe then you have an answer on how they feel regarding “experience matters”).

Often when I do it, the cost initially increases (i.e. short term loss, long term repeatable win) because as I am refining the stories I am looking to make the behavior of the user less effort for them. That is to say I am thinking how the software’s job is to make their life easier and that it should do 90% of the work for them and that means at times decluttering the task from the usual user interface design and being context specific (i.e. isolate the user to carry out a task that’s reduced of distractions).

An example.

If you mapped out Outlook comic story you would probably have imagined outlook as it is today, whereby you have the tree of folders, you click “new” and prompted the same way it does today. 

I think of it differently, I think that whatever behavior I invoke that triggers “new” is initiated, the entire user interface goes into “new mail mode” that is the existing chrome/HUD is screened back and all the specific requirements I have for “new email” is in front of me. To my left there is a smart way to access my contacts, especially given I’m in a large enterprise and often have issues between first/lastnames and aliases”. To my right I have a different way to create an email in that am I creating just a text email or am I creating something that I want to insert media into for all to visualize my point?.

My point here is I could easily increase the development cost in order to assemble the user interface in a way that for me puts all the necessary pieces the end user will need in order to carry out the said task. Simpler doesn’t mean minimal (as that can often be misleading) it means how does one make the life of the persona simple in carrying out the task – given software is made to make our lives easier right?

UX Personas are not what you may think they are.

Having redesigned the new email some may declare “..hang on, you didn’t specify the feature criteria fairly..” which is true, I did not. The next thing one needs to learn is my idea of a user and your ideas of a user are highly likely two different types.

Example of Useless "UX Persona"

Example of Useless “UX Persona”

A UX Persona discovery will fix the assumption failure(s), whereby if you sit down and you unpack the word “user” to the point you exhaust your collective knowledge of that means. A UX Persona is not a story about “Jim who is 22, likes fishing and blah blah” as bottom line who gives a shit who he is or what he likes. A Persona designed like that is used for marketing purposes to help sales teams position the messaging & roles the said product will likely excite.

A UX Persona typically needs to focus on two simple areas, that is what behaviors they are currently exhibiting (AS-IS) and what behaviors they should be exhibiting (TO-BE). The word “User” needs to absorb the fact that sure, a user is doing xyz today but you are in the business of innovation so you in turn need to move them to a new set of behaviors!

Eg: When Apple sat down to design the iPod touch they were not pandering to existing behaviors user(s) were exhibiting on mp3 players. They moved us all over to the touch interface and it was initially confusing but today I see five year olds queuing music & playing games.

Defining a UX Persona for me is mainly about breaking their behaviors into four categories

uxagile-fld-geo

  • Influence (low to very high). Take training, mentoring, buying power, optimization etc. as categories you can help shape the low to very high score. Basically how much influence does this persona have over the adoption of your new product, the training burden required in order to use your new product and lastly the output of the product (i.e. are they the end customer for your customers customer).
  • Usage  (low to high). Similar to influence but now how much of the actual product are they going to be using? Specifically which modes of the product are they using (e.g. Visual Studio – Build time, Debug & Runtime). If you are writing software for both an executive assistant and their boss, then basically it is likely the assistant is going to have a higher rating then the boss depending on the scenario (vice versa).
  • Form Factor. What are they using to access the product? Given tablets, smartphones, laptops etc. are all evolving technology what is the likely input of choice. Do not just isolate this to device/platforms but also are they using stylus pens, are they using modified keyboards etc.
  • Environment. What is type of environment are they using the product in? Is it inside a coal mine where it is dark (i.e. white vs. black colors are a safety issue), is there many hazardous issues nearby? Is it noisy (distraction and cannot hear sounds), is it inside an office? Is it inside an operator building where your product is one of sixteen screens? 

    Environment is really an important amount of information that gets lost in the “Story” creation. As we really need to pay attention to how much duress, the user is under in order to make their life simpler.

Notice I never discussed usability issues such as their age, sight quality, gloves vs no gloves, color blind vs non color blind and so on? Well, if you did not now you have. Usability is a completely new chapter on its own, suffice to say I typically design for extreme in mind that is I assume the worst and hope for the best, make the process accessible and it in theory should put you in a position to refine for specific usability & accessibility scenarios (ie design garden sheers for people with arthritous and in theory you will design for both people with and without in mind).

Keep breaking the UX Personas you design down until you simply cannot come up with new ones. Then go grab some customers you have today or want to have tomorrow and play a game of “Guess Who” with the existing ones you have defined. If you cannot line them up with what you have or you end up with orphan UX Persona(s) then consider how to merge or separate until you reach a “best guess” group of personas to attack with your new product.

The trick here is also to focus more on “TO-BE” not “AS-IS” as the moment you release your product to market you are changing the rules of usage. You are invoking change in an area where existing mental models are either hard wired into the users or have no concept of said feature(s) even existing.

Once you have the list of Persona(s) grouped in a way you feel make sense (make tribes if it helps with the grouping) then I want you to divide into two piles – first being 80% and second being 20%.  Dividing these personas into the 80% and 20% piles gives you two options going forward.

The 20% pile could be the first target users, these are the ones you want to launch version (1) of your new product with. It means you have a much simpler feature set to attack but it also means you can iron out the kinks in this new process whilst illustrating the value of “simplicity”.

The 80% pile could be the same as the 20% or it can be the persona(s) that are distracting you from simplicity, which is they aren’t as important for the first round of delivery? Either way you choose to approach this just settle on one of these piles as your “target” user base.

The truth is you will never hit 100% of your persona(s) needs in your ongoing deliveries, and once you make peace with that, the pressure of being everything to everyone will be reduced. It means that over time, you will have to work harder to regain the lost personas back but that is fine, provided you stick to that mission and remain calm.

Example – When Silverlight was being built, the first version pretty much took the 20% path with a focus on video persona(s). As more and more versions of the product where released it then would take the missing 80% pile and subdivide that into 80/20 and again, take that 20% and chip away at those personas that wanted more than video.

ProTip: Consider putting these personas into a deck of “Cards” and hand them out to all members in your team. As when you are discussing problems in your day to day development get into the habbit of keeping them in view when you say the words “Customer” or “Users”.

You are in the patterns business.

Do not fool yourself into thinking the software you are working on is unique and never been done. There are elements to the software you are making that is fresh in terms of features here and there but ultimately you are highly likely re-using existing UI patterns found in software today.

The question is what UI patterns are you using and why have you changed them? That is to say which Color Modal are you going to use and why don’t you like existing patterns out there should it be different?

uxpattern

It’s at this micro level you isolate your users actual behavior and can be majority of the time field tested with customer(s) to establish what is “usable” and which isn’t. It is also at this point you can attach “who” the UI pattern is designed for.

If  you catalog these UI patterns you can also begin the “visual” treatment process before any code is even written (in parallel) as its really about which assets are missing, which you already own and when they can be queued for delivery.

Lastly and the most important point of all is that you can identify which Patterns are “Fresh” and begin your patent application(s) for retaining your intellectual property rights whilst at the same time ensuring that you’re not infringing on other existing patents out there.

 (i.e. have you read the terms & conditions of Office Ribbon, Adobe vs. Microsoft legal case around panel snapping etc.?)

Discovery integrates with delivery.

To recap, you have taken the simple “user stories” and you have mapped them into visual stories that help illustrate the “before” and “after” in terms of refining them down into “simplicity”. You have also identified whom the actors or “user” actually are finite detail that even talks to what, where and how.

So, discovery phase is done right?

No. This is the easy part as now you have information and you have a sense of possibilities. What comes next is the part where you often will lose the executive owners of your team. It’s the prototyping phase of discovery, that is take your ideas and come up with some wireframes or small time boxed interactive prototypes of how the comic stories can be achieved.

I say you lose them as if you do not handle this carefully you will position this phase as being “wasteful” or “not as important – function vs. form”. The trick is to factor this phase as being part of your “delivery” but knowing it is actually more to do with “discovery”, (it is as if you Jedi mind tricked the project management & executive fears).

Prototypes, Wireframes and Comic Stories are deliverable that works the same as actually writing the code itself in a normal agile scenario (i.e. they too can follow sprint cycles). You can do it parallel (if you are in v2 of this process) or you can do it sequential but the key is to deliver something that shows the investment is not wasted. You also iron out the unknown and can often deliver drops to candidates for the software(s) release to get a sense of what success/fail will look like had you spent months coding it for real.

Remember Windows Longhorn? Yeah most of that was Macromedia Director. Remember Silverlight on the Nokia N9 back in MIX keynotes? Yeah that was kind of a mini PowerPoint style animation! Point is when you demo something, nobody 99% of the time asks to see how many lines of code it took to make.

This approach builds confidence that your development has balanced the feature(s) required with market readiness/attractiveness whilst at the same time maintains a disciplined delivery schedule. It also allows  you to really validate your UX personas against the features that they are attached to, as then you can start to formulate a fairly accurate understanding of what feature(s) are going to make the release and who they are being targeted for. Having just this alone can improve your “feature” cutting when the time for reducing scope occurs; again, you know more about the impact than a general “user” statement.

It also helps to know this when forecasting costs for a new products development, which is how much this will cost to produce and who the first, second, third round of releases will likely excite. It also helps training / documentation teams begin preparing their work streams on how to manage change management issues. This also helps testing teams understand how to attack their tests to ensure the said quality gates are kept intact and aren’t being approached from “generic” scenarios (i.e. play the role of the UX persona not the roles like “let’s see how much of this I can break”).

Finally, it helps Marketing/Sales teams get actually ready for the “launch” in a way that hits your target market squarely in the places it should.  I.e. they know who to avoid making eye contact with during launch time should that UX Persona group not make the cut).

Sunlight is the best disinfectant.

Before I close out this poorly written tomb, let me say that no matter what choices you decide to make, ensure you keep it all open and transparent. There is nothing worse than having all the discovery and delivery processes being locked up in the hands of a select few or worse making it available but displayed in such an abstract format that it simply holds no clarity around what just happened.

The combination of UX and Code delivery needs to happen clearly, there needs to be KPI’s set and lastly you need to ensure everyone in the room has a visual simple display as to what is being worked on.

uxkpi

An executive does not care about your “Done” board in agile and they do not care about how many stories you have to write code against either. They also do not care you have unpacked a generic User persona into five sub personas and lastly they do not care about how you have improved the “AS-IS” comic style user stories into the “TO-BE”. The assume you do this normally, so don’t expect an “Adda boy/girl” pat on the back as well it’s like being asked for a high five for knowing how to check email?

The mostly care about progress reports – where is their money being spent and why. They will care at times when visiting peers or their power brokers come by for a visit, in which case bring all the above out for a full show & tell (factory visits is what I call them).

If you can justify the costs in a meaningful way that does not involve reading text then you are miles ahead of other teams who assume that just because a Story is written down that everyone “gets” where they are heading. Visualization of your products early often gives everyone in the room clear communication around what the vision will end up looking like. There is less pressure for demos to be at a fairly high standard given comic stories, prototypes & wireframes will paint that end point in a much more cleanly digestible way (which ultimately will mean memory recall – which is what you all want).

Lastly, before I close out, can I just say aloud – everybody relax. The agile movement is simply about taking a lot of big lumpy problems and breaking them down into really small bite sized pieces that are easier to manage. This is a strategy that is not unique and exclusive to software development; other industries do this daily and without as many issues as we often create.

An Example of this process is grab 3-4 unique small “beads” and drop them into a bucket of sand. Mix the sand up, then using just a small scoop, plastic bags and a scale come up with a strategy on how you can sample the said mix evenly.

Solve that problem and you can have a future in geology but at the same time, you will also be in a better position to understand how Agile + Forecasting actually work.