The other day I had the chance to peruse the work of another developer, a Microsoft MVP. The code was less than impressive. To be frank, it stunk, but it stunk in a strange way. It had a weird combination of advanced technique and rank naiveté. There was separation of concerns, but it was much more convoluted than it needed to be. The work that the code performed was relatively trivial, but it was hidden behind a bag of patterns and the structure of the classes made finding the code that did the real work an exercise in spelunking.
I mentioned it to a friend of mine, and he shared his story about a hiring interview with an MVP carrying job candidate. The story was eerily similar. The candidate was well versed with the latest and greatest development methodologies, but seemed to lack a grasp of writing a simple “fizz-buzz”. To make matters worse, part-way through the interview the candidate starting listing their “requirements”, which conferences they’d be attending, which technologies they would use, etc.
I was flabbergasted. Granted, my friend was glad the candidate was so forthcoming with his lack of professionalism. It helped make his decision not to hire the guy much easier. After I thought about it a little bit more, I realized that the fault wasn’t totally with the MVPs in question. All of us share a little of the blame.
What’s All This MVP Stuff?
Microsoft’s Most Valuable Professional program recognizes professionals who share their knowledge of MS products with others. It’s a great deal for Microsoft and it’s a pretty good deal for the MVPs. Microsoft gets free technical support for their products and the MVPs get public recognition of their contributions to the community at large. The problem with the MVP program is what it doesn’t recognize. The MVP program does not recognize technical ability. It’s possible to be awarded an MVP in a development related area and not really be able to write code.
If you want an MVP award , you blog, you answer questions on the Microsoft forums and on StackOverflow. You talk a lot. Mind you, there’s nothing wrong with doing any of those things and a lot of reasons why we should encourage the behavior. Heck, I do those things. But you can do all of that without ever writing code beyond the level of a “hello world” presentation demo. You can do all of those things without knowing how to do anything but use a search engine, cut and paste and tirelessly self-promote.
If you compare the Microsoft and the Open Source communities, there is a striking contrast. If you want attention in the open source community you write code and you release some projects. You do stuff. If you want attention in the Microsoft community you talk.
How Is This My Fault?
Even with all of that, there isn’t really a problem with the MVP program. It’s working precisely the way Microsoft wants and needs it to. Microsoft gets free advertisement for its products and a never ending supply of people to offer handholding for users of its platforms. There’s really no reason for Microsoft to change things on their end, although it would be nice if Microsoft distinctly recognized developers that actually released more than hot air.
What we really need to fix are our expectations and perceptions of those that have been awarded an MVP. They might be great developers; I know some that are. They might be completely clueless; there are obviously a few in this category as well. The fact that a person has an MVP award doesn’t really tell us what kind of developer they are. The only thing we can know for sure is that they know how to answer questions on the internet and (depending on the MVP) give a pretty good semi-technical talk. Beyond that, we need to evaluate MVPs just as we would any other developer.