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.
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.
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?
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?
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.