This is part 3 of a 3 part series of thoughts on certification and Microsoft technologies.
We'll never be able to completely and accurately measure a person's skills in technology. At least not in any cost- and time-effective way. Ultimately we want to come up with some way to weed through candidates and ensure they have a minimum aptitude for technology and some level of skill in the areas that are important to us. We want a way, with some level of confidence, to say that a person who has xx certification knows yy skills.
In the Microsoft world we can be sure that our platforms and technologies will change at least every 2-3 years, with major or minor revisions to all parts of the product we use. We might see minor tool changes, but fundamental feature enhancements or vice versa. However even when there are major changes, the revisions to the effective way we accomplish tasks doesn't change much. It evolves, and I think that a core set of skills can be measured, and more importantly, scored.
How we do that, I'm not sure. As Brent Ozar said, however, the experiment must go on. We, as an industry and group, should be finding ways to assess our community, and drive forward our profession. I'd like to think that we could build an open source framework that allows for the presentation of a situation, and the evaluation of a result. It could be a framework like tsqlt, which allows us to write tests that can be evaluated by a scoring system. By taking a script of some sort, and comparing it to a "question", some automated measurement would be able to determine if the question was answered (or partially answered).
Our community could easily build a bank of hundreds, if not thousands, of questions. Want to evaluate someone? Download 50 questions, drop someone in a room for an hour and see how much they get done. They might not finish, which would be a good test in and of itself. Run their answers through a scoring engine and get a report back. With tags, we could easily separate questions into a variety of packs that employers could use to test certain areas. Testing core skills, without too much worry about version specific items would allow questions to live for years. Heck, with the age of some SQL Server instances out here, I bet some companies still need SQL Server 2000 based tests.
Ultimately I don't think Microsoft will properly build and maintain a framework to evaluate candidates. They have too much incentive to cheat. They can fool lots of employers with easy to pass, paper diplomas and turn a profit with lots of easy certifications that sound good, but don't really test skills. The future of measurement in technology will be like it is in many other fields, with independent bodies that provide a minimal level of educational skill for most individuals. It will consist of granular tests that measure skills, in real situations, not question and answer trivia. Some people will slip through, some will cheat, but it will work well enough when it falls out of the hands of vendors.
Get your SQL Server database under version control now!
Version control is standard for applications, but databases haven’t caught up. So how can you bring database development up to speed? Why should you start? Find out…
SQL in the City – Free SQL Server training in the US
Don’t miss out on learning about best practices for SQL Server database development and administration from top SQL Server MVPs. These free seminars and events are coming to San Diego, Denver, Pasadena, Atlanta and Charlotte. Find out more and register.
Bill Pearson, business intelligence architect and author, exposes the DAX COUNTROWS() and FILTER() functions, while generally exploring, comparing and contrasting the nature and operation of calculated columns and calculated measures, in the second Level of our Stairway to PowerPivot and DAX series. More »
Kun Lee had a database where the log file kept growing and used 99.99% of the available space. He noticed miscellaneous change data capture objects still in the database as well as open transactions. This was causing his transaction log to continue to grow, but he couldn't disable CDC, because SQL Server thought it was not enabled. Read the full article to see his solution. More »
Join SQL Saturday San Diego for a free day of SQL Server training and networking on September 21st. There will also be a free SQL in the City Session on the 20th presented by Steve Jones and Grant Fritchey. More »
In this Webinar on Tuesday September 12, Louis Davidson will explain the differences between good and bad database design. He'll discuss characteristics such as comprehendible, documented, secure, well performing, and normalized (naturally). Register to come along. More »
Optimize your queries—and obtain simple and elegant solutions to a variety of problems—using window functions in Transact-SQL. Led by T-SQL expert Itzik Ben-Gan, you’ll learn how to apply calculations against sets of rows in a flexible, clear, and efficient manner. Ideal whether you’re a database administrator or developer, this practical guide demonstrates ways to use more than a dozen T-SQL querying solutions to address common business tasks. Get your copy from Amazon today.
Yesterday's Question of the Day
(by Pavel Bakunovich):
What is the output of query in the end of the batch?
CREATE TABLE Tr(
CREATE TABLE TrLog(
CREATE TRIGGER tr_TrLoggin
INSERT INTO TrLog(ID, Name, CreatedOn)
SELECT ID, Name, GETDATE()
INSERT INTO Tr(ID, Name)
SELECT 1, 'First'
DISABLE TRIGGER tr_TrLoggin
INSERT INTO Tr(ID, Name)
SELECT 2, 'Second'
ALTER TRIGGER tr_TrLoggin
On Tr AFTER INSERT
INSERT INTO TrLog(ID, Name, CreatedOn, AcrionType)
SELECT ID, Name, GETDATE(), 'Insert'
INSERT INTO Tr(ID, Name)
SELECT 3, 'Third'
DROP TABLE Tr;
DROP TABLE TrLog;
Answer: 2 row with names 'First' and 'Third'
Explanation: Two rows are returned. The ALTER TRIGGER statement enabled trigger again and statement 3 fires the trigger a second time.
The script will show the details of all the FKs in a particular database. Open SSMS and run the script for the intended database. In the script I have used Adventureworks2012 as an example. You can replace that with your required DB name
This newsletter was sent to you because you signed up at SQLServerCentral.com.
Feel free to forward this to any colleagues that you think might be interested.
If you have received this email from a colleague, you can register to receive it here.