Agile reality check–what if Jesus was female?

Twitter stream caught my attention, as the conversation came up around how Agile maps to the doctrine meets reality.

What the..

I like to think I’m a guy who’s travelled around to a lot of teams and tried many things, I’ve been in quite a number of teams world wide and have seen some great projects succeed others I dare not mention for their curse alone may bring bad karma.

Throughout my travels, the concept of Agile has always been this mutated religion that often gets thrown about but really doesn’t cement the virtual “it should be done as this” to “this is how it maps to reality”.

In all the teams I’ve been in one thing always was consistent, that is there is usually one or more person(s) in that team that are often the weakest link – you know, the one that if we were playing survivor they’d be the first to go.

That person often is also one that has a degree of influence and whilst a democratic philosophy is one we should aspire to in an agile setting, reality is usually there’s an alpha in the room and they often are the ones who approve your timesheet – thus, you suck it up and give way even if it’s a dumb decision.

I’ve heard often that “Well the reason that failed is you had the wrong person” followed by how the role was given to a jackass who typically had no business making decisions other than “would you like one or two biscuits to go with your hot beverage?”

That’s the problem though with this whole agile philosophy, we aspire to working with a gang of people that make you feel as if you’re coding along side a crew that have similar skills to Oceans 11. Yet when you look around often the case is you’re dealing with a crew that came from Billy-Bobs 12 and its often the 12th man is usually the cousin twice removed but was forced to be in the team due to Billy-bobs wife being a royal pain in his redneck side.

Ok, that metaphor fell to the wayside but my point is I often find the reason why agile/scrum fails is simply due to the aspirations around the said doctrine not mapping to the reality of a commercial environment.

The amount of customers I’ve had to create solutions for often have no clue as to what they are doing and its usually why they hit the panic button, allocate budget and socket in a development team to solve the said problems. If you’re lucky you get the business ownership in a place where they feel competent enough to say out loud “I actually understand my business problems and desire software to solve them” …if you’re lucky.

Do you as a developer look at the said impending car crash and simply yell “we should really stop what we are doing and look at who’s driving this car and why” or do you simply lock onto the weakness that which is a business out of control but with a really big wallet thus as a contractor exploit this until the wheels come off. Once the wheels come off you simply throw your hands in the air and do what everyone does when agile fails “You had the wrong person….”

Here is my creative thinking on a way forward.

What if you had your team divided into two parts, that is you have TEAMA working on the grind, as per design think on your feet reactive feature development whilst TEAMB looks at iteration two, figures out the weak/hot spots and devotes more time to just R&D (spiking the big issues).

Once they have that mastered or time boxed them then switch gears, own iteration two and then iteration three is then put into R&D mode followed by a rinse/repeat formula.

Would this not also include user experience?

Anyone tried this? Or did I just declare Jesus was really a female and not a guy after all thus a war breaks out and I’m likely to be crucified for challenging the status quo.

Related Posts:

  • No Related Posts

How much would you invest in a pixel?

I am a massive fan of World of Warcraft again; yes, it is sad isn’t it? Last night I was playing my usual allotment of time watching pixels update on a screen vs. interacting with real humans and something I witnessed struck a chord with me.

The ‘flash of genius’ for me was when I was playing a typical Player vs. Player (PVP) round of Battleground(s). This is a part of the game that essentially randomly aggregates a group of people spread throughout the entire WoW realm(s) into a 10vs10 etc match.

It’s basically unbridled chaos and it really highlights some components for me that I find fascinating as to watch the herding mentality of us humans in an avatar driven game is kind of predictable. For instance, I was the first out of the gate when the match started, I rode my horse towards a spot that was the second closest and because I was the party leader, many other players followed me. I arrived at the spot and just waited. Out of the six other players, three stayed after 20sec has or so of making decision whilst the other three grew what I can only imagine as being bored and rode off in search of a fight.

imageWhat is so profound about this is how easily I convinced others to wait beside me in a place that had no real plan other than "well, if the sh*t goes down, we defend with our lives" as the core plan. We had no vision of what was about to happen beyond that and we had no clue as to how we would all work together as we just met each other in game only 5mins beforehand. Here we are armed ready to fight and hoping we can figure it out as we go.

We died.

This is much like most teams I’ve been in over the past few years, I keep hearing about a good team is one that is in sync with one another but in the end that only lasts for the first flag/waypoint as beyond that a lot of variables occur that in turn causes a de-synchronization from occurring. 

In the above example had I been paired with a healer and another tank/dps (tank or dps are basically characters whose sole job is to hit hard and often as a healers job is to keep everyone alive while they do so) we may have stood a chance of survival. As we all had a role to play and whilst the plan was distilled into a core class structure, we still have a series of objectives that must be upheld.

A healer must be protected at all cost, as well that character is your tipping point between living and dying but at the same time a healer must keep back from the fight – as much as possible. A tank/dps job is to draw fire and get deep into the melee as much as possible and the more you can tie up your enemy’s focus the greater the chance of a win.

In software, this concept has not entirely lost, as a UX/UI person(s) job is to figure out how to keep this software from dying of bad usability death. The coder’s jobs are to underpin it with large amounts of code to keep structural integrity intact if they do not do their jobs rights, it can in turn create more work for the UX/UI person to go fix. If the UI/UX person does not do their jobs, right they can in turn suffocate the work of the coder – so it is a partnership.

A great software release respects this partnership to the end. Good UI/UX and Good Code = Good software.

If you randomly put together a team of mixed classes and pin your hopes on the agile a way of life then well you are no different to my WoW example. An assumed leader leads a group of you into a spot that has no agenda or plan other than "don’t die please".

How you live or die is based purely around how fast you can communicate with one another about what tactics you can deploy to uphold this basic principle of preserving one’s life.

All it takes however is one person to break ranks, to be the Leroy Jenkins (See Video below) and well it comes unstuck and fast. We all die of a horrible humiliating death – (aka miss our deadlines etc.).

 

Agile is not enough, is my overall point. I think agile works if you are solely focused on being a tank/dps class (coder). If you mix in UX/UI then that is where it keeps coming back with mixed results, there appears to be no right or wrong formula here.

The one concept I think – and it’s only a theory – is that you need to at times stop fighting the code and give enough time for the healer (UX/UI) person to catch their breath, to drink some mana potions if you will to figure out how to navigate the next fight.

Lost in my metaphor?

What I am trying to say is that UX/UI in a sprint equation needs to occur every other sprint, meaning at some point in the process you need to arrive at a point in time where you the coders will have to refactor your UI / UX to accommodate the new direction in the design.

It sux.

It is however, the realistic way to accommodate the reactive design you have put in place and to be clear it has little return in investment other than user efficiency and satisfaction levels.

Now comes the question – how much do you invest in a pixel?

Answer that and you will have a better understanding of Agile, UI/UX + Code than I currently have.  As you now need to think in terms of how it all comes together and what value you place on the UI/UX component. Agile won’t necessary work in the way you think when it comes to intgerating your healer (UX/UI Person) into your battle group. At times you may not need them – that is until your hitting a wall and soon realize it would have been better to have them at the start of the fight vs end.

I can think of some rebuttals here – ‘well you are doing agile wrong’ or ‘your team sounds like it wasn’t assembled correctly’ to which I simply respond – welcome to reality. Sometimes you have to play the game with a randomly aggregated team and it is not always a case of Greenfield project management.

Now, your move, how do you accommodate these variables.

Related Posts:

THELAB: User Story Management – think beyond cards.

As a Hybrid I want the ability to create user stories into clusters so that I can isolate ideas into more finite pieces.

The Problem.

Seeing that most are probably likely to ask what the heck I mean?  A User Story by SCRUM standards is just a small two-sentence tid bit that gives one clues as to what one should develop in software vNext? The problem with this line of thinking is that it goes against the nature of human phycology in that to isolate streams of thought into abstract finite forms does not work.

Want proof?

Ever sat in a Story planning session and as the stories begin to flow you immediately start to cluster these in your mind into groups? You visualize them into clusters when you see them that are because we as humans are massive fans of chunking information so that we can process them in more digestive formats. Is this a problem? No, it is just a natural primitive instinct to encourage you, as an entity that has grown opposable thumbs into ensuring the thing in front of you is both learnable and adaptable to suit what happens next.

Today, if you were to look around on the inter-web you would see a bunch of SCRUM friendly software and most of them try their best – and fail – to re-create the experience of User Story capturing.  The approach they often take is to create a rounded rectangle and display them onto the user’s screen as:

"this is a card and therefore it’s like the one you have in your cubicle in paper form. Please use this the same way in which you would that..”
Signed Software Designer.

Recently I learnt a very important snack of UX goldenness and that is we do not use software, we work with it. Software should reflect who I am and what is contextual relevant or albeit synchronized to suite my needs vs. having to ask me to adapt to its needs. Handing someone a virtual card on screen does not offer anything of value, all it does is remind me the constraints put forward – I need to cram an idea in under two sentences in abstract form so that I can break it down further into sub-forms in order to generate software feature(s).

The Flash of Genius.

I sat down today to tackle what I call the "Opening Act" in my UX magic show for an upcoming application I am making in WPF debut titled: IWANT – Weaponizing Agile.  As I sat staring the blank canvas, I began to panic a little, as I did not want to just re-create a grid of cards and declare victor to do that is to admit I have not thought about who the end user is.  Instead, I went for a walk and asked myself a simple question – Why does it have to be card and what else could it be? The more I thought about the form of media given to every SCRUM disciple out there the more I started to question its sanity – more to the point, who the freaking hell said a card was the best solution to this problem? A group of people who conjured up this religion we actively calls SCRUM today?

The SCRUM founding fathers if you will have some brilliance, but I’m not sure user experience or human phycology was at the forefront of their minds when producing this thing we call User Story management via card sorting.  I would however put forward the theory that they were thinking of ways to force we humans into the existence of tearing down our natural instincts to cluster / chunk information in forms that are more isolated / streamlined.

Armed with this moment of brilliance, I sat down and began grinding pixels. I began to think about the problem in the fashion of idea clouds, just like as if we were about to read these stories in comic book form.  Yes, comic book form – as name any child today that doesn’t find reading more enjoyable in such format and I put it to you that we adults need to recapture our lost youth as much as we can.

The Objectives.

Like all good experimenters, I need to assign some objectives to this newfound awareness. They are along these lines:

  • I want the ability to visualize clusters of user stories in ways that respect my primitive instincts but at the same time respect the existence of SCRUM.
  • I want the ability engage the experience with a sense of depth that is not flat, lifeless and typical response to visual grid ways.
  • I want the ability to get in and get out when I need to resurrect a User Story of a specific type.
  • I want the ability to just create in a fast responsive manner and I want the said creation to have dependency links throughout that are of contextual relevance.

The solution.

Armed with this tall order, I bring you thine creation.

image

The Terminology

Story Clusters. A Story cluster is a group of user stories that fall under a theme / category. The idea is to allow teams to partition their ideas into taxonomy of their choosing but more so to ensure they can feed the idea threads around a particular concept – Security? Customer Management? File Storage etc as but examples of "theming".

User Story vs System Story. They are one in the same the difference however is to give developers or engineering minded people a free pass in terms of allocating some ideas to either a person(a) or a technical agent of their choosing. An example of this is

"As a User I want the ability to save my blog posts so that I can share it with others!" – User Story.
"As a UI Client I want the ability to CRUD a blog post so that I can allow users to manage blog posts" - System Story.

Some SCRUM masters may have a mental seizure at the sight of this – deal with it you jackasses.  The reality is when someone sits down to write a User Story majority of the time the  person is trying to force themselves out of a cycle of developer eyes and into something, they are not. The purpose in my opinion of this exercise is to tease out the idea; we can break it down further later but get the idea captured!

The UI Teardown.

image

View Finder. It’s here you will find the User Story cluster(s). The clusters are grouped into a cloud like existence and the more stories found within the cluster the larger it becomes. I choose to enlarge these to enforce dominance for one and secondly to attack the end user in a subliminal manner by encouraging those to break it down into a separate cluster if it is getting to large. This is exactly like a container of any kind, if you keep cramming it with stuff it gets bigger and eventually you start to think about the problem again but now are already looking at ways to fork its contents.

Notice also, how the clusters are blurred and have a sense of depth.  This is to ensure the end user does not take what is in front of them for granted, I want them to focus and I want them to explore the data. I do not want "at a glance" viewing; I want interaction and comprehension around what is in front of them. Explore, interact and adapt.

image

Search Box.  Given the end user for this product is someone who’s stuck in the mental model of "As a blah I want.." style thinking, it’s important for me to not interrupt that conscious thought.  If they are looking to find a specific task, user story or note of any kind then it’s here I expect them to take a leap of faith and search.  Important thing to note here is I am not relying on this massive data grid or tree control to allow my users access to the data.  Why not? It is important to not give them a crutch to lean on; I want them to think about what they are asking and how they ask it. Providing a DataGrid or Tree Control is encouraging them to embrace perspective memory way to much (i.e. they will next want the ability to pin that area of navigation, taking up valuable real estate simply because at the heart of it they don’t want to have to collapse / scroll to that sweet spot again). Instead get them into UX Rehab, ask them to treat the software as if they were turning to a co-worker and asking "hey, where did you put that file.." – behold the power of search!

image

Create Only. Notice I do not give much in the way other than "Create" options at first.  I do this deliberately as I want the end user to build first tear down / fix next. Find the thing you want to do other stuff to but here, all I am interested in is giving you ways to add to the web of data.
Some of you may notice I used a Skull as the icon to represent the User Story.  The reason I choose that icon instead of a typical silhouette head of a human is simple – we are creating digital Shakespeare.  You are telling a story, so it is fitting – that and this is the spot where good ideas may go to die.

image

Stats.  I am a sucker for fun facts or a sense of proportion but more importantly, it is about keeping a score of what is going on. Too many times software hides data to the point where you either underestimate or overestimate the complexities of a given problem because of such things as software hiding key pieces of information.  I choose to keep a cycle of statistics around Story telling within iWANT so that as users are working on the feature catalogs of tomorrow they are also getting some fun facts so that they may turn to one another with stuff like

"oh shi.. We have like 300 stories added this month..man, we are never going to get this done in time.." (Invoking maybe a rethink in customer expectations?) etc.

The Conclusion.

My concept is unproven and untested. It may very well fail or it could succeed but right now any feedback or questions around this approach is simply "I think" and not "I know".  What I am confident about is that it will spark a different round of thinking in terms of how one approaches user story telling. My objectives are clear enough to outline the overall intent that is to provide a safe haven for undisciplined and disciplined thinking around what goes into software of tomorrow.  SCRUM is a little too religious in tis procedures and I find at times it goes against the grain of human psychology thus forcing a practice into place that at times is unnatural.

iWANT is a solution I am to challenge this thinking but at the same time allow development teams of all sizes the ability to get the administrative overheads out of the way fast, cleanly and smoothly so that they can focus on writing code, grinding pixels and marketing their product(s).

Related Posts:

UXCAST–Making Isometric Workflows inside Expression Blend–Part 1

Heroimage

I did it! and I feel exposed. I sat down tonight and put together my first of what may or may not be many (depending on how badly I get crit) screencasts around UI / UX + Microsoft Technology.

In this video, I show folks how one can take a workflow design concept and inject it into your canvas of choice but in an Isometric format. I like Isometrics simply because you can get more of a spatial view than most screen angles that and it derives from my old Pixel-art days so..yeah..Isometrics are the way!

Hope you enjoy, and feedback welcomed.

 

 

RIGANEIC – UXCAST – Isometrics in Expression Blend from Scott Barnes on Vimeo.

In this screencast I show how one can take a Isometric workflow map and transpose it into Expression Blend 4.

Related Posts:

What happens when you bring the UX person in last.

How many of you have been to a conference that has a UX/UI Person on stage discussing the mystic art of software development and design? In that said session they at some point raise the slide that outlines you should engage a UX person early and think about UI/UX from the start.

How many of you then go back to your respective cubicles, nodding in agreement but then immediately go into a new project ignoring the said suggestion?

Don’t lie, I see you looking back in a nervous manner and shouting out reasons like “Well, we didn’t have the budget” or “My boss wouldn’t …” etc.

Meet Mr Wolf

image

Just like in Pulp Fiction, a guy like me is called in after the crime has been committed. I’m the guy you bring in after you accidently killed someone and its my job to navigate the mess in order to get you back to your life without prison time. If I succeed, you don’t’ spend the rest of your life in jail if I fail, well, learn how to fight using prison rules.

When I come into a team in this situation, the thing that I notice the most is they are looking for guidance around a plan, in that it’s a case of me analyzing the situation, asking a series of specific questions relating to the said scene and then giving them a task list to execute on – whilst being clear to stick to my rules or well, good luck in jail.

The problem with this approach at times is that you have usually one or two people in the room who ask for your help but at the same time are giving your orders on how to clean the mess up quicker – each time they do this they in turn increase their chances of prison time.

It’s a hard balance to participate in from my perspective as I have to figure out a way to firstly give a design and experience to the software’s targeted end users in a way that isn’t just a screen after screen of tree controls and datagrids whilst at the same time having a low impact to the codebase and lastly but more importantly doing it within a very tight timeframe/budget?

Its hard work and you know what, its going to cost you so don’t whine about it.

Had you called me from the start, it would have been a completely different outcome and yes, you’ve heard this thousands of times at whatever conference you last attended – engage a UX person early and let them direct the screens overall compensations – design first engineer second.

I personally have been pulled into over 30+ projects in the last year that have this exact situation unfolding before me, in that it’s the last two sprints of a project, I’m playing a massive game of UX Tetris with WPF/Silverlight or Wp7 and I’m constantly being harassed on time/budget questions.

It sux but that’s the reality of the role I play in this business, the guy who can code and design at the same time. Its why I charge the amounts I do and sure the price attracts attention but in truth If you follow my rules and approach you will come out with a finished result. If you interject along the way with the way you think it should be done, fine, I’ll do it your way but if it fails – given the inexperience so far, it will – then to be fair, you were warned.

My way or the wrong way.

The way I approach situations where I’m brought in at the last hour is via the following routine.

  • The Primitives. In every application you have what I call the primitives, in that these are the buttons, modal windows, textbox’s, scrollbars, checkboxes etc. .. the stuff you get out of the box for free with .NET. My first attack posture is to start building out a resource dictionary library for you to bootstrap your UI against. In that for example TextBox and Button controls I start putting into what I call the UI-Shirt-Sizes, Large, Medium and Small. If your form in question requires the user enter 15chars min/max, who cares, the end user is open to the idea that this textbox is a small one that magically doesn’t let me type more than those pre-defined characters.

    If your software has a large sentence like “Find a users profile”  labels on buttons – guess what I’m going to do, re-label that as “Find..” keep it simple less extraneous cognitive load and more assume the user has used software before they picked up yours.

  • The Layout. Chances are you’ve probably put together a UI that I can only describe as a DataGrid orgy followed by copious amounts of Modal windows and screens that probably looks like the dashboard of a Qantas Jet in terms of fields/inputs etc. Just for giggles, I’m also likely to find a TreeGrid control because of some random hierarchy based navigational weird mutation of a need (you know who you are, there’s no shame in admitting that)

    I’m going to simplify this down to the point where the data flows in a fashion that makes sense to the outcome of the screens purpose. I’m also going to look for ways to make use of a party trick called “progressive disclosure” as you do want the user to feel like they stand a chance at success should they use your software don’t you?

    This is what I call the hostage negotiation in that chances are there is an entity in the room that is locked on the way it works at the moment and its my job to find a way to get you to release parts of the UI so I can find a happy resolution to the situation. I’m going to ask you to give me a little control over how the UI comes together and in return I’ll turn the lights back on followed by some pizza. We need to build trust and you got to work with me on this one, I can make good on some promises if you do!

  • The Validations. I have seen some crazy ways that developers have approached the simplistic concept of alerting the user that they did something wrong. What I have noticed the most is its kind of OnChange vs OnSubmit mode of approach. The reality is validation isn’t that, as you have the “Hey before we show you this form, here’s where you need to focus”, “Hey I just noticed you filled out that field wrong, can you fix it”, “Hey I am about to send this data off and noticed the form isn’t really done yet?” and lastly “hey I know at the time you sent this the form felt like it was good, but the server just called me and told me its wrong, so can you go fix” .. point is, IDataErrorInfo implementation is only going to work so far.

    I focus on this area is this is where at times bugs tend to get brought up and it can be a case of where the most effort can be spent trying to undo user fail. Its important that one approaches this in a way that makes sense to the end user and you also find ways to decode the error in a meaningful way – not one that aims to reduce the user to a dribbling mess of “I don’t speak computer geek?”

    Validation styling and alert states are crucial.

  • The BackgroundWorker. Its not about just fixing the UI look and user experience fail points its also about shift the work into areas that make the application feel snappy. In WPF the UI Thread is an absolute pain in the butt when you at times talk to WCF – in that I have seen a lot of apps that keep the entire workload under the one thread only. In Silverlight this can be a fairly low risk situation given Async works ok, but in WPF it means your application grinds to a halt until the service layer comes back from the dead. It also isn’t just a threading issue its also a latency issue as well.

    Latency is a buzz killer in making the user feel like the application is responsive, it creates this effect in which the user punishes themselves and attempts to pay their debt by trying again and again etc if left unchecked. Its situations like this I look for ways in making the user aware that they did a good job but at the same time finding ways to NOT remind them of time – as time is the enemy given each millisecond you are banking hate debt with the user?

    This is where I look for ways to use some slight of hand techniques to convince the user there isn’t a problem and everything is fast / efficient in the software. I also may lie to the user if I can eg Please wait while Security authenticates you” – damn those Security Nazi’s I agree, it sux but what can you do – its actually an effective way to pacify users as you all collectively shake your fist at IT Department for always riding you about security – when I reality I’m waiting for blah service to wake up from its slumber?

    Point is, find a common villain to throw under a bus or find a way to keep peoples attention away from their watch (eg: Now herding llamas for the great stampede …< MAXIS do this in their games, it works)

I’ll leave there as this is turning into a tomb of gospel around how I approach my job, but the point is that I do have a process and there is a method to my madness. I’ve been in a lot of fire drills with WPF/Silverlight and WP7 and I’ve now settled on some patterns that have produced results  around nice UI/UX and customers happy.

The reality is this though, you could of saved yourself minimum double through to quadruple the amount of money it cost by bringing me in early instead of late. I can’t say it enough, engage early and upfront you will save, you may be skeptical htats fine, but either way a person like me gets paid – its just a matter of how much?

Related Posts:

Windows Phone 7 – Where is Don Draper when you need him?

I’m looking at the latest in many of bad experiences found on Microsoft.com regarding the new improved Windows Phone 7. My first thoughts are, I guess the budget was low this year for the website but then thinking on it i’m probably going to wager that around $200-$500k USD was probably spent on this site via some internal global vendor.

Let me deconstruct the site so you can maybe get a sense of what I see (Lots of visuals). I’ll also compare it to the already entrenched and spark of creation for this phone – the iPhone and its respective site.

Value Propositions.

If you’re taking a product to market, you pretty settle on what you would call the “Value Proposition” in that its your initial promise that you want people to remember the most – it’s what I call the impact / aka upper cut. Windows Phone 7 isn’t clear on what its main value proposition is, its a phone OS which is fine, but what does this phone do that all phones don’t do. More to the point, why did Microsoft spend so much time and energy getting this phone ready for market – what’s the secret sell or sizzle that I’m about to be knocked over in its sheer awesomeness?

Comparison.

Microsoft

.

image

The very first entry page of the site (assuming I come in from here) puts me through approx 5sec animation of what the introduction to the phone is. The first parts are a bunch of squares or tiles which overload me with brands ranging from Bing to Zune (care factor, as these aren’t a household name as yet world wide)?

 

image

 

Secondly I’m hit with what I can only describe as Dr Suess style messaging.

…Say hello to Windows phone
the only phone with live tiles.
less stop and stare more glance and go
less out of touch more in the know?..

I don’t even know what that means. Live tiles? stop and stare? is that even a problem? its less out of touch and more in the know? what do you mean?

It’s one thing to open with a question to trigger an action, its another to completely ignore you and confuse.

Looking beyond the animation and assuming you can read the sequences fast enough, let’s assume the user scans down to the bottom, where I can only guess as being the main hubs of navigation.

  • Explore my choices.
    I’m guessing this is a good start for me to shop for the said phone, important if i already know ahead of time about the phone and i just want to jump straight into purchase mode.
  • Make Windows Phone Yours.
    Demo area, good, so you have a virtual phone I can play with. I’m liking this, as rather then sit through silly marketing speak, i can just play. I click on this, boom, Facebook.com – guess what guys, most corporations around the world specifically block Facebook as a URL given the ample amount of time waste that goes on there (hey i disagree with this but it is what it is). Furthermore, why am I now on facebook? and why aren’t i able to just play with this inside the same website? what If I want to explore what else you have to say? where are my options?
  • The place to shop?
    Oh so this is Microsoft’s “AppStore” ok, I’m seeing some potential here, but can we first establish what the phone is first? I’ll get to that a bit later maybe?

Where is the navigation? oh its the small text above in vertical stack formation with poor spacing.

image

Apple

image

The first thing you see when you visit the iPhone website is a highly impact visible slide show presentation on the value proposition of the iPhone4. Its bright, its impactful and no branding overload. They could of went to town here on Google maps, iTunes, eBay, Safari etc.. they didn’t, they kept it on point and you focused – here’s what the phone can do that we think is important  upfront.

They also underpin the value propositions with clear well spaced list and palatable enough read around what the said slide show probably just told you should you still not pay full attention. The point is, they are reinforcing what they think you should be focused on and not distracting you off the site. They are making the pitch to you, and are working hard to retain your full attention.

image

Looking below this page, notice how they break the navigation into areas of interest. It essentially is attacking the user from a matrix of context as in for those who just want to know what;s inside the phone, features is probably a good bet. For those who are interested in the design of the phone, again, feast your eyes on that link called – Design. OS itself your cup of tea? here you go, here’s whats new and old in the operating system. Apps, Gallery and Technical specs again clearly partitioned and you can at a glance get some deep understanding of what this phone story looks like.

image

Apple are very good in their website design comparison to Microsoft, but my points above here is that you are immediately left with a sense of both what’s potentially inside this new gadget as well as given a sense of spatial awareness around finding out ways to find more information should the value propositions still not convince you to go into a store and play.

The main important piece here is getting you into their stores, buying online is fine but lets face it, you will most likely want to play with this phone physically first before you buy. Once I have you in my store i can attack you from all points via customer service reps through to convincing you my promise (value prop) is true. Trust.

Less is More.

Moving beyond the initial sell, let’s go deeper into the site and explore true functionality of the phone. Having a sense of awareness of the depth of the Windows Phone 7 is important  but at the same time you don’t want to overload them with excess information. Let them play with the phone in store or virtually if you can will answer a lot of that excess data but the most important thing is to attack them in a way that they will appreciate in that – give me the basics, give me what i get that i normally wouldn’t get and lastly how does this look visually!

Comparison

Microsoft.

If you click on Discover you are given what I can only describe is a list of random points that dont seem to have a sense of grouping and lastly a sudden need to cram branding overload into the pitch.

image

Why do i care about XBOX Live? Bing? Windows Live? Facebook? and more importantly where is Twitter? hey since we are in the mood for name dropping why stop with these.. point is, it’s Microsoft teams pitching themselves first customers second here. It’s obvious and shallow and unnecessary.

The headings are ok, I’m fine with the three (3) sections of break downs, but keep it simple stupid?

It gets worse, I can’t even click on the phone it’s inviting to me that the phone looks virtual, but wouldn’t this be a great opportunity for me to play around with it? explore it? go deeper? ignore your sales pitch and play? as you’re probably not helping me anyway?

As I click on each of the “Discovery Points of Interest” I soon realize that i am first meet with a tagline followed by another click on reading more? I’m all for white space Microsoft but really, this forces my reading habits to slow down to a pace that I’m probably not as comfortable with. Give me the opportunity to speed read through the areas I think could be interesting vs the ones I probably think aren’t? instead I have to go through a 3 click uninspiring process of both reading text and keeping an eye on animation(s) at the same time – i think this may actually qualify for cognitive overload.

image

More importantly, what is a hub by the way? (I know because I’m an early adopter and its my job to know) but have we clarified what a Hub is on the website btw? I can’t seem to find out the story behind that? Ignoring the Hub definition if you then click on the Music + Videos Hub you will be meet with the similar looking tagline followed by a more action..clicking on the more action you are then given a fairly reasonable looking paragraph about the story of Music + Video. It however still wants me to click more on finding out about this thing called Zune (living outside the US, Zune isn’t known, so wtf is a Zune?). After that click, I’m now taking to a different area of the site with really what I call a “Well good luck, hope you figure the rest out” purpose. There’s no elegant hand off to this part of the site and more importantly you just broke my concentration.

Shallow experience here in the discovery of this phone. Microsoft are being lazy and not really delving deep into an immersive experience that gives me clear precise clarity around what this phone has or hasn’t got. I can’t skip ahead and i’m reduced to a pace that probably isn’t going to make impact.

Apple

image

Let’s not muck around, Apple are good at their feature break-outs, but the thing I liked the most is you can watch a video on the phone itself (Good entry point to watch that expensive advertisement you put into TV/Online no?)

Furthermore, the page asks one thing of you, and that is “Are you happy to scroll down?” and to be fair its a habitual ask meaning its already baked into all users on the web as part of their day to day muscle memory.

The more you scroll down the more you see what’s inside the phone and its simple, Tagline, paragraph, big visual and a learn more point which takes you to a deeper insight into that feature. They position the phone well, they treat you with respect as a potential consumer and they are working hard to entice you into areas of your interest and less Apple’s.

Apple also won’t burden you with brand overload here and when they do, they do so in a way that is digestible. Constant re-use of the phone and screens within the phone that highlight areas of interest. Clicking on iPod you get a good sense of what Music will look like under the iPhone regime and yes they introduced the brand iPod – but they are allowed to, know why? iPod is ubiquitous around the world its an established brand. Zune isn’t.

image

 

Conclusion.

image Microsoft Marketing need to wake the hell up, get back to basics and find a Don Draper style character to head-up their online presence. Loose the Barney & Friends commercials and treat this product like it was the first time in the world you’ve told people about the story of Microsoft and Phones. Stop playing a game of hide and seek with information and more importantly down-play other brands if they aren’t as well seeded.

Everyone in that team needs to pick up a book “Don’t make me think” and learn usability 101 mixed with marketing 101. Get people to stores to play with the phone, make them promises online but make sure you can back them up world-wide. This isn’t a US focused product, its a world-wide one and you need to entice the consumers in a way that makes sense to them as well as keep up to speed with your competitive issues.

This phone needs to beat iPhone and Android, and it needs to win.

Related Posts:

UX Creator Tip: Fear the surrogate user.

image

Ever sat on a project and heard someone give their account as to why the user base won’t like xyz feature or UI change? Ever sat in a cubicle and listen to someone rail against the idea of change for fear it would upset the user base to the point where the helpdesk would be flooded with “Please Explain” calls.

Surrogate User – people used as a substitute or representative for users, in order to provide information in design meetings, user testing, and so forth.

The reality is this, end users are surprising beasts and often will surprise you in what they can and can’t do. The end user especially in enterprise is so used to crap-tac-ula software day in day out that anything really that you do as of today onwards is highly likely to be much simpler to what they are used to (especially given the consumerism within Enterprise these days). Furthermore should they dislike the software they aren’t likely to all abandon their jobs simply because of a bad UX decision – as 9/10 they are under duress around crappy software decisions made by other teams anyway.

Instead, the end user is probably thirsty as ever for software that feels simpler to use and actually looks like someone took the time to think about them and their needs instead of how it solves one finite problem only. Software’s job is to react to the end user, not make the user react to it! :)

End users are also making use of a variety of software so whilst one particular UI pattern that has been adopted is “the way they are used to today” doesn’t necessarily mean they are ignorant of all other UI patterns out there on the market.

The key is to leverage existing muscle memory as much as you can today and less showing off on what you can and can’t do with some of the UX Platforms at your disposal. Be creative but don’t be overly creative, you get no points for showing off.

Layer-in complexity is what I always tell people, as it’s much harder to reduce complexity later than it is to bring it in slowly. It’s also the best discussions to have, as if the business or end users are complaining that the software is too simple – which let’s be clear, I dream of these discussions – then you have more of a baseline to draw from going forward around feature weighting and selection (which plays into UX + Agile in a way).

The surrogate user is someone you should fear in all software projects as they often bring pre-existing bad habits forward and lastly suffer from the “I’m in touch with my audience” arrogance (sometimes without realizing. I’m told that a Surrogate User when done right works, i’m yet to see one of these unicorn beasts, but i’m told just the same.

Whenever I hear someone say “Users don’t like..” my first instinct is to respond “Oh? Did 1 in 5 housewives tell you that or is this something you’re just making assumptions on?” – Meaning is this “I think” or is it “I know”.

Surrogate Users are dangerous unless they are moderated by someone who has the “UX” somewhere buried in their resume, as they can often decode the “personal bias” from the science of what these entities represent.

Related Posts:

Project Salvaging is Microsprinting

Microsprinter

Situation is simple, you’re someone who has been brought into a project at its last witching hour, there are not a lot of project management fundamentals in the room and everyone is constantly emphasizing the “we have to get this done, no time” analogies and metaphors at you. What do you do? How do you navigate this and salvage what’s left of the project to turn this around into a productive and usable solution.

Answer is Microsprinting.

The past 6 months now, I’ve been constantly brought into projects that have gone off the rails for one reason or another and it typically comes back to scope creep and lack of discipline in terms of leadership or more to the point communication.

This is why SCRUM is a concept that every developer should borrow ideas at the very least from, it’s not so much a rule book but a communication protocol that all can agree to and figure out ways not to bump into one another.

That being said, setting up sprints that go for week(s) are great but when you’re faced with a deadline that is measured in hours whilst having to also work back from an unmovable deadline you simply need to calibrate your effort to a micro format.

The List.

The way forward is this. You first analyze all the features that were expected to be in the release for the project, don’t worry about who did what wrong or where it went pair shape. Sit down, take a deep breath and focus on getting a list together that outlines all the features needed to be done. Take this list and break it down to a point where it’s not to finite but at the same time granular enough that all can accurately see what the effort ahead looks like.

The wireframes aren’t the spec.

A lot of times I see wireframes and folks are looking at these and going “Ok, I need that wireframe to be designed” which is a perfectly valid request, in reality though as an interactive designer your job is to not just paint pixels here but also decide on how the moving parts become interactive. More to the point, you’re also analyzing each of the boxes that say “news” and thinking about how the data template will look per item in the ListBox and so on, you really need to map this out per screen and come up with a fairly comprehensive list of both the interactive specification as well as a list of visual states that need to be designed end to end.

I say this as a box on a wireframe can turn quite dramatically into 2-6hrs worth a work depending on which direction the interactive designer decides – “Ok this box when clicked now will go to this screen and the transition needs to be fade along with a loading of individual boxes to lead the user as to what’s change in an elegant fashion etc”

Break the wireframes into detail as again the project is off the rails you don’t have time to sit back and create high fidelity prototypes for each wireframe around its interactivity. You simply need to outline what’s likely to be the effort and do the best you can to not screw up given the constant variables of time/budget is much shorter than you’d ideally like to work towards.

8 is the number, not 7 or 6 or 2…

Break your day into 8hr segments and these are effectively the Microsprints. Every 8hrs regroup and triage what needs to be done and what has been done, agree and move onto the next microsprint. It’s also important that you work with a stack ranked list, keep it simple, rank it from 1 to whatever and attack the list one by one until you get to the finish.

Chances are you may have 100 items but in reality given the timeframes are short whilst the budgets are tight; you’re effectively likely to end up with 70 items done at the end of the deadline.

It’s time to start sacrificing and yeah it sucks but if the project had of been mapped out properly from the start you’d have the full 100. The reality is its off the rails, you got to start triaging in a cold but fair way sort through the items that are going to have a chance of life and simply send flowers/apologies to those who want the items that aren’t likely to have a chance at life in this project.

Tough decisions but necessary ones.

Stakeholders are likely to be suffering from denial. “I wanted that box. Can’t we just..” the moment I hear “can’t we just..” is the part where I stop and think to myself “ok, is this a new idea or is this simply a creative way of trying to get agreement on something that just can’t be done”.

It’s now a point in time where you have 6 things on the table and you can only have 3. Choose as if you fail to make these tough decisions now, you will end up having less – it’s a reality and fact.

Don’t shoot the project manager.

At some point the project is off the rails, someone steps up and says “ok, I’m now leading this band of misfits”. It’s important that someone lead, but it’s also equally important that all understand that this is probably one of the worst positions to be in now. Projects off the rails remember, someone just stood up and said “I’ll now assume responsibility for this delivery from here on out” – give them the benefit of the doubt as they just did something you weren’t willing to do yourself.

They may say no more than yes, they may ask you to sacrifice your core beliefs on how things should be done in order for a Band-Aid or two. It sucks, but deadline is looming and having a 115 lines of code to do something that can be done in two may piss you off, but ship it. Ship it is the goal, refactor later.

Learn from your mistake.

Typically after I leave everyone has that exhausted look on their face, chances are some of the folks in the team will vow never to work with one another again. Emotions were high, we got it done, it wasn’t great but we got success.

Put your pettiness aside, understand this, it was a group failure that later turned into a group success. You just accomplished something that not a lot of teams can do, you made the deadline.

The thing is also, that whilst you know there is around 30 items off the list, and chances are the end users have no clue as to what those 30 items were. You’re just beating yourself up over a quality issue vs. an actual specific requirement.

Should that requirement manifest into a missing feature, you have the next round now ahead of you only this time, PLAN it.

Get the interactive designer into the planning meetings early; don’t leave the design to last. The interactive designer is responsible for the look, feel and way this user interface is going to interact. The UI designer is the person who will paint the pixels per state and lastly your user experience / usability rock star is the one who will navigate the cognitive science associated to the UI.

If you find a person who can do all three, lock them in and don’t let them leave. If you can’t find a person to do any of the above, start hitting Amazon and start researching as one of you needs to assume that position and take responsibility early for it.

Developers need leadership, someone needs to be the Program Manager, make them accountable for features getting to developers hands early. Project / Release managers are there to co-ordinate what should come first and lastly when.

You can have SCRUM approach, but democracies are only as good as its people. If the people aren’t clued into its virtues, see the above.

Learn from what you did wrong, don’t nail people to the cross for it..just learn from it.

Embrace MVVM.

If you’re doing Silverlight/WPF no excuses use it now. Don’t screw around, get onto it now. A friend said to me yesterday “..Dude, saying MVVM is half the understanding, once they’ve said it then they now know it..i mean Model..View…ViewModel whats the mystery?”

It’s a basic foundation for all to work towards and it’s just easy to set things in order in a solution.

Related Posts:

RIAGENIC is a UX/UI Business.

It’s been a couple of months now since I went full time into focusing on growing a UI/UX business for myself. I thought I’d share my thoughts / notes and adventures along the way so far in the whole Microsoft UX/UI space as a freelancer.

Which are you? a developer or designer?

image

How far we have come and yet how so little we have learnt! As someone who worked in/with the Silverlight/Expression teams to make sure the message that Microsoft has entered the UX space and that we’re essentially building a mutated Developer meets Designer and vice versa pixel ninja type person, the reality is people still need to put you into a category.

I often find myself torn between which side of that fence line I sit. As to be blunt i can do both, I know every single API inside Silverlight/WPF like the back of my hand, I can code in 9 languages outside of .NET and aren’t script kiddy languages either. I can do 3D and 2D design to the point where many have commented on my abilities here as being “eye for design” or “you are freakish good” but still i’m tormented by having to pigeonhole myself either category.

The reality is people aren’t ready to accept the person who can do both just yet and it takes a lot of proof to build trust that you can do both. I’ll let you know how I go with this journey over time but for now suffice to say, its new territory for me and yet still profitable as I can easily pick left or right and just swim in either pool where needed.

I need a UX guy urgently.

image

I’ve seen this a lot in the past 8 months. I get called in at the last sprint or towards the end of a project and find myself having to triage features vs design vs engineering constraints. It’s the worst time to engage a UX/UI person(s) as in the end you’re asking for a Hail Marry – “can you make this UI look good and functional oh and don’t change the code base in the process?” is a common brief.

The trick I’ve learnt is that I can do it, it just takes a lot more patience and focus –, and you really need to know every single backdoor into Blend as well as the Silverlight/WPF API’s. IT is a challenge but can be a success   if there is enough time  and the communication is clear and expectations are set properly.

The bottom line is folks – Engage early and often. Even if its just 1 or 2hrs of their time per week or day, make sure you have someone in the room who bleeds UI/UX from the beginning of the project. Don’t engage late as the price will go up you won’t be able to salvage as much as you think by then  it’s not a UX consultation its just a pixel polish.

I don’t use Blend, just Visual Studio.

image

You are breaking my design heart when you say this to me. Everybody right now who reads this open up Blend and pick a fight with it. If you take the time to get to know it and get to know it well, then when used right can help you out enormously with both Silverlight and WPF development. If you’re a person who likes to indent and keep their XAML neat, stop right now, you are trying to skate up hill.

XAML is not meant to be a hands-on language. It’s a common data format created to allow Design and Code tools to work against the same model without giving up their inherent capabilities. If you are editing it by hand just stop as you are not doing it right.

Pick a color any color.

The amount of times I’ve walked into an engagement and seen a rainbow of colors in the UI has left me thinking that it’s not so much a lack of will power around design it’s more the reality that not everyone is up to speed with color theory (there is a science to color selection).

The easiest tip I give people is this. Typically a brand has one or two colors that are used the majority of the time,  then they  will use white or black for the majority of the content depending on the background composition (white for dark, and black for light). When you design a User Interface for your next Silverlight/WPF project, pick one or two colors and create a ResourceDictionary called [ThemeName]Colors.

ColorePalette Then take that color and break into four shades (2x dark, darker and 2x light, lighter). Now then select what I call your chrome colors, these are the colors you would use for the outer chrome of your UI, in windows its typically around 4x shades of gray (light, lighter, dark, darker) and label them accordingly (i.e. chrmeAccent1, chrmeAccent2) etc. Keep your color naming conventions abstract (use camel or Pascal case – whatever lights your design candle).

Now don’t use any more colors. Lock that in and use these. Don’t deviate at all from this plan unless you have a designer person in the room who is held responsible for retaining the product/projects brand.

Lastly and this is the most important thing I can say to developers world wide:- Don’t use bold colors. Stick to pastel or light colors as you’re typically not ready for the hurdles that bold colors can throw at you. In saying this I did also notice that the MetroTheme that Microsoft has put into play has me a little nervous as it relies heavily on bold color scheming – which is great and cheap way of avoiding depth in a UI but at the same time creates a potential color scheming hazard around highlights vs lowlights and focal areas of your GUI composition.

Typography is also another concern of mine as too much reliance of ye olde text can put UI two steps back instead of forward – people don’t like to read in general, visuals often handle the workload – review the many articles available on “extraneous cognitive load” for proof of this.

MVVM that is all.

image

I get that some of you want to get gung-ho with PRISM, MEF or your own framework. Bottom line is this, if you’re starting out and haven’t figured out the tricks and hacks just yet of WPF/Silverlight then you are better off  sticking to  simple MVVM. It handles 90% of your workload and doesn’t require you to learn  WPF/Silverlight and an extra layer of complexity at the same time.

Keep it simple, work to the idea that the code you write in the first year of WPF/Silverlight is code you will want to throw away or refactor later on. It’s natural you write bad code or work onto something that a year later you’ll look back on and proudly say “What was i thinking”. You’ve got your Microsoft UX training wheels on, embrace this openly and you’ll do just fine. Walk into a room and pretend you have it all under control and you’ll fold eventually as you can’t credibly hold that facade for too much longer.

If you can also check out AutoFac as well, this again will compliment your codebase nicely. MEF/PRISM are really for folks who have a team of engineers and are looking to build a complex mammoth size system – that’s the reality even if Microsoft try to deliver a different message  – I’m an ex Microsoft Product Manager so I can spin with the best of them :) hehe.

UI and UX are two different things.

image

I need to say this out loud. If you ask someone to do UI, then they will do just that; focus on designing a user interface for an existing concept. If you need someone to wireframe and help you figure out how the whole user interface can be built, that’s where a UX person comes in. They are two different work streams just like a developer and a DBA are different.

You can find people who do both, but keep that in mind.

Oh, I need someone local.

Yes, having someone onsite is definitely a goal a team should always be on the hunt for. SCRUM teams etc benefit from this and it doesn’t need to be evangelized further. I will say however though, having someone working remotely can be just as effective especially a guy like me in Australia.

I say this, as at the moment I’m working on a project with Microsoft and it’s working out in our favor as while they sleep I work, while they work I sleep and we’re able to have a show & tell (i.e. remote stand-up) with one another where the design and development work can meet in the middle actually pretty well. As I’m able to say “ok here’s what I’ve done for you, its in your inbox when you wake up” and in the afternoons they’re able to go “ok, here’s what I need for you to start my day tomorrow” and so the cycle is a 24hr development run that works quite well.

It’s not for everyone but so far I’ve found  it works without any issues other than an expensive mobile/cell bill from my end lol.

Show me some of your work?

There’s a reason why painters and builders never work on their own house – same goes for me. This blog as weak as it looks is still the  front door  for my company – RIAGENIC. I need to get off my ass this month and put my site up but the problem I have is distilling what I do into a webpage that makes sense as I’m my worst client (picky, arrogant and will agonize over every pixel and paragraph in the site).

I also need to find  a way to promote me but at the same time associate myself with a brand, so that for me is a tricky marketing hurdle. I’ll soon see if I can pull it off! :)

Find people you can trust and don’t have to babysit.

image

I’ve worked with a lot of developers in my time, nothing annoys me more than baby sitting incompetence. I’m fine with newbies learning the ropes, that I find far more rewarding as you’re working with someone who has passion and a determination to learn. It’s the people who are lazy and expect you to spoon feed them every 5mins on “how”. I didn’t learn Cinema4D by sitting next to a 3D wizard and ask “Ok so how do I write an xpresso script that makes the wheels rotate per frame”, I sat on Google and the objective was this “Find how to make wheels rotate in xpresso” and eventually I found it. Along the way I learnt a lot about Cinema4D and Xpresso as i was hunting for my answers.

If you work with me, I will set the benchmark high per person I meet, I will quickly assess your skill set and then raise the bar to challenge you to meet it as I do want to work with people who get it and are smart at what they do.

That being said, I love nothing more than coming into a cubicle of developers and feeling like I’m the newbie in the room as now I’m in learning from others mode.

At the moment I’m working with Joseph Cooney (one of WPF’s first MVP and of learnwpf.com fame). I’m learning heaps from interacting with this guy, and its a fun project at the moment we are on. I don’t have to babysit him and he doesn’t have to babysit me. We just looked at the specifications, agreed on a solution structure and boom, were’ off grinding pixels and code.

The next job I go to where they need a WPF/Silverlight dev etc, Joseph is one i’d recommend – again, its about networking and building relationships and finding people who you can trust and work alongside.

Reputation is a false economy.

image

I often hear how folks worry over their reputation. I’ve watched people spend way to much time either building or recovering it from a bad project etc. The simple truth to this from what I’ve learnt is that if you know your work, you approach things with openly and honesty and don’t dump and run as well as admit mistakes, you’ll come out fine.

Just focus on doing good work, reputation has a habit of following and self regulating itself over time.

At times people I’ve heard bad things about on a project often aren’t the ones at fault as  the recruiter / business development sales person didn’t set expectations appropriately or the project was a train wreck well before this person arrived and they were the last ones to hold the steering wheel as it went off the road.

Agile/SCRUM is not a religion.

I’ve seen a lot of developers follow this concept by the book to the point where I often wonder if they are conscious of how badly they have gotten. The correct way and the natural way are two different things and in the end communication is the core piece to this.

Stop arguing over protocol and just focus on establishing a clear line of communication and work on getting estimations as close as you can while at the same time admitting to your fellow team mates the moment you can’t do something or are over on your estimate – just put up your hand and say a simple word – “help”. I personally work under the assumption I’m the dumbest guy in the room, it keeps me calibrated and if you work with me and think “geez i thought that guy knew all of this” that’s fine, but i probably do, but i’ll ask anyway just to make sure.

I’ve felt the wrath of a false hero before, and I ended up having to do his work and mine at the same time only to be burnt for it later on. I could of thrown this person under a bus and said “well actually it was his fault” but in reality, I just absorbed the blame and avoided working with this person since.

That is all.

Note: I am a UX/UI Ninja for hire.

Contact me at scott at this domain.

Related Posts:

UX Tip: Just because you can count change, doesn’t make you a mathematician

I was watching a MIX2010 video from Microsoft’s head UX guru, Bill Buxton on how specifically developers and designers engage with one another. There was a throw away line he put out there, which was stated in reference to developers whom often think that because they have a bit of design muscle deep down that they too can contribute to the design discussion –

Just because you can count the change in your pocket, doesn’t mean you’re now a mathematician.

I laughed when I heard this as yes, design is an art (who knew) and often at times we take it for granted a lot more than we probably care to admit out loud.

For me personally, given I’ve visited countless developers in a variety of scenarios in the Microsoft space, one constant theme I see continues to emerge, developer art.  This consistent pattern is the exact fit for the above analogy.

Allow me to explain further..

Developer Art

image

Developer art is the composition of a interactive solution that almost looks good enough to ship, but when you start to tease away at the various threads (i.e. DataGrids) you begin to see that there isn’t a lot of structured thought put into place behind the “Why” the screen is structured the way it is. In that, they often tell a story as to why it’s important to cram as many UI elements onto a screen making full use of all the pixels you are given and then some. It has certain hints of developer based design and structure but it comes across very adhoc and chaotic in thought.

“Oh yeah, I’ll add that button in later..”

I admire their intent (truly), but sadly this is really just re-echoing bad habits into a new medium and all we’ve really done going forward is polished the cumbersome UX and it’s attached pixels with a brighter gloss – the problem continues to live on though, and user’s are expected to jump through hoops due to poor software development planning and useless deadlines that in reality are more than likely going to increase the problem rather than decrease it.

Note: Most devs i’ve engaged with this, are aware of this as well, and are openly keen to get this fixed (very encouraging days ahead).

That being said, developer art tends to lead into Pixel Cramming

Pixel Cramming

image

Having a large screen is tempting to do a lot with, but in the end we must remember an important fundamental about humans, in that we like to chunk information into pieces that make sense to us. We listen to a story and isolate important pieces, in that we tend to skim read large documents and isolate important facts / figures. We often hear a story and isolate key pieces of information and bank that into our working and/or short-term memory.

Chunking is a clue to how your end users approach things in general, yet with developer art UI, it tends to be blatantly ignored. The reason being is, most of the time developers want to take a large resolution of pixels and fit as much data and finite amount at that, onto the one screen – because users like to analyse all of this data is usually the response I often hear.

I could inject countless research papers here on how humans + density = cognitive overload and the chances of recall and/or visual encoding are diminished as you layer more and more amounts of data. I don’t though as depending on how you deliver that message can lead to an emotive discussion focused around the words “I think”, less “I know” (which is really the base primitive used to instantiate an argument randomly.

Instead I come at it from another direction, that is asking the developer(s) to consider layering complexity.

Layer in Complexity.

image

I often tell developers to start easy and then layer in density or complexity (as you learn more about your end users expected habits or paths of access).

I do this for a number of reasons.

Firstly it’s a sneaky trick I play on you, as it forces you to think about the big picture first from an end users perspective, whilst it then removes you from that pesky habit of getting bogged down in the finite details (engineers play chess with UI, they are always trying to guess 3 moves ahead).

Once you structure the surface of your UI in a way that mimics the way humans process information, you just may stand a great chance at producing some UI that doesn’t feel like a page out of the classified section.

Secondly, another reason as to why I ask you to layer in complexity/density is that it can help safeguard you from creating lots of virtual problems that probably don’t need solving. What I mean is that approx 80% of your end users are likely to only use 20% of your features, which in turn means that if you were to ship V1 as a very basic piece of software without the cascading density of UI you would in turn raise questions within your user base that are mostly likely going to yield you a lot of “I know” to questions that are probably coming up with “I think” today.

(Behind the scenes you are effectively doing an on the fly qualitative analysis on your said upcoming software’s development approach).

What If I were to come into your developer enclosure tomorrow, walk up to your feature task board and steal 30% of the features away from your product randomly. How would your end users react? I know how you’d react, but really, how would you’re end users react. Would they even notice it’s missing and if they did notice it was missing what story would they in turn tell you about why it’s important. Once they do tell you this information, and I only agree to give you half of the features back, how would you weight the importance against what you already have today done or still on the board.

My point, you do this anyway, you often start out with a healthy amount of feature requests, but through the inertia of development these features get squashed, contorted and at times glossed over in the development process. It’s a really negative impact on what started out with so much positivity.

Bottom line is this.

image

Engage a UX Professional as well as a UI Professional, as in the end they think about these various points allot (at times both from different angles), and typically see the world for the chaos that it is and less inclined to care about you the developer (It’s not you, it’s not me either, it’s them, ya know, the end users). If you don’t already, do some persona development around your product and it’s important to do this. If you have done this, then grab some wall space and scrap book various clues about the end user for all to see. Remind yourself daily who it is your developing for and why. Ask yourself “Which person’s life am I going to ignite with this feature being done perfectly, done in an ad hoc fashion and/or not done at all”. You should have an answer to this with a degree of confidence that should be shared by all.

Does this mean all design is hands off to developers?

Yes and no, if you aren’t passionate about the concept of what design is, you really need to step back and let someone who is genuinely curious about solving problems for end users through interface design and less about shipping schedules or how brilliantly they orchestrated their MVVM architecture. As the ironic thing about development patterns is you’re building software to make life easier for developers to be apart of? funny, why can’t you do the same for the end users?

I’m not an expert, far from it, I’m just experimenting out loud with all of this, but the more I data I gather, the more I start to see how all these puzzles fit and all to often, developers are trying to be too many roles at once and well, humans are never really good at multi-threading – hence we chunk.

Related Posts: