Confirmation Bias explained in terms of Silverlight & HTML5.

Today I want to talk about HTML5 & Silverlight specifically around the existence of what I would class as "Confirmation Bias". First, lets look at the Wikipedia definition of this term.

Confirmation bias (also called confirmatory bias or my side bias) is a tendency for people to favor information that confirms their preconceptions or hypotheses regardless of whether the information is true.[Note 1][1] As a result, people gather evidence and recall information from memory selectively, and interpret it in a biased way. The biases appear in particular for emotionally significant issues and for established beliefs. For example, in reading about gun control, people usually prefer sources that affirm their existing attitudes. They also tend to interpret ambiguous evidence as supporting their existing position. Biased search, interpretation and/or recall have been invoked to explain attitude polarization (when a disagreement becomes more extreme even though the different parties are exposed to the same evidence), belief perseverance (when beliefs persist after the evidence for them is shown to be false), the irrational primacy effect (a stronger weighting for data encountered early in an arbitrary series) and illusory correlation (in which people falsely perceive an association between two events or situations).

The Setup.

image

One does not have to travel far in the digital news space before one see is a case of this tendency being played out. The way it plays out is companies like Microsoft, Adobe, Google and Apple are all touting the HTML5 existence as being the right path forward.  Immediately after this path has been presented a flurry of activity within the comment streams begin to occur with rants like "HTML is compatible, boo hiss at plugins" etc.  These rants are at the end of the day somewhat truthful as arguments put forward that HTML is probably the most purist form of technology on earth is somewhat in a sense correct – well to be specific, its really the only technology that has had absolute universal agreement on adoption.

At present, these rants typically do not zero in on what the heart of the HTML5 bias parasite is really attaching to. It is that the perception if more people adopt a given technology you in turn gain a wider pool of acceptance and stronger monetization models flow onwards. That is to say that if HTML5 were to be 100% compatible on all browsers / desktops tomorrow therefore we all stand a greater chance of success over the current routes which are a mix of device technology bets through to a skirmish in and around desktop development strategies.
The Reality.

The truth of the matter is that HTML5 is a placebo that the industry is being suckered into embracing – hear me out before you froth at the mouth of disbelief. A placebo such as this is given to us all because we are living under the assumption that friction for adoption of a technology is too hard and secondly that with HTML5 the browsers will all agree on a universal standard thus we are back to a baseline of user experience one can all bask & share in. Let me clarify these two points in more detail and how ill-conceived they are.

The Adoption.

image

Adoption firstly is a developer discussion not a consumer discussion as take Silverlight for example. Silverlight was a new technology, we had zero adoption at the start and it was just a name of a concept when it was first announced to the world. We knew straight away we had a long marathon ahead of us and we would often say things like "it’s not a sprint, it’s a marathon" as we weathered, the adoption storm(s) (mainly Flash vs. Silverlight). Immediately we knew that the core focus of our strategies around seeding this technology was developers, developers, developers – we had to convince every developer around the world that Silverlight was everywhere, no friction attached! In short, we needed to stimulate the illusion of what makes confirmation bias so powerful.

Many would now argue that consumers are not interested in installing plugins, it is not just developers it’s the "soccer mums" at home who are not technology savvy. Roughly over 100million installs of Silverlight occurred during the Beijing Olympics in 2008 and consumers of the site(s) would spend around on average 20mins+ viewing time (broke records as all other sites at the time had around 3-5mins) so before we use the "soccer mum" argument, understand, technology today isn’t as scary as the 1990’s once was. That is to say people online will install a virus if you convince them that the content they are about to get post install is worth a click of a mouse button as again, developers, developers, developers oh and marketers.  We proved developers are the ones that need convincing, not what they use as an excuse for hesitation in around adoption – confirmation bias.

The Browsers.

image

Browsers secondly are and will continue to race to the HTML5 parity finish line. At MIX 2011 you saw Dean & Steve give the "oh isn’t that interesting" competitive shallow comparison between Google Chrome and Internet Explorer 9, specifically on how Internet Explorer 9 is "better" now (developers, developers, developers).  The race has only just begun and you are already seeing the competitive knife fights begin, like two old enemies taking short, fast but deep cuts at one another (Google may respond or may not). Parity is the false promise now and it has got everyone transfixed on the innocence of it all – technology placebo!

Taking a step back from the discussion, one should consider the next steps post parity, that is to say if tomorrow all browsers were absolutely in line with one another around HTML5 then well, what’s the differentiator left? Speed? Performance? Extensions…  The browsers have to grow in terms of market share and Internet Explorer team aren’t ones to sit idle and do their jobs for the greater good of the people! The Google Chrome teams are made up of a lot of ex-Internet Explorer team so that inherited competitive DNA will definitely come out as well. The fork will occur, and I predict Windows 8 will be such fork.

The browsers will eventually make extras adaptable to the developer’s needs, things like Google Gears or Internet Explorer’s "Slices" are all essentially plugins that dip ones toes in the water to guage reaction from the developers, developers, developers.  Imagine if Internet Explorer 10 was on 80% of the world’s Windows based machines and you had HTML parity but still stuck in the ye olde JavaScript/CSS wasteland(s). The Internet Explorer team come out with a strategy in around allowing you to write Desktop & Device experiences that are universal but the tax is you got to use a special additive set of API’s to get it working (wrapped in some IF/ELSE statements for detection of Windows 8 devices/desktops). Do you pay that tax? And aren’t we not back to where we are today? A fork in experiences.

HTML5 vs Silverlight isn’t about which of the two is better, its which one can easily sell to developers, developers, developers. If this confirmation bias continues, what you will see is Silverlight shifted from being a plugin and more as being a additive solution to the HTML5 experience promise but with less emphasis on its existence and more on Internet Explorer 9 & Windows 8.

The Burden of Proof.

image

Want proof? Silverlight has always given up its annual numbers of installation every year it’s been at MIX – I was told today by an internal source that numbers have dropped!. It’s something inside the Silverlight team we used to agonize over as to how we can hide the stalled uptake but inflate it just a little to convince people that it’s winning! – This year, no numbers were announced.  We did see many Windows Phone 7 and Internet Explorer discussions though but hey, it is a web conference right? (Is that why no Windows Presentation Foundation discussions occurred this year? As opposed to years before?)

My point is simple.  As a developer you’re in the seat of power & influence, understand your role in this equation as once all become a little more collectively alert as to what’s going on the you in turn can shape what happens next. Corporations like Microsoft, Adobe, Google and Apple are more preoccupied with both Advertising Penetration stats. They would do whatever it takes, to get those numbers high, so play them do not let them play you.

News Articles worth reading:

Related Posts:

  • No Related Posts

5 Things you ought to know when designing metro screens.

Having recently, gone full METRO lately, I have in turn created what I’d call my 5 things you ought to know going full metro list.  Here are five (5) things you probably might want to know if you head down this path like me?

1. Color choice is critical.

image
The thing that stands out about most "metro" inspired designs is they pretty much settle on around 2-3 primary colors of choice. They also then rely heavily on either black or white (maybe a shade of gray) for their canvas as well.

It’s probably good thing to start by choosing your canvas to paint on upfront. White is great, it gives you more room to play around with and does not come across as obvious in terms of empty space. Black is also great, but keep in mind your empty space may become more obvious if you do not plan your designs as carefully.

Once you have outlined your canvas now comes the choice of a base color, any other accent you choose feeds off this color. Selection of your base color needs to keep one thing in mind; it will haunt you throughout your design.

The base color defines the "chrome" boundaries will give the user the pattern they have made a choice on something. Having often used the base color as both the partial chrome and when it comes to a selection. The reason I do this is in my own warped mind, the selection is part of the chrome, it’s essentially a choice an active one at that so why does it need to be constantly visible in terms of difference? In that I’ve made my choice, I’ve noted the choice is visibly in place, let’s move on please and focus on the parts I haven’t made a choice on, am about to make a choice on and/or need to figure out whether a choice needs to be made?

After you have defined your base color, head on over to Adobe’s Kuler site (that or use the Kuler extension found within Photoshop CS4+).  Inject your base colors into the "create" area, and then decide how your color compliments by selecting an alternative/complimentary color. Kuler is pretty spot on in terms of helping you decide this, as if you choose a bright green; you have many colors to choose.

iWantUsrMgmt

Example, one of the designs shown uses a bright blue, at first it seemed quite bright – but then after while of using it (own opinion), becomes a welcome relief from the green.

This alternative or secondary accent in your color, should become the color in which you decorate your buttons or inputs into.

Example, if you look under the hood of a new car, you will see areas colored yellow whereas the rest is the same color of the engine etc. Car manufacturers do this on purpose, they want you to touch yellow yourself but if it is not yellow and you are not mechanically minded – leave alone.

Having liked this principle and having fused it into designs constantly and personally used the secondary accent color to draw people’s attention to the fact "I’m ok if you touch this, you won’t break anything if you do" thinking. Personally, not entirely sure how popular it is amongst the UX/UI fraternity.  So far, no users have made obvious complaints from this approach.

I have not seen data that contradicts my theory here, but ultimately the data I do see is if the end users are given a breadcrumb trail in terms of pattern recognition, you have won them over – complexity and efficiency formula’s aside.

image One digresses; finally keep your color palette to around four (4) shades in total. It forces you to keep your selection pretty consistent and close to the base as possible.  Having liked this approach, as it prevents color conflicts occurring and again. It also maintains a pattern that is consistent – almost expected.

That is the interpretation of metro and colors so far – personal opinion based off current design style (which is slowly evolving – personal UI journey here).

2. Typography consistency is good, focus on that.

image

 

image

Designs shown are an example of how they do not keep typography settings consistent, as they will often fluctuate between 8pt to 30pt text depending on design purpose. These choices made only during the testing out layout composition from wireframes phase. The idea here is to see how it all stacks together inside Photoshop before you take the concept over into Expression Blend.

Once inside Expression Blend – much like HTML/CSS – I settle on a consistent and semantically named theme sizes.  An example would be H1FontSize would be around 30pt, H2FontSize would be around 24pt and so on. The key here is to keep the approach in which you attack your UI consistent in your font size settings – goes without saying.

FontSizes are not the only issue, UpperCase, Camel Case, Lowercase etc. are all equally important.  Do try to keep these consistent to their relative function, in that navigation kept lowercase but headings etc. all uppercase.

Zune team does this with the Zune Desktop, the actual navigation, and nav-headings and maybe category headings are all lowercase. The rest of the text fluctuates between all Uppercase and normal case

Not entirely convinced of a killer formula here as its one of those areas where more experimentation could be done around what can work vs. what cannot.  Typography experts will definitely have an opinion here. Have yet to see one that outlines this. (Ping me if you have any bookmarks in this area of expertise).

Color choice per heading is also something that seems to have a bit of a formula around when it comes to my designs. I’ll often use the base color on labels that I think are important enough to capture the users attention but then use opposite to the canvas colors in order to retain a normal state.

I typically think about this as a case of highs and lows in vocal tones. In that if describing a current screen to someone, one might say, "this is the USER MANAGEMENT screen within the security management area". This is personally, done naturally via voice emphasis the "User Management" vs. "Security Management". As who cares where it lives, it is not the end is it.

image

Welcome feedback on this approach, but the point is color selection helps carry that forward.

3. Text Chrome vs. Text Content balance it out.

This is one of those pet hates I have with the current implementation on Windows Phone 7 – in one way the team decided to abandon chrome artifacts in favor of text, the problem I personally have is switching gears between "Chrome" text and "Content" text.  I find myself at times pausing and thinking, "ok, can I touch that..nope..ok what’s touchable here..".

imageOvertime, personally, will develop some muscle memory in this space and will soon learn what the differences are but in given the current metro virginity I have, I just noticed this as a pattern which was not obvious (again, let users notice the scent for pattern recognition).
Would one put heading labels etc. as being the "Chrome" text category? Striking a balance here of too much text is important and again color choice can help you out here. I rely heavily on monochrome filled shapes and text in my current metro style, so for me it’s a demon I’m always trying to wrestle to the ground – keep my text minimal and restrain from too much on the screen, especially if there is allot of data to view.

4. Element minimizations are ok, but add some life please.

Over lunch today, a colleague and I were discussing the metro way of life really does not allow too much in the way of gradients or watermark elements – most of the designs I have seen in this space are clean / white.
Is purity in no element additions bad or good?

image

I for one cannot honestly answer that as I am the type of guy who often just does not know to back off on the decals, I love a busy UI and it has nothing to do with the user experience it is more of an artistic habit.

Agreed, less is more, but sprinkle in some energy into the user interface. Think about what the end user is supposed to feel or relate to the said User Interface. One screen rather has a lot of fun with the idea that a boring concept like task tracking can take on more of a Bourne Identity / CIA feel.  I then throw in a world map, as hey, all Fantasy User Interface(s) within Movies always have the map of the world behind them when hacking a large mainframe or accessing global data of some kind (it works, I love it, back off).

Point is, don’t be a lemming and follow each other over the pure white cliff, sprinkle in some decals to take the edge of the seriousness of the UI and allow the end user to feel a small connection with the work you’ve put in front of them.

5. Fantasy User Interfaces in movies are your best friend.

Having found it difficult to get inspiration sources for metro and instead turning to local train stations etc., but they also have a much-prescribed look and feel throughout Australia.  Often one use Google/Bing images and searches other transit signs etc. to get a pick out of what is out there in the wild – metro style.

The main source however for inspiration, is to watch movies that have kickass user interfaces in them and then pick them apart frame by frame. I analyze them and try to force myself to think outside the box more and how these concepts could relate to real-life user interfaces.

I like what Fantasy UI brings to the table, it creates this nice illusion within a TV Show or Movie that convinces you in under 30seconds that the actor is doing something high tech.  It is obviously not real software, but you forgive it and go "yeah, suppose, I could buy what you’re selling here" for that brief moment.

I think it’s important to call that out, as it’s at the core of probably our reaction to software and it gives off this pure signal of "that works" moment.

Metro can lend itself to simplistic Fantasy UI’s, as often the user interfaces are very basic in their structure. Take the work of Mark Coleran (current geek UI hero); looking at his work, he has kept the UI basic in terms of color choice, composition and decals.  The actual magic comes to live when there is animations etc. on it, but in the end, it is relatively simple in composition. – It works!

This is the only reason I am remotely convinced metro as a style so far (the one I am working towards anyway) might have some legs. It is not entirely rainbows and kisses, but at the same time, it is.

Also, look at HTML/CSS sites within csselite.com galleries for inspiration as well. As these sites typically rely quite heavily on CSS for their design governance – so in a way the metro concept really hails from this if you ask me…

Related Posts:

WPF lip service at it again

image

I’ve been watching the WPF Disciples list regarding FIXWPF with some obvious keen interest. The thread has taken on an interesting level of discussion and guys like Pete Brown are doing the right thing, listening, responding and taking notes.

Jaime however has jumped on and given the – we’ve heard it all before – riot act around the UX Platform guidance. You know the one, Good, Great and Ultimate splits sprinkled with “it depends” and basically comes around to the pitch that Microsoft is probably best known for around commitment pledges.

This isn’t an attack on Jaime, I’ve worked with him before and I liked his work in the past, as all he’s doing is talking to party lines and it will be the same guidance you are given no matter who you talk to inside Microsoft.

That being said the bulk of it is lip service and i’ll explain why.

RE: HTML5 vs Silverlight vs WPF (Good, Great and Ultimate).

This guidance is probably the oldest response to keeping the three pillars apart. It hasn’t changed in over 3 years and is unlikely until you see some dramatic increase in footprint regarding Internet Explorer 9 + HTML5.

The idea is to provide developers a linked approach to how the three dovetail with one another and when you look at it from the right angle it almost looks plausible. The reality however is it is poor guidance for one and secondly it doesn’t address the question.

The question really being asked is “which should I bet on” not “which is the right technology for the right job” as quite frankly for 80% of solutions out there i’d confidently state that all three could achieve your needs for line of business applications. The three each have their own taxes  you will end up paying but welcome to software and that’s life.

Back to the question, which should you bet on and this is where the lip service falls short. As the question is also asking which is Microsoft likely to continue investing into – the fact that Jamie for example is no longer a full time WPF evangelist and is now in the Wp7 evangelism rhythms is an indication to that answer. No Microsoftie is going to come out and say “yeah, you better get off WPF unless your writing C++  bridges to .NET, as its going to get murky soon” as the last time a softie even hinted at that kind of raw honesty was Bob Muglia and he was a Senior Vice President – currently looking for a new job.

Choosing between the three really is coming down to your team mates, your needs and lastly your personal investment in learning / continuance in your career. They are really the three core principles involved in making the choice between the three and the usual good, great and ultimate speech has never really returned any hint on success – I dare Microsoft to provide evidence of success here.

If your team mates are all HTML developers with ASP.NET Web Forms skills, then the question they are all having is around which is the easiest and best route to success next. WPF can provide you a core foundation for Silverlight/WPF development but it will test your patience and confidence levels greatly. There is a lot of information decay online around which version of the framework/API still work today vs when they did in the past and lastly WPF seems to have more questions than Silverlight go unanswered – according to StackOverflow.com.

Silverlight is still up for grabs although its clearly shifted its strategy from when I was on the team to be more of a Windows Phone 7 platform and less about the web more so as time continues to flow.

HTML5 is basically a bunch of new tags that are ready for browsers, but in the end you’re still hacking around in the weeds with JavaScript and CSS. To be fair, if you’re an ASP.NET WebForms team, then HTML5 would probably be the quick win – but – its not as much fun as Silverlight / WPF?

My point is, its confusing and the usual lip service really doesn’t bode well for Microsofties as they come off looking like they are a PR machines for one and secondly any trust within WPF vs Silverlight discussion has been eroded due to constant shifts in vision – clearly it highlights that this has been and will continue to be highly tactical reactive product management and less strategic.

RE: Customers want us to invest more into Silverlight.

Jaime goes on to say:

First of all,  a lot of our customers are telling us to invest more into Silverlight.  Let’s say (again made up) that demand is  4-to 1. How do we justify a revamp of the graphics architecture in WPF.  This is not trivial work; the expertise in this space is limited, we can’t clone our folks to 5x to meet everyone’s needs.  

Unless Microsoft’s feedback channels have gone through a massive upgrade / radical change in the last 6 months, I call bullshit on that one. The customers are likely to be folks like NetFlix or Vertigo? (we have no real tangible customer feedback pipelines in Microsoft. It was a nightmare to sift through the chaos to get such answers)  and secondly the reality of that comment is what I call “Oh dear, he didn’t say that” moment. If i was a journalist i would use that firstly as fodder for “See Microsoft just stated they have no interest investing into WPF” – not  only would it be fair game, it’s obviously correct so it’s also not healthy right now.

It’s important to also add that if you starve a product of its marketing budget, then your overall awareness for the product is going to drop dramatically. It’s also fair to state that if the bulk of your attention across the board within the company is on Windows Phone 7 and Silverlight, then its even more likely the customer focus is skewed towards what you’ve been waiving and shaking your hands at the most. To use a metaphor “It’s like giving a child candy and then asking if they should give you more vegetables?”

My only real response to that question is who’s going to walk up to AutoDesk and tell them “Well, we could fix performance issues in 3DS MAX 2010 with you, but sorry, Silverlight is our preferred bet… best you figure out an alternative route filled with C++ and roll your own rendering pipeline".

Jaime goes on to address the likely cost of WPF

Let’s assume we did take on the work.  My guess (again, I am not engineering) is that it would take two years to implement and thorougly test a release.  At the stage that WPF is at, a rearchitecture or huge changes on the graphics stack would be 80% about testing and 20% about the dev work.    It is not a trivial amount of work.   Would we get the performance you want across myriad of devices? We don’t know. WPF bet on hardware, and there is new devices out  there that are trading hardware for battery, weight, or simply for cost.  it would suck to do that much work, make you wait a long time, and then not get there. Let’s get real on the asks; you say “improve perf” but you are asking us to do a “significant re-write”; these two asks are different. 

He has a point, it would be a significant impact to the resources allocated to WPF to get it back to the core promise that was made in 2007 – trust us right? things keep changing? we don’t have a plan just right now, but as things happen we hopefully will!.

It’s a good thing that there are 200+ engineers right now ready to pounce on this problem so it should be a large amount of work, but with that many engineering cycles nothings not attackable according to Scott Guthrie, CVP of Developer Division.

That was a cheap shot Barnes! and it was. My response to Jaime’s remarks there would be “This affects me how?” as in the end you, Microsoft asked me to invest in you years ago. I did, and now you’re telling me its too hard and costly for you to invest back into me? how is that fair and again why am I trusting you over and over when you keep changing the rules? Is this not an abusive relationship now?

RE: We speak to customers.

Comments like this for me a red flags –

3)      You are asking us to listen to our customers.   We agree there and that is exactly what we are doing. Please keep in mind, you are not the only customer – even if you are my favorite one :)-.

image The reason they are red flags as the response at the end of the day says “trust us, we have this covered” as nowhere does Microsoft really ever decompress what customers they have spoken to and any substantial numbers to support it. For all you know, NetFlix and Nokia are the two customers they spoke to and NetFlix executive being on the board of Microsoft whilst Nokia’s new CEO was one of the ex-executives at Microsoft – well you can see how easily you could tear the argument apart if you set about doing so.

The point is, there’s no response you can give as the actual comment is supposed to make you feel isolated and that what you’re saying really is most likely a vocal minority.

Here’s the real deal guys and pay attention to this one as it will bake your noodles. Inside Microsoft there is no one team that handles customer feedback. Multiple teams do it and they approach it from a variety of angles. In the entire time i was a Product Manager and Evangelist within the WPF/Silverlight teams I never once saw or even heard of a central database of customer feedback. The closest we had was an annual survey / report that we collected which gave a health check of the entire Microsoft brand & its products. It was quite shallow in gauging what customers wanted and it’s main purpose was to be used as a large measuring stick for all roles almost in Microsoft to gauge success/failure was per year.

The only way you would get data from customers was if you invited them to Redmond (which is effectively the same as a band inviting a fan over for dinner and asking them what they could do better) or you outsource your needs to a company like Adaptive Path, Forester, Gartner etc to come up with a survey / research around the topic at hand (Don’t be shocked folks, but Gartner Research can be bought for the right price).

Having a listening post inside Microsoft around what customers want or need is chaotic at best and it depends on who’s listening and what the initial agenda is – more so how it maps across. It has nothing to do with constructive feedback or channels of delivery as the higher the decision making goes the further the customer feedback gets from these decision makers.

RE: Let’s compromise?

Jaime does go on to discuss the compromise:

he WPF has looked at the trade-offs, and risk many times.  We are also looking at what customers need. Jer, to you it is all about graphics.  To many others, it is about data.  So, how do we serve all customers??

The strategy is exactly what you have seen/heard:

1) WPF 4.5 is going to have some significant data binding performance improvements.  

2) We are not redoing the graphics framework, but we are doing a lot of work to let you interoperate with lower level graphics so that if you need more graphics perf you can get it, and still keep the RAD of the rest of the framework. 

I often see this style of response from Microsofties (hell, I used to give it). It’s one of those responses you just go “What the f… If you’re going to piss on my head from above at least have the courtesy of telling me its fresh water harvested from a pure spring – make an attempt to keep the illusion alive at the very least.” yes its colorful but the point is, please stop treating me like I’m an idiot as I’ve not given you any indication i think that of you have I?

Cheap shot again, sorry Jaime but we both know that’s a classic “let’s take this offline – abort abort” throw away pacification tactic. As what it really translates to:

“Look, we don’t have engineering cycles to really fix the core problem so what we are going to do is shift the focus in other areas in the hope you will just leave us alone long enough until we can regroup for a better story next year”

Cheap shots again.. but.. in my defense, I’m just thinking on both sides of this conversation. How would I react to the responses in WPF Disciples as a Product Manager / Evangelist and lastly how would i respond to the answers I just gave as a customer / adopter of Microsoft UX Platform.

Is this about Jaime or WPF though?

Now, normally remarks like the ones Jaime has given on a public mailing list are usually ones you give a free pass to with regards to most Microsoft staffers. As at times you find staff arm themselves in the riot gear and just bolt straight into the fray of civil geek unrest and try their best to calm peoples opinions from spiraling into a negative back to a positive.

Jaime, isn’t a young pup fresh out of Microsoft boot camp. He’s a seasoned Technical Evangelist at Corp, who over the years has had deep roots with the WPF team in terms of influence and awareness of their future(s). I’ve personally worked with Jaime a few times and he is very talented and smart person, so my point here is that what he’s just outlined was a slip between what he knows privately as to what’s going on vs what he shouldn’t disclose publically. Furthermore, he speaks for the WPF team and no matter how many times he can throw the prefix “personally, my thoughts are” to his remarks, if that’s what he’s thinking then its highly likely that’s the outcome you’re likely expecting or going to expect.

This isn’t about Jaime though, and I cannot stress enough that I have enormous respect for him professionally and personally. It’s about Microsoft and WPF, and this is simply a highly visible case of internal thinking spilling over into a mailing list. I cannot stress this enough, if this reads as me kicking the crap out of Jaime’s remarks on a thread then please can i simply say it’s not personal its the role Jaime is acting out that is up for grabs. You represent Microsoft, you speak as if Bill Gates himself sat in a room full of journalists and outlined his thoughts, there is no “but he’s a nice guy” moments.

image

This is why i have created FIXWPF.org and will work night / day to expose this kind of lip service but instead of opinionated pieces or argumentative out of context text grabs, i instead will hope to back it in a more factual manner with real-world data, so situations like this aren’t a case of constant streams of :-

“trust us, we have it covered”.

No you don’t have it covered, as it costs to much remember?

Related Posts:

Going full Metro.

I uploaded one single Metro inspired design that I once did for Microsoft India/Asia and the next thing I know I’m being asked to do more for other clients. I shouldn’t complain, money is money and I’m the type of guy who will unzip if the price is right – there’s a lasting image.

image

It seems that when you show someone large monochrome simple shaped designs, folks often gravitate towards them over some of my other usual gradient filled drop shadow filled designs. At first, I am shocked if not appalled at how they could dismiss one design which takes me much longer for a design that essentially looks like a colored in Wireframe mockup.

Metro simply put feels like I am shoplifting design. It’s not a lot of work and the main focus I have is controlling myself from adding too many elements to the screen or keeping the typography unbalanced. Color selection is also important as you have to keep that tightly controlled otherwise it ends up being a rainbow pixel barfing.

Metro is Developer art friendly.

One such client I have at the moment has expressed an interest in getting me to come in – as per usual – at the tail end of a sprint season of coding and well make it look “pretty”. They have also asked if I could weaponise the approach so that other teams within the company could leverage the same work within their projects.

image

What to do.. I need to make my design(s) for WPF/Silverlight engaging, useable and lastly repeatable. Metro like a super hero from the 1950’s, makes its way to the top of the conscious thought pile. Turns out those crazy beige loving engineering culture filled geeks in Redmond may actually be onto something here. Metro’s secret is that it creates a way in which designers and developers can finally reach a compromise on design.

Using large blocky shapes and minimalist approach to screen while peppering large amounts of typography whilst also not saying the words “Wireframes colored in” – boom, you have a design revolution within the .NET community its name – METRO.

Metro isn’t all monochrome rainbows and puppies…

There is a catch though with Metro, one that as a designer is starting to ride my last nerve. They all look the freaking same. I can’t help it, I get into a pattern and before I know it I’m knocking out a mutated design that I did 5x metro designs ago. I feel like I am cheating now, it feels bad that I am in what I call a design rutt and It’s hard to break out of given most inspirational sites like TheFWA.com have no metro goodness.

image

There are only so many times I can look at the Microsoft Health / Futures videos before I also end up copying their designs without realizing it. I simply crave others like me who are injecting large enough doses of Metro to stop a gradient filled elephant in its tracks. I need to get off this crack or I’ll end up living in a typecast world filled with basic shapes and colors.

Metro’s concept isn’t isolated to Microsoft.

I am also starting to see the world in glyphs, typography and bold colors. I pass a highway sign and I go “ooh, that color could be used in a design of mi…stop it!…stop..”. I pass elevator filled corridors and I can’t but help notice Helvetica is the weapon of choice most of the time in commercial metro filled buildings. I’m going full metro!

Metro is the future of glass.

This morning, watching my usual twitter feeds I come across a re-tweet from one of my design demi-god like heroes – Mark Coleran. In this link filled with the future(s) nectar I so willingly crave, is a video projecting what the world would be like if we had more glass and multi-touch screens. At first I am absorbing this eye candy like a fantasy user interface addict that I am – only, boom..there it is, metro.

I’m Scott Barnes, and I am now addicted to metro. If you or a family member are suffering from Metro affixation, please contact me together we can find a way out of this disease / addiction.

If you want to see more of my designs, you can do so here:

Related Posts:

MVP – Most Valuable Professional. Is it or isn’t it?

David Woods wrote a blog post earlier this week which he outlines his thoughts on the MVP Program(s) at Microsoft – specifically the lack of value he finds in it.

Here are some notes if you will on some types of questions I’ve witnessed or have sensed gone unasked over the years inside Microsoft.

Is the MVP Program useful?

image

It is and isn’t. Its an important concept to have attached to a Product within any company, as the idea in itself is righteous. An MVP is someone who can influence others to explore a given product within Microsoft and that’s pretty much it in a nutshell. The MVP doesn’t have to be the worlds best expert at the said product, in fact a lot of MVP’s are far from that – they are however someone with whom makes an impact within the community.

Impact and influence is why the MVP Program is useful, now the problem with it today is that it’s not consistent in its approach and lastly there are quite a lot of “fanbois” in the program that can at times disarm the program’s true potential – as everyone may paint all with the same brush “bah, bunch of Microsoft yes men, who cares about them..”

MVP Program is broken because Product Teams never tell you anything.

image

Yup, they often will keep you in the dark about the product’s next roadmaps and at times treat you as if you were just a TechEd/MIX attendee instead of an MVP. It’s nothing personal, it’s nothing to do with you as a group it has everything to do with the word momentum.

Inside Microsoft when you own a product, you have to fight to get a launch buzz going. You fight because every other team inside the company is pretty much either getting ready to ship or talking about what could potentially ship. You in turn have to fight your way to the top of the headline heap for tech buzz.

I state this as when you have to go through this, telling an MVP is somewhat harmful to your upcoming surprise party as all it takes is an MVP to give Mary Jo / Tim Anderson (Tech Journalists) a heads up and boom not only did the surprise party fall flat but you’ve also given your competitors for the said product a heads up on talking points.

Talking points are important for competitors to know ahead of time, as when the journalists etc. get the said product briefing they in turn look for quotes / sound bytes from the said competitor (just like a political campaign). It pays to be ready.

That’s at the core of why you are probably kept in the dark about products. You got an MVP nomination because you can influence, nobody actually said you’re the chosen one and that all state secrets within Microsoft will fall before you. You need to make peace with that and more importantly you also need to understand that even Microsoft staff don’t get as much information as you do, so that is the reality an MVP today probably needs to come to grips with.

Not true, for example XYZ product team tell me stuff all the time!

image

Yeah, I don’t doubt that each product team has their own unique communication pattern with the said products MVP’s. It comes really back to your individual relationships with the said product team. It also comes back to the competitive threat levels attached to the Product(s) you evangelize.

An example is that in 2009 the MVP summit within Redmond, the Windows Mobile team kept their cards close to their chest and it this really pissed off the Mobile MVP’s. I remember at the time thinking “yeah, that’s not a fun team to be in right now” but to be fair, Windows Phone 7 needed to be kept locked down as much as it could be. It was a dangerous secret to let loose given its importance to the device market. Some knew, most didn’t and it was a deliberate decision.

At the same summit, we also wanted to keep features within Silverlight/Expression secret. I remember our team made a point of keeping everyone in the dark. Then Scott Guthrie got on stage and pretty much told everyone everything, so we then in turn went “well, he’s the executive in charge, I guess its out now” so we in turn reacted to this and started the communication pipelines again.

That same year, 3 MVP’s also leaked information around the products and as a result at the time of the summit journalists pickedup on the information and ran with some stories – again, partially deflating the momentum we worked months building behind the scenes for MIX?

I also in that same time fought to NOT have those three MVP’s banned from the program for the said leaks – despite the witch hunt within gunning for them. My rationale was simple, they are excited about the product why do we punish them? isn’t this what we are supposed to do ? Two MVP’s were warned one was banned (simply because he named Kittyhawk aka now as Visual Studio Lightswitch publicly).

Do MVP’s influence the features then?

image

In my experience they do. It’s not always obvious but there is definitely influence from MVP’s in most Microsoft Products. The problem I see in this question is I think MVP’s want a direct “you created this xyz feature, well done guys” moment. In reality it can be a small tiny spark of an idea that an MVP threw out there into the void, the teams then digest the concept and come up with some ideas similar to it etc – next thing you know, you have functional specs written and maybe the next release or thereafter, the said spark mutates into a feature.

Point is, you’d be surprised at what influence occurs via the MVP program and how it translates into a feature, its just not always obvious.

Give me an example of MVP influence?

image

One year, I had an MVP stay with me for a week in Redmond. He at the time didn’t’ feel as if he got much value out of the MVP summit and had a lot of questions regarding the future of ASP.NET and problems within. I figured, this guy is an MVP who is deserving (he’s good at what he does, he does a lot for the community and most of all he’s quite a humble person to know), so with that, I personally walked him around to as many people within Microsoft campus as I could at the time. We had meetings with the ASP.NET teams and he hung out with the devdiv product managers as well.

I remember one question he asked was “which should I talk about, WebForms or MVC?” and our typical response to that question was “It depends”. This wasn’t helpful for him, so we talked it out more and as a result I watched my team members at the time see first hand that “it depends” response, was bogus. They could see this guy in front of him giving them the raw data that basically WebForms and MVC adoption decisions were a confusing story.

It’s also worth pointing out that during his time with the ASP.NET team a few specs were written based off the chat and as a result I think he made impact beyond what he or I could really measure first hand?

This MVP now works for Microsoft and I think him seeing first hand the internal culture within Microsoft campus influenced not only his expectations of Microsoft but also is likely to have ripple effects for quite some time.

Nobody knew this happened, so my point stands – influence at times isn’t always as obvious and that’s why the MVP program is healthy, despite its many flaws.

Can you help me then to become an MVP?

image

I’ve personally been asked a few times to become an MVP since leaving Microsoft and I’ve turned them down. I don’t think I’m better than the program etc, I just don’t think I add value as to me an MVP is someone who is actually genuinely surprised at the recognition. If they wanted to make me an MVP, then it better be because I had influence or did something for the greater good.

Asking or proactively making yourself loud and obvious so that you can game the concept of becoming an MVP for me personally sours the program’s potential. It’s not about having the MVP badge on your resume, it’s about doing all the requirements of an MVP because you firstly enjoy it regardless of the title and secondly you create a two way dialogue with the very people your influencing. I grow weary of seeing the same muffin eaters at the same conferences talking the same crap over and over just so that they in turn can get the local Microsoft Evangelist’s attention in order to get a MVP nomination.

Don’t get me wrong, that formula will yield you a nomination but for me it’s the Microsoft folks who are proactive about the product that one day get an email / tweet about them being nominated as an MVP – to then have this expression of “really, wow, I hadn’t thought I meet the grade”.

Humility is needed more in the MVP ranks and ass kissing / cheer leading within the program is something that needs to be weeded out. An MVP should be also someone who’s not afraid to say “this sux, but this rox” in the same breathe.

Blind loyalty in a MVP is useless.

Never listen to critics, as they are never going to be happy with you, that’s why they’re critics. Never listen to your fans, as they are to busy being happy with everything you say. Listen to the ones that haven’t made up their mind, they in turn will help you more!

How should the MVP Program be reformed?

image

Don’t know, all I do know is that its broken at this point. I think it has to do with Microsoft Developer & Platform Evangelism (DPE) has lost its way since Walid (CVP) took over years ago. The DPE guys are all over the place and often their budgets are cut so short that boarding a plane can be an exercise of begging / frustration. I spent over $50k+ in my first year at Microsoft in travel  + expenses alone, even though at the time our T&E budget was around $20k per person. I think its now much less.

Evangelism is important to the MVP program, as they are the ones who should find ways to work with the MVP’s in order to scale the evangelism rhythms. I just don’t’ see that right now.

Its broken, and it needs investigation as to why it’s broken in order to reform it. I think the answers are to few to formulate an actual plan right now.

Related Posts:

Silverlight and HTML5, Rainbows, Sunshine and Bullshit.

image

I look at all the hysteria around technolgyX vs. technologyY and immediately tend to ignore anything said within the blog posts or news articles. It’s not important enough to get all worked up about, as the real core element of these arguments is which is going to be popular vs. which isn’t?

Take the current week or so around HTML5 vs. Silverlight. The reality is most plug-in or desktop centric developers who are content with the status quo probably aren’t even going to be interested in HTML5 unless someone pays them a nice hefty sum of money to do so – if and only when – their current work stream dries up.

The reality of the conversation around these two titans of technology isn’t which is better, its more to the core essence of the argument – which is Microsoft going to favor. It’s an important point to make as when the rainbows and sunshine circle jerks are over, someone has to stand before an Bob Muglia and declare where they are going to spend the budgets for the next fiscal and why.

Windows Phone 7 is obviously going to take the lions share next fiscal, Internet Explorer 9 will also have a hefty amount attached to it as well. This in turn creates a ripple effect downstream as once the budget lines are declared internally it then generates bounty / career opportunities as well. It doesn’t stop there, being seen to be on the winning product of the month is a easy career booster but more importantly it also at times can determine where the Evangelism teams worldwide are to spend the bulk of their energy.

I’ll be fair, Evangelism inside Microsoft has a purpose and that is to be ahead of the technology release waves, in that their job is to get the crowd world wide excited ahead of a release. It then falls back to the marketing / sales pipelines to then sustain that excitement once the Evangelism squads have had their mission re-routed.

The playbook

Here lies the problem with this playbook. The first is that Sales/Marketing folks aren’t really goaled too heavily on Market share centric metrics – they are rewarded more for Revenue share focused metrics. Silverlight has zero revenue share, Internet Explorer has zero revenue share but Windows Phone 7 has revenue share.

Here lies the dilemma though. On one hand you have a product that has a number attached to it that can get sales / marketing teams excited. In order to be effective in promotion of this product they need to excite the wider mass around it – which in turn means free Silverlight marketing. The downside is that Internet Explorer 9 is important as well so Microsoft has to give some focus to the HTML5 cause.

Do you start to see the problems with that? it requires a consistent unique clear strategy on how to separate the two concepts from one another.

This is pretty much why BobMu came out and stated what he said but kind of fumbled it not only once but twice in the process. The reality is that Microsoft will want to slightly turn down the volume on Silverlight so that IE9 can get its share of the spotlight. In order to wind the volume down, you got to start saying things like Silverlight + Mobility over and over while turning up the volume on Internet Explorer 9 + HTML5 + Applications a bit louder than before.

Silverlight gets thrown under a bus.

I have been mucking around with this, and I probably shouldn’t via twitter. That being said, Silverlight isn’t a dead technology – yet – it’s still got legs as whilst Microsoft’s intent is obviously crank Internet Explorer 9 + HTML5 volume pretty loud as well as Windows Phone 7 – the reality is out of the 600k Silverlight developers and plethora of WPF developers left uncounted, they pretty much couldn’t give a rats ass about HTML5 in the first place.

I wouldn’t necessarily declare HTML5 the victor simply because Microsoft said so. I’d look at this more of a case of wait and see, in that sure Microsoft will market the crap out of IE9 but in reality this product is a stillborn brand in the first place and furthermore HTML5 is nowhere near ready for prime time adoption.

All this will do however is scare the crap out of business decision makers who don’t know better. Technical decision makers may or may not be shy about Silverlight and it really comes back to how Microsoft can redeem themselves beyond their current fumblings – (I’m hopeful Scott Guthrie this week at DevConnections will do a better job at his Commitment speech than BobMu alongside leaking some hints around what Silverlight 5 is going to have to ensure people are focused on the actionable elements within such a commitment speech).

In summary.

HTML5 vs. Silverlight is going to be a hot topic until Microsoft tips its hand on which one it favors the most but right now you won’t get that from the company as to do so means sacrificing two legacy brands that are filled with enough hate debt to cause major hurt amongst the masses.

Windows Phone 7 has to overcome Windows Phone 6.5 and below legacy related issues that aren’t technical but more conceptual.

Internet Explorer 9 has to overcome everything from the IE6 disaster through to the IE7 and IE8 disasters all the while showing that they aren’t interested in the Embrace & Extend forking that its historically been known to do. This one brand has caused more negativity for Microsoft as a brand than any other product since Office + Clippy.

You’re going to see Evangelists etc talk about "choice" and "it depends" as that’s all they can really throw at you right now, bottom line for you to think about is not which tech is better but where do you think Microsoft will place its bets next. As once they decide, one of the two will end up in the heap alongside WinForms, WebForms and sadly – *sob* WPF.

The only way I can see Silverlight teams putting out this tire fire is if they release the Silverlight5 roadmap now, it will add weight to the usual fluff commitment pledge as well is giving all a better understanding of how things to come are supposed to connect with one another.

I would like to see a better focused strategy around how Microsoft UX Platform looks tomorrow as the old 2007 one is kind of a bit rusty now given all the new technology variables at play.

Related Posts:

The rise and fall of Microsoft’s UX platform – Part 2

Tribes are something we humans seem to never quite shake off and will often seek out mini tribe clusters in everything we do. If you’re into cars, you will typically find a club or social arena where others like you dwell, same with chess, fishing, running, riding bikes etc. pick your hobby and chances are there are others like you surrounding you.

This primitive trait is consistent in technology today, if you are a hardcore Adobe Flash developer you’ll defiantly be hanging out in a spot where others like you hang. If WPF is your cup of tea, you’ll do the same whether it be online or offline. It’s how we learn, communicate and develop our careers into new areas of expertise and it something large corporations know on some level that this is vital to the future success of the company in questions future.

In this second part to my coverage of Microsoft UX Platform state of play, I’m going to zero in on the first generation of tribal elders – Evangelists. As its important to get this part out of the way as in Part 3, I’ll be talking more about how the Design discussion inside Microsoft has been abandoned – or should I simply say, shut down / suspended.

Every tribe pedigree needs an evangelist.

image

This tribal mentality is why Evangelism is commercially sponsored as by hiring a bunch of people who are passionate about sharing and asking them to go off and spread the gospel of the respective companies technology is part of the overall marketing via influence. Evangelism isn’t a sales role, it’s in fact a marketing role. A good evangelist is someone who can market a product from a basis of trust, meaning they actually believe in what they are talking to others about – thus why Evangelism and religion often are similar in DNA.

The downside with Microsoft Evangelism is that recently I think it’s lost its way, that somehow it’s gotten into this rut of now being metric focused evangelism. It’s now become obvious that depending on each fiscal year the evangelism team(s) within Microsoft will often suddenly switch gears and start talking about a completely different product than they would have before – simply because it’s new and has to be seeded.

The metric system suffocates evangelism.

image

Let me explain what I mean by that having been both a Microsoft Evangelist and Product Manager.

Firstly, as a Product Manager the goal for us as a team was to find Evangelist to flood the market in and around what’s coming up and why it’s important everyone in the field as we called it, paid full attention. Asking the field to do this without a metric attached was simply a weak posture for us as a team to have, as it meant that any who did evangelize our products did so for free, but on the flip side when it came to these said Evangelists handing in their homework for the year (i.e. the fiscal metrics and commitments) they could really only use this kind of work stream as "extra credit".

Extra credit was the carrot you would dangle, but the harsh reality is that being an Evangelist you have basically nearly every team inside Microsoft asking the same thing of you "Please Evangelize this new thing". This in turn would give you some interesting and often absurd metrics to go after when it came to figuring out what you as an Evangelist was about to do for the year.

For example, one year I picked the metric "Grow Silverlight by 20% in the community" and committed to my manager on this. This was essentially me gaming the metrics as in truth, if others world-wide did their jobs I’d get a 20% bump in developer share simply by turning up to work – so it was a low hanging metric. I also had to pick a harder metric like find "5x Silverlight case studies" back when Silverlight was just given its name let alone had teeth around being an actual product. It was an almost impossible metric to have, and so it mean my entire year would be focused on finding or enticing someone in the community to not only adopt Silverlight but make a professional product out of it all within a fiscal year.

I look back on my Evangelism metrics and almost laugh at how easy they were compared to being a Product Manager where the stakes were now higher, but my point is Evangelism lost its way in that it has become metric focused and less on well natural Evangelism?

Product Team vs. Evangelist

image

It’s not the said Evangelists fault either – actually they are the innocent ones if you ask me – it’s really more the Product Team(s) in question fault (that and the DPE overlords). I say this, as being in a Product Team we used to set metrics for DPE to go off and fight knowing full well they’d either make them with next to no effort or there was no way in hell they could even come close to the benchmark’s we’d set for them (as we’d set the benchmarks high knowing full well our goal metric was much lower, but felt if we gave them the said metric they’d back off the pedal as soon as they hit it? – reverse psychology kind of thing).

This doesn’t sound bad if it’s a 1:1 relationship between an Evangelist and Product Team? If only that were a possibility, the reality is that an Evangelist gets this same kind of dosage from multiple product teams so in this in turn creates the inherit flaw in the overall system – as if the Evangelist is smart, it’s now a case of gaming the metrics to give them ticks in the boxes they need to in turn focus on what they originally were going to do anyway? evangelize a product they have a strong preference / interest behind?.

Confused? don’t be, but watch a TV series called "The Wire" and the above will start to make more sense, as in the end the overall internal culture within Microsoft is pretty much the same – figure out how to game the metric system(s) internally first, figure out how to do what’s actually important to you second as this will ensure you survive the mid and end of year reviews – as this is where the stupidity of the overall system really comes home to roost (read this article for a better explanation of how retarded this is).

Sponsoring an Evangelist vs. Hiring one.

image

Evangelism shouldn’t be about this? it should really be about finding individuals for a given technology set and hiring them or even sponsoring them to evangelize the said topic. Microsoft and other companies realistically shouldn’t make these individuals full time staff? if you ask me and you do simply by reading this post, Evangelist should be put on a 2xYear contract that has very basic level of metrics that are focused on gauging enthusiasm for the said technology and less on faking it. Once the 2year is up, go find others who are then interested in the next wave of technology and so on…

That’s at the subsidiary or geo-location level. The product team’s in question should then be focused on creating street evangelism at the core? in that how do you arm anyone who’s both Microsoft and non-Microsoft with both information, presentation materials and demos etc. so they can in turn evangelize on your behalf? As out of that pool you can then find really good ones to sponsor!

It’s more of a natural evolution, it gets rid of the fat cats who are given this role of a life time and lastly it insures a fresh perspective is put into a community that retains both trust and enthusiasm.

How does this relate to UX Platform?

image

Evangelism is the core of what will make WPF/Silverlight and more importantly design audiences pay attention to the future of this product. It needs to be the machine that sustains the said technology within their respective communities. It also needs to be that area of influence and advocacy as well, as having an Evangelist you can reach out to and discuss things is important – as these are the individuals who should know how to find ways to convince the Product Team(s) on how important xyz feature request or bug is!

Majority of evangelism inside Microsoft has been abandoned and is reduced to random twitter/blog conversations that in truth hold little weight. MSDN Blogs are an abundance of noise and at times Evangelists are more preoccupied nowadays at being geek-famous then they are helping others figure out why xyz product is a good/bad bet!.

Evangelism is a contact sport, individuals need to be on planes/buses etc all heading to technology events and cubicles around the country, informing a variety of decision makers of the said technology they felt passionate about – whether it’s showing Silverlight/WPF to a CIO, Creative Director, Developer, Receptionist whatever…

This fiscal year, you’re going to see most of the Evangelist focus in around 2 main products, Windows Phone 7, Windows Azure and lastly Internet Explorer 9 (with a focus on Php compete). I dare you to find an Evangelist who talks about WPF 24/7 as if it was their only metric?

Scott Out

Related Posts:

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:

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