The annoying salesman problem

Have you ever experienced an annoying salesman while browsing through a store. When that happens to me, all I can think of is what to say to make that person go away. It does not matter what he says to me after that point. We should know better and yet it seems that often we as developers do this with the software we write all the time. Just the other day I needed to be on a call and I was really busy. The nature of the call was such that I could just listen in while carrying on with other work. I had recently rebuilt my window 8.1 machine up from scratch, but I had inadvertently forgot to install the Skype desktop app, so I went ahead an installed it. Unfortunately I installed the windows 8 “metro” modern… whatever… version of Skype instead of the desktop version. When the time came for the call ( User Context:I was busy doing other stuff with all screens more or less occupied… and I have 6 monitors running…4 tethered to a windows 8 machine and 2 Macs … its like NORAD in here but I digress). I went ahead and launched the Skype app, expecting a small window layered over the a part of my desktop … just like as I usually have it configured … and poof … the app took over…. filling my entire primary 2560 by 1440 screen with blue and a few relatively small text boxes to enter a number …like a little threatened little puffer fish.

Skype went from this puffer-small to this image

Really!!! Now I am a generous guy… but I don’t like yielding three and a half million pixels to an app that basically dials a number. I don’t dial numbers that big and there are no apocalypse d-day red buttons here justifying such a great demand for screen real estate.  On a scale of 1 to 10 for experience that is about –3. I had to fuss around with it and beat it into submission to dock in a way that was tolerable for me. I then proceeded to put focus back on another app and then the sound went away… oh come on, why not just pour salt on the wound … then I could not figure how to quickly get it back. This went on for way longer that I wanted and it was annoyingly disruptive. This disruptive experience IMO is one of the key problems with windows 8. These are violations of some very basic rules of UX. One of the measures of usability is that the user can perform a task in the way that they wish to perform the task, or some similar intuitive easy to figure out alternative. This was not that. Not at all.

It just reminds me why I have such a passionate tempestuous relationship with windows 8. I am at times really delighted …in the clouds talking with angels …performing a slam dunk

slam dunk

and then it happens …the great descent …into that dark place. 


It’s like I am as bipolar as the infamous windows 8 start screen. Windows has managed to annoy me so much at times that my only therapy is to do a Google search for “Why I hate windows hate, I mean 8” … then I can feed off all that negative energy in order to vent … not good but it makes me feel better.

The Mental and Conceptual Model

Now I don’t mean to just beat up on Windows 8 because it does some things quite nicely and Apple is not without fault, but the experience highlighted above serves as a good example to draw attention to two UX concepts that really should matter to every developer and designer. They are the conceptual model and the mental model. So what are they ?


“A mental model is the representation that a person has in his mind about the object he is interacting with. A conceptual model is the actual model that is given to the person through the design and interface of the actual product.”

(Susan M. Weinschenk. 2011. 100 Things Every Designer Needs to Know About People)


The goal of any designer is to make sure that those two models are well aligned. Doing this will help to create a human centered experience that is much more likely to yield a good and pleasing result. It is essential to understand the contextual tasks, goals and objectives that the users of a product may have and explicitly DESIGN THE INTERFACE AND INTERACTIONS FOR THOSE TASKS AND GOALS. Aesthetics certainly does play an important role here, but it’s more a supportive role as opposed to a primary role. Interaction gimmicks and gadgets can actually confuse the user if their mental model is not aligned with what is presented, no matter how attractive the interface may be. This is what I mean by “don’t get in the way”.


Know thy users for they are not thee

The only way to really understand your users is to be intentional and include UX (user experience) research and design into your software development lifecycle. You will be so glad that you did because it really helps to reduce scope and forces specificity in the agile software process, making planning and estimating easier. You will notice that your product backlog items will have better information to make more objective, authoritative and constrained feature decisions. This leads to more predictable designs and simpler implementations. Also take note that this UX design effort should be user centered and not system centered. Activities like doing user task analysis , analyzing personas and their corresponding scenarios are a key part of that research and planning effort. I will address these aspects in subsequent posts. But for now suffice to say STOP THE RAGE AND ENGAGE your users. They will love you for it.