Hey Scott, WPF isn’t dead he just said so..

I was forwarded a blog post today from a .NET dev – Juan M. Medina. It was a great insight into the cause/effects and now response to some of my blog posts. It however left me a little frustrated mainly around the main issue of the declaration of WPF is dead being lost in translation.

To clarify, if I may.

image

Juan walked up to Tim Heuer, Pete Brown and Scott Guthrie and asked them flat out whether or not WPF is dying – is that ex-Employee smoking crack or what? is the underlying point (but Juan is much politer). The response is as expected, in that the staff will usually work hard to show one and all a hint at the technology roadmap, partner success and internal bets being placed on the said product. It’s perfectly fine for them to do this as should either one of these guys deviate in the slightest well it’s both political and career suicide to even think about declaring the said UX platform dormant / aka dead.

It’s not about whether or not they are actively working on the said product(s), putting 3x engineers on a dormant product is still considered progress. The total number of engineers and features being worked on isn’t enough to declare a product alive. It needs more collective effort around it to really drive it home.

Google for example allocated some serious engineering effort behind Google Wave, its dead today. It had a roadmap, it had engineers, it had Google saying similar commitment speeches and it had a descent amount of initial launch public exposure. It’s dead, what happened?

The answer is similar to where I see WPF today, it’s got a bunch of engineers high-fiving one another around what’s coming up next, how cool it is and lastly what people have done with it only when asked.

WPF has no marketing. I’ve covered this in an early post, but that’s the initial point of the "WPF is Dead" and why it’s got both a small amount of engineers as well as maybe one or two warm bodies actively evangelizing and marketing it at best – that’s assuming if you count Rob Relyea and Pete Brown as its entire marketing force.

In not having a collective Evangelism, Marketing and Engineering team working alongside one another, it pretty much becomes this Google Wave like science project. In that you get a list of random features that most people may look at and go "Well I guess, the other guys in the WPF community wanted that, not for me though" that really don’t sync up to the overall collective practical usage today for the said technology. You basically have 200+ engineers all working on features that probably have zero to no impact worldwide with the collective majority who actively use the said technology (who says I’m right or wrong on that?)

Thus, it’s a corpse.

image

In order to be successful with a product like WPF, you need to really sit down and analyze the overall feature matrix and think about how it’s being used, where its being used, what the maturity levels are for developers, what features are fun vs. boring, what features are needed for xyz verticals, what features are needed in order to prepare for the next 2 releases and so on..

For example, you look at a feature and you apply something like the following to it:

  • Is this feature completely new to the industry (Deep Zoom, Pivot Viewer etc).
  • Does this feature have full tooling support?
  • Does this feature have learning materials ready at launch?
  • Is this feature fully documented?
  • Has this feature had breaking changes prior to RTM?
  • Does this feature require Level 300+ developer skill maturity in order to comprehend.
  • Does this feature rely on other features?
  • Is this feature a market differentiator?
  • Is this feature a highlight feature (ie RTM talking point)
  • What partners have used this feature and specifically in which demo / examples
  • How often will this feature be used compared to the others?
  • etc..

You ask a plethora of these questions as you need to market, manage and evangelize this feature as if it were the most important piece of the said product. It doesn’t have to be, but it gets your entire product positioned in a way that reduces friction to all that need to comprehend and ask what value the said feature is about to provide?

Features aren’t just bullet points in a blog post.

It’s not about saying "I just committed 200+ engineers and I now have the following shopping list of items ready for you" it’s more about how the said shopping list fixes or addresses real world scenarios – frame the problem then show how the feature solved it.

Collectively all features need some kind of airplay, but you also need to filter out the easy from the hard and focus on spending effort via Evangelism , Blog Posts, Tutorial Videos (level 100, 200, 300 etc) and so on reducing the friction associated with the hard ones. Use the easy features simple ice breakers only, but double down on the hard ones as much as possible.

It doesn’t stop there, you also need to go through and clean up the internet as much as possible around some of the beta / breaking changes for any features that you had prior to release as sadly, transparency comes at a price – confusion. Legacy blog posts need updating as they’ve shifted from just being a moment on an RSS Horizon to being part of your collective documentation world-wide. You need to track some of this and get ahead of it as much as possible.

Last but most important of all, you need to take all this effort and market the crap out of it. You need to spend close to 2 years minimum rinse and repeating the value of WPF over and over. It needs to be broadcasted and when you think you are done, start again.

Coco Cola is a brand the world knows at first sight, they don’t just sit back and go "Well coke is pretty much well known now, it’s a mature brand! – job well done all!" – instead you are constantly reminded of the beverage and how refreshing it’s going to make you feel whenever you get thirsty. They do this as when the time comes and when you face a fridge inside a supermarket, you make a decision within 7 seconds on whether or not you believe them. The constant reminding is done for a reason as its about ensuring coke is your default choice.

Microsoft have yet to figure this out across all of its products. Its why there is a huge contrast between Microsoft and Adobe, Apple and even Google. Microsoft floods the market with "look at me" quick, fast, dirty and uncalculated marketing principles that often change every fiscal.

The others don’t, they typically keep a steady course and iterate on failure and break success. Rinse & Repeat. Apple are the most calculated of all, everything they do is done in a matter that has quality bands tightly controlled.

This week alone you’ve seen two separate fumbles at basic product positioning and press releases from an executive through to a simple press release (Bing 3D maps deprecation announcement was a mess).

To wrap this corpse  up..

My end point is this, walking up to an Executive inside Microsoft and flat out asking "Is that product dead or what?" is not going to get you an accurate answer. Save your question, instead ask

  • What is the marketing strategy for WPF?,
  • What’s the feature catalogue look like beyond what I’ve already seen so far?
  • How often do you plan to ship?
  • Is there Evangelists in my subsidiary that are going to help me market and seed a community around this product?
  • Who are the community leads at Microsoft who can help me with further questions for this product?
  • How do I train developers & designers to prepare for WPF?
  • How does WPF and Silverlight work with one another with the new features?
  • What can I use to convince my work to adopt this technology?
  • How does WPF work with my vertical (finance, health, mining etc)
  • How does the case study you told me about relate to the following features?
  • etc

You keep hammering away at the hard questions around the future sustainability of WPF beyond a few random stats that really don’t give you an accurate picture – eg.. 200+ engineers on WPF/SL? what does that mean? is that 100 engineers on WPF and 100 engineers on Silverlight? do they even need 200? is 200 enough..should there be more? what’s that mean?

Is WPF dead? yeah it is do you know why? because someone forgot to tell us all it’s not.

Related Posts:

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

image

It looks bad, I mean it really just looks bad. The President of Server & Tools in PDC just came out and pretty much implied that the race between HTML5 vs. Silverlight internally is over. The winner by way of Presidential nominee is HTML5.

It’s easy to assume that maybe Mary Jo got it wrong, that maybe she took some journalistic spin to the overall story and tricked BobMu into saying things he didn’t want to (it’s what Journalists tend to do sometimes). Think again, Mary Jo doesn’t play that game and its exactly why she gets these types of interviews in Microsoft, so why start now?

It’s also easy to assume that maybe BobMu is just some empty jar head executive who says a few buzz words here and there? someone who typically isn’t informed of the inner workings of one out of many products that fall within his portfolio? sorry, that’s not true either. Each quarter when I was in the team, we’d have what we call "RTB’s" – Reviews of the Business. It’s that point in time where the team would put together a PowerPoint deck that covered everything from roadmaps through to metrics associated with the said product. BobMu was not only informed, he’d make decisions that we’d all react to post such meeting. He was informed and unless he was heavily medicated, he meant what he said.

What’s the story then?

It’s not like I didn’t warn all about this turn of events a few weeks ago, (read part one of this post). The story isn’t whether Silverlight is or isn’t dead. I don’t think Microsoft could even kill off Silverlight to make way for HTML5 just yet (HTML5 is simply still a science project in the market). I think what we are really seeing is a company as large as Microsoft in chaos.

You’ve got a President doing PR 101 mistakes, You’ve got a marketing team that double down on a single product instead of their entire UX Platform portfolio, you’ve got the Internet Explorer team writing their own messaging that confuses the masses against existing messaging. You’ve got an IE9 demo at PDC that smells, tastes and looks like a previous one in MIX07 only without the word Silverlight in it? You’ve got Silverlight not making an appearance at PDC which isn’t a bad thing given MIX is really the party for Silverlight, but given market conditions – YOU SHOW UP.

Bottom line is this, the entire Server & Tools business within Microsoft is in dire need of marketing reform. The strategy coming out of Redmond is chaotic at best, the design and develop discussion has obviously changed within the belly of the beast. The problem is, they’ve kind of forgotten to inform the masses of this and we’re only just starting to see glimpses of the inner truth now – and its frightening the kids especially when its Halloween time!

I did want to dedicate this post to how Microsoft has shut down the entire "designer engagement" strategy across all divisions, but clearly this is simply a symptom of what we’re now seeing unfold online.

Microsoft is by all outward appearance shutting down its vision of the circa 2007 UX Platform, it’s now winding it back to secondary citizen in favor of the new shiny object, HTML5?

I for one reject our new HTML5 overlords.

The problem with moving Silverlight & WPF back to the end of the visibility line, is that nobody really has sat down and asked existing rich client developers what they think of this new vision? it’s a forced entry into the market mixed with a whole bunch of messaging from the Internet Explorer team that’s labeled "Trust us, we have this covered" seal of quality assurance.

The one team in which has breed so much distrust in Microsoft. It’s probably the biggest cancer within Microsoft and is the main reason why the Consent Decree exists.

The cold hard reality is that most developers actually probably don’t want to go back to Circa 2005 development with extras (i.e. JavaScript and HTML suck). The entire HTML5 strategy is basically a mess on its own as you’ve got Browser catch-up’s that still need to be done.

You’ve got issues around browser owners looking into ways of forking the HTML5 concept to suite their own agendas? You’ve got tooling coming out slowly and half baked? You’ve got a mixed reaction of what HTML5 actually means? You’ve got anxiety over whether or not JavaScript and HTML can scale? you’ve got millions of devices today that just can’t load HTML5? You’ve got at least a 2-5 year latency effect world wide of enterprise even considering HTML5 in its current form … the list just goes on.

It’s one thing to get onto a soap box and declare a true x-platform strategy like HTML5 the future? it’s one thing to say "open standards or bust" as being the mission statement of the world’s future software ecosystem.

Someone just point out where the strategy exists for moving people both willingly and unwillingly across the desktop/plug-in divide over to this new world, because if Microsoft is running this show, we’re all basically f#$%ked – I say this as right now, they couldn’t organize a virgin in a brothel to get laid (as they would be too busy fighting over which girl was the prettiest).

Silverlight vs WPF vs HTML5?

Pete Brown last week released a blog post around the future of WPF which talked about successes and hints at the future of the platform. Pete did something extremely hard in making this post come together, he went internally and asked a simple question "Where is this bus heading?" and that’s just before PDC2010 as well – big hat goes off to Pete for pulling this together, as many have tried and failed that little mission.

It’s still not enough though! – now before you grab your pitchforks and declare me a jaded hateful ex-WPF/Silverlight team member, hear me out.

The reason I say it’s not enough is that we just heard 200+ engineers are working on Silverlight/WPF and looking at the new additions to WPF, i can’t but help wonder how thinly the team are spread. There is a lot of surface area to cover inside WPF, the biggest of which is around performance and getting line of business grade features onto the table. The WPF team are reacting to the data they have and unless there is radical changes since October last year in the way they get this data, it’s still a ways off (the product usage data etc inside Microsoft is simply disconnected and a mess, features are skewed between what looks fun vs politics etc).

It’s not enough, there needs to be a consolidated marketing strategy around the product(s), there needs to be an Evangelism rhythm that maps out how this drum beat gets played out worldwide, i.e. its one thing to announce how you intend to build something – its entirely another to actually get that message to every developer you possibly can.

It also needs to connect back to Silverlight. It needs to fit in with how developers can navigate the ye olde "It Depends" response from Microsoft. The guidance Pete used was old, I know as it was something we crafted back in July last year – "Use Silverlight until you hit a wall, then go WPF" was pretty much the summary we came up with (even then I remember thinking, that’s just bullshit but what else can we say? WPF is dead? :D )

WPF also needs to connect back into HTML5? so how does the new IE9 overlords and WPF play in the same sandpit together? at what point do you separate the two? Windows 8 team have ideas on this, but I’m pretty much betting that the HTML5 story will get more air play in that pool of brilliance.

Summary.

image

Lots has been said in the past month, bottom line is this. The technology is currently a big software buffet, we have loads of options and different portions on the table to pick from. We need informative views more so than ever now, given the emerging mobility vs. desktop discussion and more importantly how all these pieces fit together.

Microsoft lacks the marketing muscle right now to answer these questions, they simply just don’t have the maturity needed to lead this vision forward. You’ve got pretty much majority of the executive branch abandoning ship and the competitors they used to just sweep the legs out from under are basically starting to get their act together.

Adobe for one has its act together finally, I’ve watched this company for years fumble around in the dark around this entire discussion. At MAX 2010, they not only connected it together but they did so in a way that is slow, simple and has the appearance of saturation + ubiquity.

Microsoft’s shows up and starts waving its hands in the air about Internet Explorer 9, Azure and how Silverlight is now winding down – not to mention zero WPF discussion (except for Rob Relyea – owner of WPF Team – picking up the Developer Platform & Evangelism divisions dropped ball and doing a PDC session on WPF).

Bob Muglia needs to really take a hard look at his organization tree and start putting together a plan of reform. This isn’t a technology problem anymore, it’s a marketing one pure and simple.

As for Silverlight Marketing Team getting ahead of the PDC2010 fall out? – “Out of Office” summarizes it all.

Related Posts:

WPF has no Product Manager.

image

WPF has a lot of potential going for it, it’s one of these products that you absolutely hate upfront when you first start on its learning curve but over time you grow to love it dearly as it unleashes a lot of creative potential within you early.

There’s been a lot of talk recently around its futures, namely by myself but also in various forums, discussion lists and so on. It’s both healthy but at the same time it’s not being heard by the right people internally within Microsoft.

WPF has a few problems to sort out, firstly there is what I call the convincing phase, in that getting people to initial embrace the latest version of .NET 4.0 is a challenge unto itself – which has next to no marketing attached. The second challenge, is the ask that folks get behind the learning curve / investment of adopting WPF instead of Silverlight for desktop based solutions. It’s a challenge because Silverlight Out of Browser has confused a little on which is best for what and where. The last but most important challenge of all is the learning curve attached to WPF, as it’s somewhat a very chaotic and noisy Google search to undertake.

Why adopt WPF?

In 2007, I was an Evangelist for Microsoft via Australia for this question. I’d probably give you some prescribed marketing spin that went something like this:

“WPF is for ultimate experience, Silverlight is for great experiences and lastly AJAX/HTML is for good experiences”

I’d then throw up a slide and show you the three pillars of Microsoft UX Platform and how we as a company are investing big into the futures of developer & designer productivity. Its obvious that was a lie, and apologies to any who bought it – as even I bought it.

The reality behind why adopt WPF is simple, you have full control over your user experience on a Windows based PC (both Windows XP  and Vista/Windows7). You have more ubiquity (70% of Windows machines today – have at least .NET 3.5 installed) than Silverlight and in many ways typically have more support around API’s then Silverlight. You have a much more engaging interop story (ie access to the quasi 3D now in WPF but should you want to go big, you can again via interop do more). You have  now a descent amount of download size as well, roughly ~40mb give or take to deploy with.

I could list a whole bunch more reasons, but the end summary is that WPF has a lot of positives attached to it today than people typically think or know?

If it’s so good, Why is WPF dying then?

I’ve thought about this question a lot since leaving the WPF/Silverlight teams. I’ve blogged about the fact I think its dead, I’ve explained many times over the reasons why there is internal politics getting in the way but ultimately what it comes back to is simply a Product Management problem. As a former Product Manager of this product, I simply wasn’t doing my job for WPF. I ignored it, it was easy to do so as Silverlight was the main star in this theater.

WPF isn’t being evangelized anymore, it has zero marketing and more importantly the development team within Microsoft are tasked with all of this as well as partner hand holding and actually development of the said product. Scott Guthrie can throw a random 200+ engineers are working on it all he likes, but ask anyone internally if I’m lying about who does what and where, and I will guarantee you the bulk of the work falls into the hands of the WPF Engineering team to do it all solo.

Point and case, Evernote this week blogged about how they abandoned WPF and went C++ instead, citing performance reasons etc. as the reason(s) why. Fair enough, but what struck me is odd was that none of the usual suspects where jumping ahead of this PR issue, in that typically you see something like this you quickly put some spin on it, reassure the masses with your said messaging framework and rinse/repeat until you get downright annoying about how good WPF is still.

Didn’t happen.

Still not convinced? take Windows 7 Launch. I remember seeing an internal memo about how the said campaign was going to work and more importantly how $300million+ in marketing budget was going to be spent convincing the world that Windows 7 is a good bet this time round. “I’m a PC” was born.

I also remember sitting in a team meeting discussing what story we would pitch for WPF/Silverlight around Windows 7? we soon learnt that Windows 7 had the same developer story as it did Windows Vista. This then resulted in the team deciding that since there was nothing new or shiny to talk about, we’d just leave it be.

This frustrated a colleague and myself. The reason being is that who said Windows Vista + WPF got traction? who said we still couldn’t use the same goals as we did back then! I mean our team even re-branded .NET logo to fit into a more up to date branding strategy.

We simply didn’t go out there and market .NET 4.0 or 3.5 along with Windows 7. We should have been hitting the usual channels, promoting how with WPF you can get blah blah potential out the door. We should have been investing heavily into adoption channels, ensuring the future of tomorrows .NET developer was embracing Windows as well as the potential for cross-platform, cross-device and cross-browser technologies.

Learn once today, Use many tomorrow – or a cheesy tag line like that should have been conjured.

Instead Silverlight is and now Wp7 are being pushed as the sole future(s) of Microsoft. It’s no wonder the Windows team aren’t on board with DevDiv, as when you take a step back and look at what they have to leverage from the developer community – then you are left with a solution that basically works in all other platforms as well as their own? the only chance you get of keeping that genie in the bottle is to bake features that are Windows Specific into place – yet this won’t bode well as that level of adjustment to an existing agnostic product won’t happen as it simply deposits large amount(s) of hate debt into the bank from developers world wide (embrace and extend is a known tactic of Microsoft that breeds distrust and disagreement)

WPF needs Product Management 101

PDC has finally got one session in its talk agenda that is focused on WPF. It took the guy in charge of WPF’s development teams to step up and do Microsoft Developer/Platform Evangelism Team(s) (DPE) job. Rob is an awesome guy and I have a deep amount of respect for his work, it just seems downright disappointing that he’s got to focus on a session talk instead of sitting in a bubble thinking up better ways to develop WPF’s future(s).

MIX and TechEd for the last 2 years has had little next to none (I can think of anyway) WPF discussions happening, essentially Microsoft is putting WPF on its ignore list.

What needs to happen is Product Management 101, there needs to be an actual WPF Product Manager dedicated to its future. At the moment that role fits under the Silverlight Team at best, and is thinly spread between Silverlight, Windows Phone 7 and any if not all Rich Platform compete issues ranging from Adobe centric through to the threat of HTML5. There is no one person really owning this problem, just a few directors appearing to.

Product Management is about protecting the brand, it’s about sitting down with partners and figuring out what features worked vs what didn’t. It’s about thinking about how your competitors are doing xyz and then coming up with ways to differentiate from them. It’s about working with community leads (corporate and street evangelists) ensuring they understand your vision for the future of the said product. It’s about crafting a marketing channel (web page, blog etc) that echoes your reasons for why it exists, where its heading and what successes and failures its had. It’s about investing in learning material on features that are rated the hardest and letting developers discover the ones on their own that are less harder (it plays into the psychology of learning, if you learn something that is a little hard but tad easy, your confidence levels rise). It’s about ensuring others are inspired by your products vision and compete with one another to create beautiful experiences that go beyond your initial baseline of expectations.

None of this exists today. It all sits in the hands of the engineering team who are doing all this and actually coding at the same time.

Scott Guthrie said there were 200+ engineers working on WPF & Silverlight. How many are working on WPF and more importantly how many people are marketing WPF & .NET 4.0 today? If its more than one, then tell me, what have they done lately?

As I seem to be the most vocal guy on the planet right now about WPF and nobody has challenged me head-on in proving me wrong?

I’ve often thought about what I’d say if someone actually asked me to move back to Microsoft Corp and take on this role? my first answer would be – I want to sit next to the development teams and I want a ring fenced budget that I spend solely on WPF, give me those and I’ll do the job again, only this time I’ll execute more precisely.

Ruby On Rails has less to work with and they’ve kicked Microsoft’s butt so badly now, that its now considered a competitive threat! do more with less I guess?

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:

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

I am a little shocked at how fast my tweets spread across the interweb this week regarding my thoughts on HTML5, Silverlight and WPF. I’m not shocked by how fast people picked it up, or the fact that a well-respected journalist like Tim Anderson was able to take these tweets and built out quite a comprehensive story around it that actually fitted to the context of my tweets – I love Tim’s work, as he is one of the few journalist online that actually has integrity.

What shocked me is how arrogant Microsoft staff was to the reaction or the sense of false belief that this was all some secret that everyone outside of Microsoft wasn’t privy to? Again, take a few tweets piece them together and a journalist was able to weave these threads into a pretty informed article or two around it all. I know Mary Jo from ZDNet has similar notes and so on.

Taking a step back understand why the information is just sitting there waiting for a spark or two to ignite it and it has to do with a number of reasons but all center around one theme – internal culture.

Inside Microsoft headquarters most will agree that the company is a very top-down driven organizations in that executives make micro level decisions on behalf of people who were hired to make these level of decisions simply because it’s a combination of politics, trust or what I commonly call “Geek Fame” (being seen to being the one in the know / seat of power). It’s a flawed system and as a result generates a lot of frustration on a variety levels to the point where gossip occurs I think in a more widespread fashion as having knowledge is power.

I draw your attention to this culture and others have as well countless amounts of times, simply to highlight at how well known the HTML5 is the future is within the company – so for Microsoft to establish a “Let’s interview and interrogate all who knew Scott that we know about” is definitely a fool’s errand and classic mistake made.

Why did I do it?

Having said all of this, here is the reason why I said the things I said. It wasn’t about grinding an axe with an executive or ex-manager here and there; it wasn’t about getting a sense of self-inflated power / geek fame it was purely because I felt this conversation needed to be had more broadly and more openly beyond internal politics within the company.

The future of .NET is an important issue that we should all have say in, and I make of point of stating why – Up until now, .NET has been a mixed bag of weird decisions driven either by Scott Guthrie’s org down or via some random fiscally focused team that wants to solve some random metric that in the end has no real sense of purpose other than to look like it’s solving a problem and less solving one.

I say this as my professional career within Microsoft has been both product management and street level evangelism and I see massive disconnects daily between what people inside corp believe to be true and what is actually occurring at the street / cubicle level – massive disconnects. I’m not filled with a sense of arrogant belief that I’m the chosen one to bring about this connection; I’ve tried and failed many times at this problem myself. I am however someone who is indifferent to pissing Microsoft off by exposing this upcoming flawed approach to technology futures to the wider community for further discussion. I’m in a position of knowledge and I could have used this to my own personal advantage. I didn’t, instead of just tipped what I knew onto twitter along with some silent blessings from folks within Microsoft – which came with a cautionary “If you do this, it will help but you will be alone and they’ll attack you from all sides once it happens”.

What did I say?

Everything I’ve said isn’t a massive shock to the core of most out there, in that its pretty well known and established that the Windows Team(s) aren’t a fan of managed code in the wild and as a result there has always been this kind of gang / faction warfare between Developer Division and the Windows Organization. As the reality is, Windows is a titan inside Microsoft given it’s the flagship money earner and as a result they kind of a have this sense of ruling power over many other teams – rainbows and all things “let’s work in harmony” PR aside, deep down that’s basically it in a nutshell.

Silverlight and WPF are something in which a lot of teams internally just aren’t fans of and has a variety of reasons attached but the main one that used to piss the Window’s teams off was that the notion that the CLR should be cross-platform is in many ways an attack point on Windows adoption – furthermore it’s pretty well known that Bill Gates himself allegedly said in a meeting regarding Silverlight as being “the fuckyou windows product” (I wasn’t in that meeting myself, but it’s a story I’ve heard told many times).

The skirmishes between these two org tree’s is pretty common and I’ve seen some of the effects first hand myself, overall though what I am seeing today is that WPF has lost the support it could have had from the start in favor of Silverlight. This in turn has put Silverlight out in front as the preferred UX option in the .NET stack but the problem with Silverlight is that it has a limited amount of features that most dev’s want and furthermore it’s still being plagued with issues around ubiquity (random stats announcements aside, it’s having trouble getting to the magic 70%).

WPF is dead

WPF however has more ubiquity than Silverlight today, it’s got approx. 70%+ ubiquity in Windows based machines and furthermore it’s gotten deeper traction when it comes to Independent Software Vendors (ISV’s) so it presents quite a complex problem in around investment and it’s overall future.

On one hand, it’s pretty widely known within the company that WPF has been ear marked for death for quite some time and had it not had such prolific ubiquity or ISV’s that build software used by many on it (Autodesk 3DSMAX, Visual Studio, Expression etc) it would have been taken out back and shot long ago. It simply is too hard to kill, so the only way Microsoft to date knows how is to either spend majority of its focus on convincing developers that Silverlight is the better option and/or reduce the noise around WPF altogether hoping that others will pick up on the subtle tones that it’s better you don’t adopt but under the Smokey hazed veil of the a-typical response “It depends”.

WPF has no investment, it’s kept together by a skeleton crew and its evangelism / community efforts have little to no funding attached to it. It’s dead, the question now is how is the corpse going to be buried and no amount of cheer leading will change that outcome in the near future.

HTML5 is the future.

Given Silverlight is the preferred platform going forward next comes the discussion around how the web applications of today can be transformed into desktop applications of tomorrow. Rich Internet Applications is a fad, but it does present an interesting question around the role an operating system plays in both start-ups and enterprises of tomorrow – especially given the cloud is being positioned in the market as being the software of tomorrow’s future.

Plug-ins though haven’t had a great run in the past few years, given Apple’s recent boycott it simply presented an ideal opportunity for the Windows team to come out from within their respective development caves to announce that maybe, just maybe they can regain some lost footing in the application development space by meeting HTML5 half-way.

What if, you could take JavaScript and make it faster and easier to develop against whilst at the same time leveraging a basic UX language like HTML5/CSS and in turn create desktop applications? It can be done and if you were to bake in specific API’s within Internet Explorer itself, it can also provide you capabilities to ensure that Windows is a chosen platform of the future especially given it has proven time and time again that it can resell itself in rapid succession (ie: see Windows 7 sales).

You get ubiquity, you get millions more developers beyond your 6million+ saturation levels and lastly you can potentially generate much easier sales beyond what you have today around tooling.

It sounds really good on paper but it’s filled with flaws, irresponsibility and had this been strategic play vs. tactical it could be great. The reality is, Microsoft has a limited vision when it comes to big bets and rarely does it go beyond 1 or 2 fiscal years.

I’m not being bitter or venom filled in my response here, I’m just highlighting what others have said and have seen (including myself) in around where this is all heading.

If you have ever been inside Microsoft planning meetings for products, you will notice a common thread and that is no real strategy is in place its very tactical most of the time – agility is good, but where are you heading tomorrow is the question that often gets ignored or left unanswered.

Knowing this, knowing the culture and behavior models within the company I simply look at this overall discussion and simply feel the need to speak up and say “hey, this sux, because it will impact a generation of developers down the road and you are very dangerous now Microsoft, you really need to slow down a bit and think for a change”.

HTML5 and Silverlight can’t co-exist within the company and no matter how many blog posts on “It depends” you produce, customers want answers that are direct and to the point – even if they don’t agree with you, but knowing where you stand is important.

I’m simply about highlighting the disconnect here and if the Windows 8 / IE teams of today think that Silverlight / WPF is something they can deprecate because they dislike people in DevDiv or its current model then think again, as this is one of those rare moments in time where you have a hung jury in terms of which of the two is really the best bet.

Summary

Microsoft executives can call for heads on who leaked what all they like, they won’t get an accurate answer to these questions here as in the end everybody knows about the on goings of Windows 8 teams future plans, the reason being is the staff below the executives are frustrated and in turn staff are looking for ways to express this frustration beyond internal discussion lists.

After posting my tweets, I’ve gotten more inside information that I’ve ever gotten from staff anonymously of course.

If Microsoft truly wants to beat their competitors and raise an army of happy developers across the globe, they need to stop celebrating mediocrity within, reduce the churn of having top-down politics and lastly stick behind a product through the good and bad times whilst also keeping their eye on the ball beyond 1x fiscal year.

Evangelism isn’t working as it once used to, the community/customers are confused daily in around what’s new inside Microsoft and all they really want from the company is some straight answers that don’t involve the words “It Depends”.

This in turn comes back to the various incentive programs within Microsoft as once you have a large number of over-achievers / smart people being given skewed metrics they in turn game the system for either career power or money? This is how the machine works internally but externally its exactly why you have programs that only work a fiscal year and lastly why there is such a vast amount of rapid succession in product releases that really don’t appear to solve problems? If anything in turn create more.

The question I put to the VP/CVP’s within the company is this – Why do you think my tweets got such large amount of attention? Is because customers are still confused or is it a case of them searching for answers that aren’t as obvious. Rather than look for folks to punish internally for my tweets you should really take stock of why it occurred, how it occurred and what’s going to happen next.

Times up Microsoft, you really need to think long and hard about what it is you’re doing for the future of .NET that is beyond a fiscal year or tactical playbook. Really do a long hard review of the business and if Microsoft thinks its marketing consists of a blog post on Scott Guthrie’s blog? Then there is a problem beyond what some ex-employee once said on twitter.

I’m not a disgruntled employee, I’m just a confused and frustrated customer who has high hopes for the company’s future.

Related Posts:

Microsoft: Stop the shiny object syndrome.

image

It’s soon time for yet another product roll out, you’re in the marketing team and faced with a urgent issue – we need example demos to excite the developer base?. Like most other Product Managers you look for the nearest and latest vendor, drop a few hundred thousand in their laps and say the words “Can you make it WoW” and then proceed to wait.

The agency at times will come back with a result that’s either really fantastic or really short on execution – in my exp I’ve noticed more of the later. You then take that said demo, slap on the Microsoft branding on it then send it out into the wild as your own – don’t ask, don’t tell is your response on “how”.

Those of you who kind of know how the behind the scenes works on these kind of things are ok with it, as its part of the machine in which a market gets seeded with the said product. Those of you who look at the new shiny toy on offer are excited and are waiting for the final result. Waiting… waiting…and more waiting but it doesn’t often come.

You probably didn’t get the meme on why end of year reviews come internally come and go which in turn means that all work created in the first fiscal cannot be re-echoed in the second fiscal – so yes, the cool little agency built concept gets thrown out with the previous fiscals trash.

This is how Microsoft markets its products daily ranging from websites, applications through to random programs that are meant to simplify your world into a few bullet points or less.

The reality is this, it gets to a point where you simply just roll your eyes at every new announcement and essentially approach it with an element of contempt or cynicism. To be fair, you’re suffering from the old “fool me once, shame on you; fool me twice shame on me” effect.

Microsoft really needs to knock it off, its getting somewhat annoying for the customer base. At first I just ignored this overall effect as well I was like many part of the said machine. Now being on the outside of Microsoft and hanging out with the “customers” and “developers” I can see the negative effects it has on the perception of Microsoft today first hand.

I almost want to grab Steve Ballmer and make him sit down in frontline cubicles incognito – like that show where boss’s go undercover in their companies – and get him to see the negative impacts these poorly executed marketing strategies are having.

Disagree? how about this, what if someone were to create a timeline of all the new example apps and promises Microsoft has made in the last 5 years. Then if we were to look at the ones that have sustained beyond a fiscal year, how many do you think would be left?

Microsoft needs to re-focus, re-energize and re-think their current strategies as I think its getting to the point now where there is more noise less signal. I should know as I make a tidy profit right now decoding Microsoft to customers and once they get over the initial shock comes anger then acceptance.

example:

Customer:
“Why didn’t the team do xyz”

Me:
“Because the other team in the org didn’t like it so they had to work around the said team. It’s not an external factor, just an internal political thing”

Customer:
“but i loved it!”

Me:
“Yeah, it was a good idea, anyway..”

Think I’m wrong? ask Microsoft how its going with the design audience discussions? Ask the Windows team what they think of WPF / Silverlight and how HTML5 will play a role? you’ll be quite surprised at the answers of these two questions.

I call this “the shiny object syndrome” (ie once the shine leaves or it gets boring, you’re onto the next one and so on like its seasonal fashion)

Related Posts:

Project Salvaging is Microsprinting

Microsprinter

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

Answer is Microsprinting.

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

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

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

The List.

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

The wireframes aren’t the spec.

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

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

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

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

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

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

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

Tough decisions but necessary ones.

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

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

Don’t shoot the project manager.

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

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

Learn from your mistake.

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

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

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

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

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

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

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

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

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

Embrace MVVM.

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

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

Related Posts:

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