Stepping Stone Cert

Comments: 6 Comments
Published on: March 30, 2010

A few of us have been deliberating and discussing the need for a bridge certification between the MCITP and MCM certifications from Microsoft.  This discussion was brought about due to an editorial by Steve Jones at SQLServerCentral.  As the discussion has progressed I believe there are some good ideas coming about from the discussions on how to create such a bridge.  I want to share some of that info here as well as some background on the topic.

Why is there a need?

Microsoft has two levels of certification that are of interest to many Database Professionals.  The first is the MCITP and the second is the MCM.  The MCITP is a series of exams taken from computer that are designed to test general skills related to one of the database roles and the exam topic in particular.  This certification is relatively accessible and has minimal relative cost (you pay for each exam and study materials).

The MCM is a higher achievement with considerably more cost.  The MCM is conducted via a “boot-camp” training session on the Microsoft campus for three weeks straight.  The cost is $18,500 for the three weeks alone.  Beyond those costs are all associated travel fees (lodging, food, transportation).  To be accepted into the program there is an application process and a non-refundable fee of $125.  There are exams and labs that must be passed in order to receive the certification.  There is also the time requirement of five years in the profession and be an MCITP.  Now, you do get to receive training at the hands of some MVPs such as Kimberly Tripp and Paul Randall – which could be quite an experience alone.  As you can see, this certification is designed for Senior level Database Professionals and has some high barriers to entry.

These two levels of certification create a chasm between themselves.  There is a lot of middle ground that is not covered.  Many can’t afford the MCM, and many won’t do the MCITP due to perception.  If there is something between the two that can bridge the gap, there will be change in perception from the community as well as business.  The certification in the middle needs to be able to build on the MCITP and serve as a building block for the MCM if one should desire to pursue it.  However, it should also be recognized as being able to stand on its own (which the MCITP does not) as a quality certification.

Barriers to Entry

Barriers to entry are requirements that must be met by an individual prior to being accepted.  This term is used in business and economics and denotes the difficulties a company may have when starting up in an industry.  Barriers to entry are good.  They help create competition and try to help create a perception of quality.

I believe the MCM has some high barriers for a few good reasons.  These reasons are:

  1. Prevent people from cheating the system.  Certifications have received a black eye in general due to people cheating the exams and through the use of widely available brain-dumps.
  2. Be a credible certification.  Since MS is controlling the environment of this certification, it would be difficult to cheat your way to being an MCM.  By being so difficult as well, it could garner more respect for the person having achieved it and thus instill a little more confidence in the certification system.
  3. Make the MCM prestigious.  With so much cost and so few people attaining the certification, it could become a desirable certification.
  4. In addition to those reasons for the barriers, there is the revenue that this program will generate for Microsoft as well.

Bridging the Gap

How does a company that sponsors a certification bridge a gap such as exists for Microsoft with the MCM and MCITP?  That is the dilemma that has several people talking and particularly in the discussion forum from the editorial mentioned already.  There is a foundation of ideas that are forming into a consensus on how to handle this middle ground.  This does not however mean that all of the questions have been answered.  Nor does it mean that these ideas are to be adopted by Microsoft or even PASS.  Here is a review of the foundation being proposed.

  1. MCITP Certified
  2. Lab / Project
  3. Review Board
  4. Presentation
  5. Exams
  6. Time in Service

This bridge would be akin to the Journeyman in the trades.  The idea being that the MCITP is more like an apprenticeship.  You have hopefully learned a little bit from the exams and studying performed to gain that certification.  The next step is to journey out as an apprentice and establish yourself in the industry.  Somebody signs off that you are able to perform the duties that to which you ascribe.  A journeyman can do the work without supervision and has the endorsement of his peers.  This is a formalized approval.  Does one need to be certified to be able to do the job?  NO.  This is a path for those that desire to be certified.  Will this path lend more credence to the person doing the job?  Potentially.  Since this certification is not in a bubble there will be some gaming of the system.  The amount of gaming and cheating will be considerably less.

MCITP Certified

Being certified at the base level should be a pre-requisite.  This requirement holds for the MCM and shows some level of competence and intent toward certification and the DBMS.

Lab / Project

The conducting of a hands on exercise is essential to testing the ability of the candidate.  Being able to perform a given task under pressure is what we do as professionals.  This will help to divulge the mettle of the candidate as well as demonstrate the skill set.  The administration of this exercise is one yet to be flushed out.  There needs to be a large pool of exercises for this to help prevent any brain-dumping of content or cheating of the system.


Senior level professionals in the community need to be able to communicate effectively.  This presentation can be a topic of choosing by the candidate.  The presentation could be scored by the attendees to provide additional feedback for the Review Board.  A benefit of requiring this is to help build a Presenter pool for the various events in the community.  This also helps to provide additional material for review on how the candidate handled the task being presented and knowledge base.

Review Board

A panel of peers needs to review each and every applicant.  This will serve multiple purposes.  The primary purpose is to reduce the likelihood that somebody has gamed the system.  The board themselves should be Certified and well respected individuals in the SQL Community.  A nice example would be to have MVPs sign up for this.  A secondary benefit of this is that this review could serve as the application for the MCM.  The review will entail a review of a presentation (at minimum) the candidate has done, the lab / project, Exam Scores and potentially be an interview directly with the candidate.

Time in Service

This is the most controversial requirement for the certification.  If one is pursuing the MCM, then one must wait five years anyway.  If not then the candidate may or may not be intrigued by the need to wait for 2 years.  I feel that time in service gives more credence to the certification.  From Boy Scouts up through employment there are several time in service stipulations that one must meet in order to attain the goal.  I don’t think two years as a Database professional is a hard requirement (especially for those that have been working in the arena for several years already).  This time in service can serve as a fleshing out period.  I think there can be exceptions built in for this requirement.


This is pretty straight forward.  There are exams required for the MCITP, there need to be exams for this middle cert.  The exams need to entail greater difficulty and possibly be more specific skill-set.  This is an area for greater discussion.


These requirements are designed in an effort to build the community and bring a higher level of credence to the profession.  In no way should these be considered as an effort to esteem ourselves as the elite.  There are plenty of details to be discussed.  This is a worthwhile cause to champion and try to get PASS and MS on board with it.  Currently we call this certification the MCJ (JourneyMan).  I think that a renaming of the MCITP is also in order to help delineate the path from beginner to master.  MCITA would suffice for me.  Maybe the MCJ should also be more along the lines of MCITJ.  However, the MCJ works in coordination with the MCM as far as naming convention goes.

FizzBuzz Revisited

Categories: News, Professional, Scripts
Tags: ,
Comments: No Comments
Published on: March 30, 2010

I had bigger plans for this series than what has transpired. I think that is a testament as to how things can rapidly change or other events can change your plans. The first thing that changed my plans for this series was the advent of a competition on centered around the Fizzbuzz question.  Then came along the TSQL Tuesday concerning IO.  My submission for that meme involved some Fizzbuzz examples to help demonstrate the point.  Now the series I had planned was left in a nebulous.  Well this will be an attempt to try and resurrect it and terminate it all with this article.

The IO article helps to fill a gap left from the first article.  In that article I discussed the creation of a numbers table but did not explore the cost of creating that numbers table in order to solve the FizzBuzz question.  If you already have the numbers table then the cost is minimized and spread out across all solutions involved in the use of that numbers table.  However, if you do not have that table then there is significant IO cost in the creation of that table.  That cost increases as the size of the numbers table increases.  As demonstrated by the IO article, the cost for a large numbers table was the eventual filling of my hard drive.  That is certainly not something you would want to be doing on a production system.

So what is an alternative method to this problem while not creating such an IO cost?  My final solution was the result of several trials and tweaking.  Some of them were just for fun, and some were to test performance gains.  I had thought of evaluating the evolution of those trials.  I decided against that and will just go straight to the final two trials.

Version 1

[codesyntax lang=”tsql”]


This solution was labeled as one of my “for fun” tweaks.  However, there was a good reason for this version.  What if I only wanted to know if a specific value was a multiple of 3 or 5 or both?  This gave me the @WhatNum idea to compare and check on that value.  If no number is supplied then I can query the entire range.  In other versions of this same query, I use an abs() function in the where clause on the @Limit variable.  This is another optional tweak, but I feel it should be present (though not demonstrated in the above script).  If I run this script for a specific value the query performs faster than the entire range (as expected).  If I want the entire range returned, then this query performs quite rapidly and is on par with the solutions provided in the editorial comments and the ask answers (ask link provided, editorial link is referenced in the first article in the series).

Version II

[codesyntax lang=”tsql”]


The major speaking points on this version is the final CTE being the Select and FizzBuzz assignment.  In many solutions this is outside of the CTE.  This method performs slightly faster in some cases, and for the most part is on par with the other solutions.


The biggest selling point of both of these solutions is the speed and IO cost.  Neither of them use DISK IO.  That helps speed both of the queries up substantially.

The better thing about this exercise has been the ingenuity that the community has shown.  There are some amazing responses.  Some responses have used pivot tables, others the cascading CTE method, and yet another used a View (which actually may be the fastest).  I learned a great many things from some of the solutions.  Go check out those solutions and discussions – they are worth it.

page 1 of 1

March 2010
« Feb   Apr »

Welcome , today is Tuesday, June 2, 2020