
Evolutions Conference: SharePoint & Netduino
Over here in the skunk works division of our company... we've been busy the past few months working on some prototypes that will allow us to integrate physical data with the usefulness of SharePoint.
We're unveiling a portion of our efforts at the SharePoint Evolutions Conference 2013 in London next week. You've heard me say this before - this conference rocks. I love this conference for many reasons but the one reason that sticks out in my mind is the simple fact that I spend a lot time creating new content. This year was no different! The fact we got to use soldering irons to put a demo together made this the most exciting presentation build...
If you are attending the conference next week, swing by my session and check out the evolution of business data collection and management...
Title: Remote monitoring with SharePoint 2013 and making it smart!
Session: COM710 from 1500-1600 in the Rutherford room
This should be a fun session with demos, hardware with blinky lights, and hopefully some good discussion!
-Maurice

Reviewing the MSFT certification overhaul
Certifications. Need it? Want it? Worth it?
Those are common questions that I hear from customers and the folks on the front line. The answer in the past was often times buried in the intricacies of perceived value but for a lot of folks it comes down to the simple process of evaluating talent. Either you’re selling talent or your trying to acquire talent. Certifications are intended to provide a measurement stick. It’s like looking at a resume and figuring out if the applicant can even spell Sharepoint.
In the SharePoint space, though, the standard certifications have traditionally been too easy to obtain and thus the Worth portion of the equation was often times devalued due to the ease. Microsoft has realized that they needed to put the certify back into the certification process. Today, we’ll discuss the changes that have been made to Microsoft’s certification stack. Your answers to Need, Want, Worth will might change. Hopefully, you’ll start to see the promise of the new system.
But first, let’s take a look back in time… Starting with the 2003 SharePoint certifications, and all the way through 2010, the “core” certifications for SharePoint always involved tests that centered on admin and developer topics. Then those topics were split into a “beginner” and “advanced” sections. The model was built around an arguably sound reasoning: some people are less experienced and then grow their talents. However, there was a key problem with those tests – they really didn’t measure your ability. They measured your capability to take a test. In a nutshell, the tests didn’t validate your knowledge or experience. Put differently - If administrators walk into a developer test, having never written a single line of code, and pass the test… is that a good developer test?
Unfortunately, this gap between theoretical and actual validation caused a lot of problems. If it was too easy to get a certification, then folks that relied on certifications to measure experience were basically up the creek.
Knowing there was a serious problem in this space, Microsoft introduced the Master’s level certification for SharePoint in early 2009. The Master’s certification was designed to validate a candidate as having actually used the product in real-life scenarios in addition to having completed very rigorous training and testing regimen. It was designed to be tough – you had complete all the underlying SharePoint exams for both admin and dev (ok, that part was easy), then submit a resume outlining your body of work in the SharePoint space, then if selected you would have to navigate a phone interview before final acceptance into the program, take a 3 week course, and cap it all off by taking a hands-on qualifying lab and written test. The Master’s program was without a doubt the hardest certification to obtain. The Master’s program was designed to provide the market place with proven experts within SharePoint.
However, there was still one core problem… the program when looked at as a whole was imbalanced. The underlying exams were too easy and the Master’s program, being the next jump up, was too almost too deep for most people. There was no in between. We needed an in-between. It was like going from grade school to graduate school in one leap. The changed introduced by Microsoft in the last half of 2012 have been designed to update the process. We know have a defined path of increasing difficulty that is better tied to the components of the platform *and* allows candidates to grow their experience at their pace.
We now have the opportunity from grade school to high school to undergrad and beyond. First, let’s take a look at what it takes to become the Certified Solutions Master. The program requirements are available at http://www.microsoft.com/learning/en/us/mcsm-sharepoint-certification.aspx. Digging deeper we find that administrator and developer certifications are truly geared toward testing your knowledge of the technologies (see also http://www.microsoft.com/learning/en/us/certification-overview.aspx).
A quick read reveals a few key changes:
SharePoint certification is no longer focused solely on SharePoint
I love to tell folks that SharePoint is an ecosystem. If you treat as an application, you’ll fail. SharePoint has many components, all of which have different characteristics. Certification should be no different. Both the administrator and developer tracks now incorporate facets that live outside of SharePoint. This makes a ton of sense. I can’t be an administrator of a SharePoint farm without understanding the operating system, active directory, etc. and likewise, I can’t be a good developer without understanding other common development technologies and techniques that live outside of SharePoint.
Commonalities make it easier to grow and cultivate your experience
SharePoint certification now relies on tests that are validated, refined, and used by other segments of the technology stack. Think about this way, do you want SharePoint testing you on how to be server administrator or would you rather have the Windows team test you? Also, by leveraging the courseware in other technologies, a candidate has the opportunity to spend time in other areas without worrying about digging themselves into a hole.
Courseware improvements reestablish the value of certification
From the Master’s perspective, because the course is now spread out across the different segments of the platform, the SharePoint certification team can focus on teaching rather than trying to go through a laborious process involving interviews and resumes. The MCSM certification pre-requisites ensure the candidates actually fit the bill of a Master’s candidate.
Keep on learning
Digging deeper into the certification changes, you’ll also find that certifications are no longer static. This means that certifications will expire unless you go back and recertify. At first, I didn’t like this idea because it felt like a forced learning process. However, it makes sense. Technologies change and the platforms are ever evolving. The tests themselves will change. This is brilliant as complex platforms such as SharePoint will be incorporate field experience and other improvements into the tests. As SharePoint grows, the test will improve and the *next* time you have to take a SharePoint exam, the student will be able to validate new skillsets. Put differently – if you want to keep the shiny little badge of honor on your resume, you should be up to speed on the product and technology space.
It’s worth noting the developer track hasn’t been fully announced but if initial talks are any indication, you will find that the developer courses will be heavily influenced by content from existing developer courses in other areas. Again, the concept is leverage knowledge as much as possible.
In general, the retooling of Microsoft’s certification process is a welcomed change. Need it, Want it, and Worth it? As you grow with SharePoint, I think the answer takes on a vastly different outlook than it did in the past. The courseware is more extensive and tests are shaping up to be much better than in the past. We’re no longer jumping from grade school over to doctoral work – there’s a middle ground and you get to figure out how to best tailor that experience for yourself.
-Maurice

Be sure to specify a category ID for a custom SPDiagnosticsCategory
Every once and while you run into a silly bug that actually takes you a long time to figure out. Some time ago I ran into a problem with a custom SPDiagnosticServiceBase class that only surfaced via PowerShell.
Let’s take a closer look at the problem...
First, we start out by creating a custom diagnostic logging class that contains multiple categories. When it’s properly deployed, we’d see custom area ("Test Area") and all of the categories in Central Admin. Through the Diagnostic Logging page, you’d find you can change the throttle limits like any other out of box category.
Now, let’s open up a PowerShell console and try to change one of the categories using Set-SPLogLevel.
This commandlet allows you to specify the area and category using a very simple Area:Category format. In a simpler fashion, if you specify a string with no colon, the value you provide is treated as a category.
In the next screenshot, you can see that I am trying to set the TraceSeverity to Verbose for category "dddd". Note the error that is returned!
Huh?! Didn’t I just see that category in Central Admin? How about if I try the more generic Area:Category format with a wildcard? Same result!
I shot an email off to my teammate Gary Lapointe, who knows all things PowerShell, and a group of SharePoint Masters. No luck. No one apparently has seen this problem. This was going to be just one of those days...
The biggest clue popped out when I tried using the most generic form of Set-SPLogLevel. If you don’t specify an Identity parameter (for example: "Set-SPLogLevel -TraceSeverity Verbose"), Set-SPLogLevel sets the provided value to all categories. However, for our custom diagnostic class, what do you see?
SP was seriously getting confused. Three problems jumped out: Trace Severity was set to the wrong value (None instead of Verbose), Event Severity was improperly changed to "Error", and finally only the first category was updated.
To make a long debugging story short, I finally was able to isolate and fix the problem!
Core problem:
My problems all arose from how I initialized the categories themselves. If you call the simplest constructor (as I did and most likely a lot of other folks!), your code would look like ...
The real tricky part to isolating the problem is that you need to set the log levels via PowerShell first. If you set the log level via Central Admin, the problem is mostly hidden.
The fix:
Use the SPDiagnosticsCategory constructor that takes four parameters.
In particular, specify a value for the category id. The updated initialization block looks like...
In my example, the id value is coming from an enum that is used for categorization of the items written to the diagnostic service. This could have easily been as simple as an incrementing counter (0, 1, 2, etc).
Be sure to start the value sequence at 0. I eventually found that if you want to start your ID values at something other than 0, you’ll eventually run into the same problem.
With the SPDiagnosticCategory initialized in this fashion, setting the log levels via PowerShell will work as expected.
Log away!
-Maurice