How to hack Expression Blend

I’m the kind of guy who likes to tinker where i shouldn’t and tonight I just couldn’t help myself and decided to see how far I could go in terms of hijacking the UI in Expression Blend.

The reason that sparked this quest was that I wanted to write my own special custom UI Panel for Blend that reflects a Skinning framework I’ve been working on. I was more specifically focused on how to hide Category panels that are basically not required, in that “Skin X Panel” is all I wanted developers to access for my given control (which in turn has all the relevant turnkey properties that they should tweak).

I managed to do this like any “Design-Time” solution can, by basically invoking BrowsableAttribute.No in the MetaDataStore.cs (Justin Angel has a brilliant write-up here on how to setup your own at – design time Expression Blend extensibility) which was working, except I noticed PropertyGrids like “Font” and “Grid” wouldn’t hide (Given they are DependencyProperties and are hard-coded into Blend).

image

Given this was annoying me, I decided to see if there was maybe a way for me to hijack blend via the internal VisualTree in order to react to a control type selection and then switch Category Panels on/off depending on the type that’s being accessed.

Armed with this mission, I proceeded to get a few much needed tools for my upcoming journey.

Ingredients.

First: Snoop.
Peter Blois was a guy I used to always enjoy having coffee with as not only is he one of the Program Managers in Expression Blend team, but he often writes very cool small tools that just basically make your life easier should you wish to run up against the grain. Peter’s written a small open source app which attaches itself to an instance of Blend that you have open and then proceeds to walk the VisualTree within your current view.

Get Snoop

Second: 2x Instances Visual Studio open.
Obviously the first one is to allow you to access your code base (duh) the second is for debugging Expression Blend, so make sure you attach the second VS instance to debug Expression Blend that you’re about to Snoop (i.e. Attach to Process tutorial here)

Third: VisualTreeWalker
Jim Baltzell-Gauthier has written a class that basically takes FrameworkElement.FindName() and injects some steroids into place. This is important as you’ll need this to hunt specific nodes within Expression Blend’s internal VisualTree.

Basic Hack.

Armed with that, the first thing you’ll want to do is create a Construct in your MetaDataStore.cs (in your Expression Blend.DesignTime project). In this you’ll need to access the following branch to get yourself started.


Application.Current.MainWindow

This is pretty much like in Silverlight at runtime, your “root” starting point, from here you’ve pretty much got access to the XAML DOM much like you would in WPF today. To prove my point, try this:



Application.Current.MainWindow.Title = "RIAGENIC.COM is My Daddy";


I can haz your snoop Blend

Now you have probably some basic skills around how you can hack Expression Blend. The next step is to really screw around in the kitchen, in that let’s break something.

Let’s for example, hide the Panel which shows you what your control’s “Name” property is (ie see below).

image

To do this, open up Snoop and attach it to your Expression Blend. Then type into Snoop “InfoBar” into your Tree Filter textbox (first one above the actual tree). This should narrow your selection down to the following:

image

Now if you move your mouse over inside Snoop over the actual “InfoBar” node, you’ll see a preview of that control (ie snapshot of it). This is the one we want to mess with.

Next, inside your MetaDataStore.cs type in the following:



Border o = VisualTreeWalker.FindName("InfoBar", Application.Current.MainWindow) as Border; 

                if (o != null) 
                    o.Visibility = Visibility.Visible;

Now, inside Expression Blend, “Rebuild the Project” and watch the Name Panel disappear.

Pretty cool huh?

The more you “Snoop” around inside the VisualTree the more you can start to see possibilities here on how you can really do some hardcore damage to the beloved Expression Blend. As with anything, with great power comes great responsibility, so do be careful and do understand that anything you touch via this route WILL NOT be supported by Microsoft (use at your own risk – if you could also potentially use this concept to inject time-bombed trial watermarks etc on developers using your 3rd party controls etc).

Where to from here?

I’m going to keep tweaking around with this, but basically I want to attach an event to the selection of a said control and then sniff the type. If the end user accesses my controls that I’ve made, I then want to do something unique and fun to provide a specific UI Panel for them to make use of.

Its, again, Unsupported but from what I’ve seen over the years this backdoor in hasn’t changed all that much as the hardest part to get to this point was creating a “Design-Time” project that worked for both WPF and Silverlight (Inside Expression Blend 4, this is fixed).

Have fun.

Related Posts:

  • No 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:

Windows Mobile 7 the “meh” release.

Look, I’m going to be that guy that doesn’t give a 100% positive review on the newest Microsoft toy, and its not that I hate its existence in favour of the iPhone (I honestly couldn’t care either choice), its for me a little bit of a disappointment.

image

When I first saw the early specs of Windows Mobile 7 before I left Microsoft, i was little jaded with the whole level of commitment to the UX. As initially I’m thinking that this is just simply an extension to Zune, that the reality is it’s much cheaper and easier to take the existing work for Zune and bolt it onto the Windows Mobile OS. Problem solved move on, cheap, easy, effective and done.

There’s nothing wrong with this, but it for me is what I’d call a stabilize move and not a leap frog move. If the objective for the Windows Mobile 7 launch is to stabilize the bleeding, than the current iteration of the phone will do that and will do it in a way that will be declared a success. That is until the next generation of Apple comes off the assembly line and then the race is back on again.

The UX

image

I think the UX is flat and is often obvious that the team are to busy trying to “own” their own UI and less about meeting a base benchmark. What i mean by this, is that it appears that the UI is trying a little too hard to do the opposite of the iPhone, like it’s a challenge they need to rise up against. Examples like no Icons, panning up/down instead of left / right for content etc seems to pack a little too much anti-iPhone. You can argue “we did a lot of research and 1 in 5 housewives preferred up and down over left and right”, which is meh, as I’ve seen how easily it is to manipulate usability to suit ones messaging (been there, done that, got the t-shirt).

I think sprinkling the Zune and mini-XBOX into the device will definitely grab peoples attention as i truly think the market is hungry for NOT an iPhone, so Microsoft may very well appeal to the folks who are bored with the iPhone as being this years fashionable technology must-have gadget.

That is until iPhone 4 comes out, and again i think this will raise the bar once again for Microsoft to meet and can they deliver? I think given the plain UX for the phone today, I think they stand a much greater chance of reacting to market conditions in a way that has low impact on development times as there’s less complexity in the room due to the over use of simplicity in the device.

Danger is, you’re left holding the current incarnation of Windows Mobile 7 and looking at the next generation of iPhone and go “aggh..i want that”, as make no mistake devices are really energising the “shiny object” buyers in today’s market.

For me, this is the Windows Vista launch, as after some code resets and downward pressure from above this is almost exactly the same internal conditions Windows Vista team had before their launch, “get it to market, get it fast and we’ll come back around for the bits we wanted to put in place”.

Apple are likely to react to this in a way that is going to be an interesting battle, as Apple is to iPhone as Windows is to Microsoft, so in a sense they are now fully engaged head to head with Microsoft once the device reaches the market.

Microsoft are playing hardball as well as you’ll most likely hear more about how Flash + Windows Mobile will play a role going forward and lastly they’ve yet to talk more deeply about how Silverlight 4 will play a role with the device as well (stay tuned for that, as this will get the developer propellers going).

In the end though, will this light up the soccer mums of tomorrow? probably, its new, it will be cheaper than the iPhone most likely and the Zune subscription model is quite palatable for the market. Zune Marketplace is where I think this device will live or die, if Microsoft gets the subscription model to work outside the US, then we’re in for a real threat to iTunes and iDevices world wide, as its definitely game on. The reason why Zune Market Place is a nicer approach is that its an appealing solution to Music/Movie piracy, as instead of people having to pay $$ for each individual song/movie etc, having a subscription model per month for all you can eat is less friction (especially for teenagers who can’t get access to credit cards)

Verdict.

I’d give the overall story an 7/10, I think the UX is weak and will face some challenges around usability, but overall the concept itself and how it ties in with other services from around the web is where it will most likely get its main momentum from.

Today, everyone is in the Microsoft “Zone” where its drink from the kool-aid, which is really an off signal response to a new products entry to the market. Two months from now, the reviews that are then talked about are the ones that are likely to stick and be consistent and they are truly the signal to the noise. This is where the Windows Mobile 7 team will need to bring their A-Game back and distil the message into  what’s coming next more so than what’s happened today.

Jokes aside, the UI still reminds me of Windows 3.11 where its very EGA 2D. is that good or bad? is it a design revolution where we kind of wind back the clock and go 80’s meets 2010, I don’t know. I do know I wanted more, I was hungry for more and i’m in a temper of a mood for not having my hunger satisfied.

image

Will I buy one?

Yup. As I’ll do it simply because I’m a Silverlight / Flash UX guy and would love to tinker with a device that supports these two. Once again, Microsoft the engineering culture comes through and user experience takes a backseat.

Related Posts:

Context and Experience Matters.

Hold your hats folks, I’m about to praise Adobe and yes I’m now a confused UX soul as a result of it.

What has got me all hot and bothered in the right way about Adobe, is the Adobe.TV site, as for me it just brought something to life in which I was often quite vocal internally in Microsoft about – contextual synchronization.

In fact, you can see the very deck I used a few years ago on the said subject and it was mainly focused at how stupid and silly Microsoft is with its constant “File->New” website approach. I not only was vocal internally but external as well – recently as last year being picked up by other sites such as Slashdot.org, Tim Andersons Blog  and InfoQ on the very subject.

(Note: Download the deck for full effect here)

 

Adobe have designed the concept where it appears folks who sign in are able to have the content react to their needs vs the end user reacting to Adobe’s needs. As a result, I think this will provide more signal vs noise to consumers of the content (hopefully) but the main thing for future planning around content is that I think it will put Adobe in a better position to see what areas they need to focus on the most. I say this as every time you the end user narrows your selection down,  you are essentially voting with your fingers on the said selection.

image

I like this as they have broken the self-selection down into not just categories but also have managed to involve other filtering mechanisms such as “what others say” (ie Most Viewed, Highest Rated etc)

I have dreamt about this concept for quite some time and I hope that the Microsoft various website owners are paying close attention to it.

Why is this a good idea?

Firstly, when you onboard to any technology you face a multitude of challenges most of which is confidence. You need to have this sense of “easiness” associated to a new technology you are about to adopt, so it’s important that you’re not in hunt mode but more browse mode as fast as possible.

Once you are able to overcome confidence issues relating to the technology, you also need to keep focused on advancing along the adoption curve, as you want to build a better tomorrow as fast as you humanly can, but deep down you still want to keep cheating, by skipping over things you probably should pay attention to.

Skipping is important but at some point you will need to go back and and absorb the parts you just skipped, so you kind of need a way point mechanism in the way content is presented to you. In Adobe.TV case you can filter out the irrelevant areas that don’t appeal to you – YET. Tomorrow though you can pick this back up and run with it should you choose to, keyword being choice.

I call this contextual synchronization as the content is synchronized to your contextual needs.

Microsoft has a terrible footprint regarding content of this type, as if you were to look at Silverlight for example there are 4 sites all competition for your attention and that’s just for Silverlight. If You’re a .NET developer your world increasingly gets more and more complex and its hard to parse the information from each individual site, given it’s mostly narrative content and less about serving a contextual need. The ones that don’t focus on narrative are more along the lines of projecting information at you and less working with you and more to the point, there’s no instant reward/recognition approach to learning.

This is important with regards to confidence as if you get a sense of accomplishment for taking the time to adopt or learn something there in turn needs to be a mechanism in place that provides that visual feedback “Good job, keep going” mentality.

Adobe.TV doesn’t have this, but you could easily build on from here? you could add badges or rewards to the context above by outlining that the person is moving along nicely and here’s a T-shirt or something cheap and meaningful to show recognition to the end user for doing a great job at sticking it out.

One day I hope that my vision would come to life, but inside Microsoft there is such a de-centralized approach to the site ownership problem that it would take an act of Executive order to change this – even then it would likely take a few years to filter out externally.

Tim Anderson, a well known IT Journalist who gets paid to navigate the web soup such as Microsoft.com, stated this:

I use “web sites” in the plural because there are many Microsoft web sites. Perhaps there should be one; but as the referenced study observes, there are numerous different designs. There are different domains too, such as Silverlight.net, ASP.Netand so on.

Take my experience this morning for example. My question: how many processors are supported by Windows Small Business Server 2008? My Google search got me to here, an overview showing the two editions, Standard and Premium. I clicked Compare Features and got to here, which says I have to visit the Server 2008 web site to find out more about the “Server 2008 product technologies”. I click the link, and now I am looking at info on Server 2008 R2 – only I know already that SBS is based on the original Server 2008, not the R2 version. It’s not clear where to go next, other than back to Google.

The prosecution rests your honour.

Related Posts:

Future UX showreels.

image There is something important you must do, in that if you are a regular reader of my blog and often read my rants about how UX this and UX that, then you need to get to the core of why I exist in this space.

Grab a beer, wine, Red Bull whatever your liquid of choice that kind of breaks you out of your mundane existence and sit down and watch the following videos. I guarantee you that if you’re not excited enough to crack open Flash, Silverlight, AfterEffects, Photoshop or whatever your software poison of choice is, then well, this space is simply something you’re not going to be great at – maybe good, but never great.

Warning: Do not sit too close to your monitor as drooling has been known to occur

(1) First

. Let’s do a lap around Mark Coleran’s private collection, I despise this guy’s talent and the constant opportunities he got to work on these projects and never once did he Skype me before hand asking for a chance to do them. *waves fist at Mark, damn you..daaaamn you!*..

Coleran Reel 2008.06 HD from Mark Coleran on Vimeo.

(2) Second

Microsoft has been slammed recently for lack of creative innovation. Look, its mostly true, the company does fumble a lot around this space but every now and then, they outsource to the right agency who manages to tell a story that exceeds peoples expectations of what the company is capable of. Microsoft Sustainability video by Oh, Hello in Seattle, is an example of this. If you suddenly don’t get all excited about Silverlight/WPF after this, then you’re just not into Microsoft.

(3) Third

This ones a local vision, but its from the Commonwealth Bank of Australia (CBA). It’s there vision on how the future will look via the CBA. The comedian in me chuckles a little at the notion that if I ring the hotline i get an immediate answer from a bank manager, but, it’s not about that its about painting a vision and for that, I’ll bank with CBA. Would love to know which agency did this? (Anyone know?)

(4) Fourth

Back to Mr Coleran, he’s done it again that talented so and so  (UPDATE: Not Mark Coleran, its from Peter Menich and 27Forty Studios for Alcatel). I like this one as I look at the concepts used and I see a lot of commonality in patterns used in either today’s UI’s as well as some of the future UI’s that others have through-up as well. My thinking is that if its a common collective vision it stands a greater chance of becoming reality.

(5) Fifth

I love this concept of how mainstream media like magazine can be turned into more of a interactive experience – in that no longer just static pieces of information. Kindle, iPad, Courier etc are all hinting in this space so its not that far removed from fantasy vs reality.

Mag+ from Bonnier on Vimeo.

 

(6) Sixth

This one is kind of weird, I kind of feel like Homer Simpson in that episode he finds his facial features in a Japanese Video and getting freaked out but excited at the same time. I don’t mind this one as it kind of goes to the extreme end on how Augmented Reality could occur should the right eyewear or face shield be built (think IRONMAN). (Thanks to: infocycde for the link)

(7) Seventh

This is the minority report come to life, and its exactly how a concept that Mark Coleran worked on in a movie suddenly appears in real life, again, FUI meets reality. Thanks Mark for the heads up on this one!

oblong’s tamper system 1801011309 from john underkoffler on Vimeo.

(8) Eighth.

Cynergy Systems have put together a brilliant presentation of how a portable device meets a surface table, whilst allowing a buying style concept to occur. It makes me think that whilst everything these days is pushing to be online that with this concept a store owner can still exist, but the physical component to a store doesn’t have to exist. In that you go into a store, speak with the store owner etc and simply drag the book into your device for purchase etc. I like this concept and what’s cool also about it is the fact its already done, it’s not so much a Fantasy User Interface for the future.

(9) Ninth

.<insert your find here> If you know of other showreels like this, please send me an email or drop a comment below with the URL, as I want to build out this page to include them all. I want them like a crack addict needs a new fix.

Related Posts:

Can you mix UX with Agile?

I’ve not decided yes or no on that question, I’ve read a lot in the past few months on the topic and I’m still not convinced or swayed either way.

Here’s my open transparent written exploration of how I am navigating this concept.

UX Design vs UI Design.

image

Its important to split a hair on this one, UI Designer in my definition is someone who can work on the aesthetics of a component whilst a UX Designer is the one who contemplates how that component is to be used by humans (I could go much deeper in this topic but another blog post for another day?)

I state this concept out loud, as when I read success on how UX + Agile came together in XYZ team, I often question what they are measuring success in terms of UX and more to the point what disciplines were in the room and what were the problems being solved. I’ve not read a lot about how the sausage was made, its more “trust me, UX + Agile works” belief system which to me is simply not scientific enough to subscribe to. I need proof of life.

The UX Scouting Model.

image

There’s a number of articles written on this, but for me I call it the UX Scouting model, whereby you have a set of effort that works ahead of a sprint, its the type of work that solves the problems of UX before the engineers arrive at a point in time to start assembling.

On paper, this seems like a reasonable approach to the problem of dealing with iterative design, and I’m inclined to believe this is probably the only model I can think of that will yield a successful shipping cycle. Having said that, i think this kind of model is more suited towards a validation / mentoring of UX model than an UX problem solving exercise.

What do i mean?

I put it to all that what is occurring is a reactive iteration occurring on the software whereby you’re taking a slice of the feature catalogue and reacting to how it injects itself both technically and visually into place. This is where I think the failure points occur, as its where a seasoned UX Designer shows his/her skill set the most. The ability to foresee what’s next beyond the current iterations (ie sprint) and are also trying to forecast the next few moves ahead (heh maybe a good interview technique for a UX expert is to play chess with them).

Having this foresight is in my opinion a very rare amount of talent to have, and once that person(s) have this, getting them to also negotiate with both stakeholders and engineers on such direction could also reduce the skill pool down even further. It doesn’t stop there, as at times the engineering side of the fence line aren’t open to adjustments in thinking, as it means more time/cost to them and the project. It’s then you face the compromise concern, as once that card gets thrown into the room, its easy to bias the stakeholders or owners of the said software to side with an efficient release over an effective one.

It’s how a lot of software ends up with a degree of “false affordance” – meaning, you get packets of the software where it has a perceived level of functionality that does what it’s expected to do, but in the end it either goes un-used or un-noticed or even more so, it’s sole purpose is to placate the end user and stake holders into believing the problem was solved.

Let’s get it right next time?image

Historically, Microsoft as a company has always duke it out over the battle between function vs form, and all to often function has won out in the end – despite the highly paid talent of UX leads being in the room. The stark reality is that time/cost are a factor one cannot simply deny, and its essentially what makes UX + Agile an attractive proposition, as it means get it done, get it done early and you can always get it right in the next release.

Microsoft typically takes three shipping cycles to get it right, when I say right, I mean “good enough” which in many ways is the ready, fire, aim approach. Apple at times seem to approach the equation from a ready, aim, fire model.

They don’t always get it right, but the amount of “luck” Apple have had with their product lines over the years, can lend itself to the concept that maybe they are siding with Form over Function every time. The company presents itself as being more about the industrial design of the solutions vs the good enough approach and it probably is why they often lead with a linear model of development + release.

Does UX + Agile work inside Apple? I don’t know, I can speculate that probably it doesn’t and that the engineering side of things makes way for UX – ie Function follows Form.

Back to the point, UX + Agile is sometimes hidden under the covers of evolution, whereby the said persons can run parallel or ahead of the said development teams and are able to react according to the growth of the said feature(s). However, when the time comes for a UX refactor, does it not get pushed aside into the next major release cycle with an open promise to get it right then.

If that does occur, then is that cycle dedicated to UX refactor in its purist sense? or is it just the same rinse/repeat formula whereby you have an iterative situation unfolding.

So, UX + Agile isn’t the answer?

image

I think the concept of Agile is fine, its the execution of it that I think is where the story kind of starts to fall a little to the way side, I think from a UX standpoint you really need to outline the features ahead but do so in a way that is suited to a ready, aim, fire model. It also needs to lend itself to a dedicated chunk of time purely to refactor the function of a solution to accommodate the consistency and goals of form. Having said that, that “Form” needs to be defined early and it needs to be framed in a way that everyone involved can subscribe to easily enough (heh, the joke is on the UX itself, as in order to sell everyone on the UX vision, they in turn need to ensure its palatable enough for them to recall, thus UX sells UX ..funny)

I’ve not decided as yet that UX + Agile is a formula that works, I can’t decide that just yet as I feel we in the software industry are back to pioneering mode. We settled on a rinse/repeat formula for so long that it started to breed mediocrity in the way software is designed, developed and deployed. Given the device market has created an interesting interruption in the way we approach mundane tasks, it in itself has elevated the B2C or B2B markets in a way that forces the ideation phase of software to take more risks.

The problem isn’t with the ideation being unwieldy or requiring strict time boxing, it’s simply we may have all forgotten to add the UX tax to the software builds – meaning, costs just increased.

Cost increases aren’t swallowed well, so the reality is what is likely occurring in UX + Agile teams is that there is more of a UI Designer validating and placating the said engineering side with “Good job, keep using DataGrids” mentality vs.. a UX Designer asking that folks think differently and outside the box.

On paper, agile is fine. In practice, well, grab your UX six shooter and lets ride off into the west and see what we find out next.

Related Posts:

Multi-touch VJ..err..DJ…err..nevermind.

I’m about 10 days out until I get my hands on my multi-touch monitor from Dell. As a result of this long wait, I’m just exploring the web tonight to see what’s out there in multi-touch land. I came across this video via vimeo (which can I just say is where all the creative people youtube their work).

image

The concept is by James Cui (VJ Fader) and what it appears to do is allow him and other VJ’s to synchronize with visuals (both for his input and the audience watching him).

I’ve been to a couple of raves in my time (17/18 yrs old) and I can see how this could definitely up the fame pool for a lot of DJ’s as my friends & I often use to joke at how stupid people were just staring at some guy move records in and out? (ie…what was the point? music was great but stare?)

This however changes everything.

faderTouch 3.0 & Audio Visual Instruments from VJFader on Vimeo.

Related Posts:

  • No Related Posts

FUI – Igniting the Fantasy User Interface spark.

 

Introduction

Every single time I’ve been given a brief to design something, I often will browse the internet for inspiration, in that I just need something to help nudge me into the direction of an idea. I also constantly keep mug shot’s of user interfaces that I often enjoy interacting with or spot parts of that simply are well designed.

In the past probably 3 years, Industrial Design has also gotten a hold of me, as the more and more I see how devices are emerging onto the world technology landscape the more and more I get excited about the software that drives them – hence my love for Flash/Silverlight over the years. These devices are starting to take into consideration the end to end experience, not just from the physical touch but also through to the emotive touch provided by the device once it’s given life.

At times however, these fake devices are simply a fantasy concept, illusion and/or to be continued. The would be inventors throw their idea out into the wild and soon it becomes a feeding frenzy in that it’s almost a glimpse to all as to what the future holds.

I myself, get excited by the idea of being the designer for such devices. In that, what if I got a job tomorrow and it was to design the next graphical interface for x new invention. That’s where the true fun is in software design in my opinion, its the ability to shape a culture through hardware and software at the same time. iPhone, Zune, XBOX etc are all doing this now, and its a no brainer at the success they are having.

In light of this core passion of mine, I had an idea today, what if I dared all to do just that, design the UI for the next generation invention. What would you all come up with? and how would you explain what it is you did?

Getting Started

I constantly am being asked every time I meet with developers etc in the Microsoft community – “How do I get started with UX”, I’ve attempted to answer this but I’m still not happy with that answer. Today, it hit me, and my answer is “design something you think is going to be the vNext”. I say this as I think it will first throw you into the deep end fast, secondly it will make you think about something that has not yet been invented and thirdly it exposes your level of passion in a raw format.

Carbon Motors E7

Today, there is a car called the Carbon Motors E7 it’s basically a futurist police car that has been designed and developed to help law enforcement world wide do their jobs more effectively. You can read more about the car at their website or below, but the thing that struck me about this car when I first read about in a magazine, was the level of detail the designers went to in terms of designing it. It’s a car begging for some CSI fake UI to help sell it’s idea to the world, in that take the car’s physical designs into place, what else could it use to help officers do their job?

This is where FUI (Fake User Interface(s) – term coined by Mark Coleran) comes into place, what if I dared you all to make the software for the car, you have unlimited budget and unlimited use of any technology, what would you implement into the car and what should it look like?

Let’s start with the middle console of the car. This is the nerve center of a cop, its his/her office and super computer in one. This area’s job is to provide officers an understanding of events and information not only within his/her patrol zone but also live situations outside the car itself (speeding cars, number plates etc).

What should this UI look like?

The HUD

Let’s Design.

The assumption for the car is this:

  • There is NextG broadband built into the car’s computer console.
  • The car is fitted with internal and external cameras (HD display) on the car (Fact: the car is actually fitted with an internal camera so police can monitor criminals in the back and it can also record 1500 number plates per minute of cars all around it).
  • The car can detect biological and nuclear readings.
  • The car can detect stolen cars both around it live as well as has the ability to recall a days worth of number plates that the car has seen during its patrol (Fact: It can do this, its not b.s)
  • The car’s cameras can also conduct facial recognition of suspects both in front, back and side views.
  • The car can provide live tracking of its self and other police cars within the area (GPS etc)
  • The cars screens are all fitted with touch panel capabilities.
  • The cars have voice and webcam capabilities (vide conferencing etc)
  • etc… use your imagination

The car today is actually pretty much fitted out with some of the above, but the possibilities of this concept are endless. The thing that gets my design propeller’s going is what would the HUD of the car look like, what would the console in the middle show when the officer first gets in.

I’m going to play around with this fantasy, and come up with some design mockups of how I would approach the GUI if i were given the task of being the interactive director for it. I’m going to ask various people I know around me for ideas on what they would put into and why etc. As this for me is a great case study for how user experience can empower a concept car like this further than its physical brilliance that’s out there today.

Related Posts:

My Slides: Microsoft UX: What Just Happened

I’ve been travelling around Australia in the past few weeks talking about Microsoft UX and essentially “What Just Happened”. I’ve uploaded my slides to slideshare.com (though they don’t animate, booo hiss..) but none the less they are there for those who may have attended my presos to look at.

The “What Just Happened” title came from an internal discussion list inside Microsoft, where I would decode movements on Adobe for all of Microsoft to get a better understanding of the PR spin coming from those guys. I’d essentially break it down into less b.s and more to the point information. Given I had a lot of success with this inside Microsoft I thought it would be a great idea to do the same, only not with Adobe but for those in the public regarding Microsoft.

It’s a theme I plan on continueing with in the near future.

Related Posts:

DataGrids are the safety blanket for bad design.

I’m constantly in and out of meetings with developers who are making some pretty intense Silverlight based solutions. It’s exciting and irritating at the same time to see them having all the fun in Silverlight and all I do is give advice etc on how to fix X or approach the product from Y lense.

One consistent theme I often see a lot is the over-use of DataGrids. DataGrids are being used pretty much majority of the time to present any if not all large amounts of data and it absolutely baffles me personally as to why developers keep gravitating towards them?

I say this, mainly as you’re given a solution like Silverlight where its actually your job to simplify the end user’s experience – yet the first chance some get, “Let’s grab the ye olde DataGrid with sortable columns and snap it into place”

DataGrids have a very small niche of usage rights in my opinion when it comes towards User Experience. What I mean is, should you have a need to make your own Excel Spreadsheet, sure, I can see the need (sortable columns and all).

Otherwise, stop. Use ListBox’s instead of DataGrids.

The difference between a ListBox and a DataGrid visually is obvious – DataGrid is multiple columns, ListBox is one. The major significant mindset adjustment for a ListBox is that it dares both the developer and end user to think about the problem being solved in that current piece of software.

An example that comes to mind and is quite common is Outlook 2007.

On the left you have a tree like situation, this is your first line of defence against dense data. It essentially forces you as an end user to think in terms of contextual categories regarding your email traffic.

The next column is typically a list of emails separated based on Date (Most commonly) but again, this is your second layer of defence regarding unnecessary dense data.

Last is the body of the email itself, basically this is your main end point “ahah, now i can get down to work”.

I like to use this as one of many examples of how a DataGrid vs ListBox could go off the deep end. In this example you’ve provided the ability for the end user to both narrow their filtering (self-selection in the wild) and secondly you’ve addressed the overall problem in a way that isn’t to restrictive or requires a lot of mental processing to parse for that email sent “last week”.

It’s concept also caters to both large and small data sets, as should you have an inbox like I did when I was at Microsoft, it was pretty much 1000’s of emails a day.

Today I have smaller inbox (yay) but the problem getting access to emails from the past hasn’t changed. In this approach to UI, i’m still able to sort/parse the said emails but should the data not yield an obvious “at first glance” hunt for that email of ages past, I can enter a search term – that or – sort the data on a more contextual level (narrowing down the data ).

Search is probably the area I use the most in Outlook as i’m often going “Oh crap, Sarah sent me an email last week, it had something to do with X customer…” I then type in “Sarah X Customer” and already my hunt is narrowed and the chase begins.

You can do the same with DataGrids, don’t get me wrong. DataGrids however get quite busy and cumbersome once you go beyond 1 line of text. In that, we humans typically aren’t happy to read horizontally – it has to do with the fact we prefer to parse things vertically than horizontally and especially on wide columns. It gives the impression that its “heavy or more work” vs vertical can give you more of a feeling of being “quick to parse” (Ever wonder why news papers do this?)

Bottom line is this. DataGrids should really be left to narrow specific areas of use, typically for fiscal data that has a lot of calculations to review – that or UI’s that make use of 1 line of text much like Apple’s email client does below.

Having said all of that, I still often see teams of folks praise the DataGrids that have heirachy’s of sub-grids as a “better way” to represent the data. It can be quite frustrating to see this, but I simply take it on the chin, take a deep breathe and try and sway them to focusing on the said problem from a different angle where the mandate/objective is to simplify the density of the data.

Less is more when it comes to UI, parsing large amounts of information gets tedious and is more prone to human error than user interfaces that handle a lot of the heavy lifting for you.


Related Posts:

  • No Related Posts