I don’t know how many shops I’ve seen, interviewed with, or even worked at that wave the “We’re a Microsoft Gold Partner” geek flag waved around as if without knowing the place, we automatically are supposed to assume the shop is a credible development shop. Most of these are waved by non-technical managers that know nothing about quality code. This means nothing to me in terms of credibility & quality, and it’s clearly just a marketing term that only benefits Microsoft and somehow makes employers think they should be proud that they are a Gold Partner. It’s like giving an office worker a Certificate because they passed the HTML For Dummies course to hang on their cubes at work.
I have seen a couple shops tell me this and then when getting in, I’ve seen some of the worst Spaghetti code ever in my career. That’s when “Gold Partner” becomes a joke. In some of these shops that claim they are Gold Partners, I see 100 line methods, tight coupling between data layers and presentation layers, 500 line stored procs, and the list goes on. These shops make the Gold Partner Program no more than a marketing tool for Microsoft. Now, some shops that are Gold Partners are very good. But you cannot infer that just because one shop has one, that they code quality applications.
This program should be something that you can rely on.
Microsoft should actually have a department for this program that actually sits down and analyze 3-4 business application’s architecture from the applicants and rate them on the overall quality of code as part of the application process and qualification requirements. If they do not meet 80% of the following criteria, they do NOT get to be in
Here is some of that Criteria:
a) Are the .NET apps a procedure approach to using the .NET framework, or do they contain truly Object Oriented type of code in them?
- Obviously they should truly be Object Oriented in nature, not some classic ASP spaghetti type style code job inside a .NET solution. What I mean is are there signs of any Polymorphism, Encapsulation, Inheritance, etc. or is it a complete pile?
b) If Object Oriented, are these 3-4 apps being reviewed generally showing some sort of level of separation of concerns and at least a business layer in between for those applications that really make sense and should have reuse in business logic instead of tight coupling between just a Data Layer & Presentation Layer in the way it’s currently set up
c) Quality of code overall. For example: are the class member methods discrete units of work? Or are they gigantic beasts that take a full day to even debug
d) Is the code-behind on the web based applications a pile of mess or are they coded with fairly clean code and referencing methods from a business layer?
e) Are the procs behind these applications clean? Or are they 500 line piles of you know what?
The partner program should not be based on how many people have certs in your shop. But should rate some of the the actual code in a shop by sampling at least 3-4 applications and giving them a very thorough analysis and rating by Microsoft themselves using industry best standards & practices to base the ratings upon.
Then we can say “Gold Partner” actually means something solid in development shops and they carry some weight.
Furthermore, lets say that an applicant fell short a bit in the first list…say they only made 75%.
Then the next criteria could be some things that could bring them back up to the 80%:
a) They use unit tests in their environment. Hey may not be the best of the best OOP, but hey, they are unit testing at least…give them back 2%
b) They have continuous integration in place and actually works pretty well. Give them another 2%
This is just my opinion, rant, or whatever you want to call it but it’s true and I’m sure a lot of people would agree to it. What do you think?
Print | posted on Tuesday, October 14, 2008 1:11 AM