Friday, 19 November 2010

Cargo Cult Control -> The Microsoft Marketing Machine

As I have been blessed with a microsoft tagged comment to my previous post ( I feel I should respond to Pete Browns carefully worded critique. I welcome opinions other than mine and would like to encourage anyone who feels moved enough to leave a comment on these pages to do so. (Just make sure you read the bi-line of my blog first so you know what to expect)

Pete Brown - Microsoft Community PM WPF/Silverlight wrote...
"The title of this is a bit misleading. As a reader, I thought this would be about MVVM with perhaps some good alternatives presented, but really your issue is XAML and WPF itself."

This seems to be a common theme throughout the industry. It is expected that if you write about development topics you must present it akin to a research paper. You need examples, facts, figures and a clearly presented alternatives. 

It irks me that this is the case and is simply another example of cargo cult behaviour. Readers eager to jump to a new 'improved' tech religion at the press of a key. All along hoping they can achieve a higher level of enlightenment and wow their peers and perhaps one day reach to the skies themselves.

The alternatives I present are not in the words I write, but instead in the freedom they aspire too. The industry needs to open its mind to the possibility that maybe they are all caught up in an endless spiral of hype and company positioning. 

Ask yourself this question:

"What is the point of software development?"      
(before you answer - Try and word it as if you are talking to an isolated tribe in the south pacific) 

Pete continues...
"FTR, I really do like the XAML model. That's why I joined Microsoft.
In WPF and Silverlight development, you should use *some* architectural pattern. I don't personally care what it is, but IMHO it should leverage binding. Many of the features in the platforms are easier to use with binding."

Pete obviously likes his XAML, and points out I seem more unhappy with WPF and XAML than MVVM. The simple reason for this is MVVM is the bastard son of XAML, without XAML it wouldn't even exist. So I am just going to the source of the problem.

As for the statement "you should use *some* architectural pattern". 
There is an alternative anti pattern I use in all my apps:

 "The Common Sense Anti Pattern" or TCSAP as it is commonly known.

Pete tells it like it is...
"MVVM happens to be a leading pattern. However, many people throw a lot of extra complexity into the definition of MVVM, burdening it with things that really are optional and confusing the community in the process.
Pete Brown
Microsoft Community PM WPF/Silverlight"

So why is MVVM a leading pattern if it confuses the community? Its not because it just happened to be in the bar one day when the talent scouts popped in for a beer and decided to give MVVM it's big break. 

Its all down to the WPF marketing machine needing a hook to feed the fanboy culture. This hook then drives the cargo cult in the direction Microsoft  requires. A purely invented reason to get these fan boys excited and start talking about WPF again. 

Any negative press that is hurting the brand (such as this blog) must be "managed" or the sky will fall in.
In the end Its a business, so winning is simply about getting more people to use this set of tools over another set, the goal of delivering better software is a minor concern. 
Market share is king.

Despite all this, they all know good developers will always deliver good software no matter what tools, patterns or methodologies try to get in the way. This is because good developers use anti patterns like TCSAP extensively.

Finally for those who are waiting for the answer to my question above:

"It's to make money, plain and simple."