Microsoft appears to have realized that it goofed when it promoted the MCSE as the ticket to the good life in IT. A certification that should demonstrate an intermediate- to advanced-level understanding of Windows networking now has a reputation for being a good indicator of how well someone can memorize information posted at brain-dump Web sites. Too many candidates were attempting to earn an advanced-level certification when they should have been going after an entry-level one. The Microsoft Certified Systems Administrator (MCSA) certification emerged as a good solution to this problem, providing an entry-level step toward the MCSE. Likewise, the Microsoft Certified Application Developer (MCAD) is becoming a good starting point for those interested in the MCSD.NET.
But a question that arises is whether the new MCSD.NET certification is something that anyone would want to earn. When you consider the elective exams for the certification, that question becomes interesting. Of the products that the elective exams address, Microsoft SQL Server is the only one that has any kind of broad market support. The remaining products on the list are Microsoft BizTalk Server and Microsoft Commerce Server, both of which have minimal market share and require such a large investment to implement that only developers who work for large companies will have relevant hands-on experience. Despite the hype of the last couple of years, business-to-business (B2B) information exchange and e-commerce sites that can handle tens of thousands of users still account for a small percentage of what developers as a whole work on every day. The vast majority of development consists of desktop application development, with Web application development a close second; therefore, why should MCSD.NET certification candidates spend the time and considerable amount of money required to learn enough about BizTalk Server and Commerce Server to pass an exam? And if they do, of what real use was that effort?
The answer, of course, is that most MCSD.NET candidates will choose the SQL Server programming exam as their elective. This choice makes a lot of sense because the exam is also an elective for the MCSE and a core exam for the Microsoft Certified DBA (MCDBA). But, more important, database servers have become the foundation for just about all networked applications. Microsoft has even hinted that in its ultimate evolution, SQL Server will become the information repository for everything on the network. This trend means that database programming will become a core requirement for all application developers. In many ways, this requirement is similar to the requirement that Windows 2000 MCSE candidates have an understanding of TCP/IP.
However, unlike the MCSE, the MCSD.NET is missing some crucial components. First, although database programming is the most likely choice for the elective, it's not a requirement—but it should be. Second, the certification devotes some coverage to securing application code but very little coverage to securing the authentication between servers or the communication channel between client and server. Microsoft doesn't require MCSD.NET candidates to know about Secure Sockets Layer (SSL), IP Security (IPSec), VPN, Kerberos, NT LAN Manager (NTLM), or any other method for securing data as it travels between computers. Candidates don't have to understand domain authentication, Windows user rights, or NTFS permissions. Microsoft should set a standard by requiring MCSD.NET candidates to demonstrate a basic understanding of network security.
The main component missing from the MCSD.NET certification—and especially from the MCAD certification—is relevance to today's marketplace. Unlike network administrators, developers have a simple way to prove that they know how to program: They can write a sample application. When I was sending out resumes years ago, I would always include a disk with programs I had written. All an exam proves is that I'm a good test taker. A sample program shows what I can do as a developer. If a company that's looking for a developer can see an actual example of a candidate's work, why should it care about exam scores? This lack of interest in exam results explains why MCSD numbers never climbed as high as those of the MCSE.
Microsoft had a chance to make the MCAD and MCSD.NET certification something worth earning. Rather than focus on the banal skills of application development, the MCSD.NET exams should test whether candidates know how to prevent theft of data on the network or prevent exploitation of their own code to attack the network. The exams should test whether candidates know how to secure data in a database server so that sensitive data remains safe from unauthorized users. The exams should test whether programmers understand advanced topics such as using multiple threads in an application, rendering forms on everything from a desktop to a handheld PC (H/PC), and managing ActiveX Data Objects (ADO) access to database servers. In short, the MCSD.NET won't be a premium certification because of the skills it measures. Microsoft has essentially created a certification that's good for people starting out as developers, but no one else.