SQL MCM Day 15: Logistics
There’s something really exciting about walking into Microsoft each morning. I know it sounds cheesy, but I get the feeling that really cool things are happening all over the campus. Love ‘em or hate ‘em, Microsoft builds things that touch our everyday lives, and this is where it’s happening. I know a lot of Microsoft employees that I really, really respect for their knowledge, community efforts, and personalities.
And for three weeks, I’m surrounded by ‘em.
My MCM training is taking place in Building 40 on the Microsoft campus. I’m staying at the Homestead Suites only a block away, and I’d highly recommend it to any attendees. It’s way cheaper than everything else in the immediate vicinity – around $75/night compared to $150/night for real hotels like the Courtyard or Residence Inn. The advantage of staying so close is that you don’t have to fight traffic. During the MCM, you’re going to treasure every minute you can spend studying (or relaxing). If you’re willing to drive 20 minutes each way in traffic, though, you can cut your hotel bill to around $50/night and get a hotel with a warm breakfast each morning. That drive might not be so bad, though.
Rooms in the Homestead have a little kitchen with fridge, stove, and a microwave, so I stocked up on basic breakfast & dinner food when I arrived. That turned out to be a bad idea – every day after class, I really like driving a few minutes to a nearby restaurant just to get out for a while. The Homestead isn’t exactly welcoming, and it’s tough enough to get psyched up for an evening of studying. If you stay farther away, then take a 15-20 minute drive from Building 40 to a hotel, you can hit a restaurant on the way in & out. You’ll have a better frame of mind at a little higher expense.
The Homestead has a small laundry room, but I drop my clothes off at a nearby laundromat. They’ll wash & fold your clothes for a fixed rate by the pound of clothes. It costs 3-4x more than doing it yourself, but you don’t have to wait around for a free machine, and you can spend that time studying instead.
No matter where you decide to stay, bring an Ethernet cable. Hotel WiFi is a gamble, and you can often get better performance via hard wiring. The Homestead’s WiFi in particular is horrible, often dropping connections outright, but the network via jacks in the kitchen is rock-solid and quite quick.
The Homestead’s pretty quiet, but the walls are wafer thin. Even in quiet hotels, though, I sleep way better with a white noise generator. At home, I use a Marpac SleepMate, which uses a spinning plastic tube to generate whooshing air sounds. It’s very soothing, and it masks background noise extremely well. Sometimes in hotels, I can get away with just turning on the air conditioning fan to get white noise, but in places like Seattle, that doesn’t work. Leaving the fan on means you don’t get heat or AC, and Seattle hotel rooms in winter get cold enough to hang meat.
On the road, I use the $1 Ambiance iPhone app, which plays background noise through the phone speaker. You can choose from hundreds of noises, and my favorites are Brown Noise (no poop jokes), Powerful Waterfall, and Rain on a Tent (not to be confused with Snakes on a Plane.) Ambiance has two downsides – it runs your phone battery down, so you need to run it on a charger. It’s not as all-encompassing as the Marpac – recorded noise just doesn’t seem to do as well as whooshing air when it comes to masking noise. I still recommend it highly though.
If you don’t like studying in the hotel room, you can spend as much time as you want in Building 40. On the first day, MCM candidates get badges with 24/7 access to the building. The classroom is stocked with an abundance of the finest snack foods imaginable. Want something to drink? The kitchens all have Starbucks coffeemakers and fridges stocked with sodas, fruit juices, and energy drinks. Carbohydrates will not be an issue – well, at least the lack of ‘em won’t be an issue. I think I’ve gained five pounds already.
Non-Microsoft staff don’t get WiFi access. You can bring your laptop, but either bring a data card or be prepared to use the in-desk computers to access the web. Bring a giant thumb drive (at least 8GB) to copy materials from the lab to your machine.
Some of the labs are delivered in VPC format, so install Microsoft Virtual PC ahead of time on your computer. If you can’t run VPCs on your laptop, consider upgrading your laptop – it’s cheap relative to the cost of the MCM. You can skip using the VPCs, but you’ll be missing out. Apple users – this means you need to install Boot Camp with at least 20GB free space so that you can boot into Windows, then copy the VPC to your local drive and run it from there.
The MCM signup material says that laptops will be provided, and they are, but you don’t want to use them. They’re garbage. Same with the computers built into the desks – mine said Optimized for Windows XP, and even that was a stretch. Mine didn’t have the VT extensions on the processor, so I couldn’t even use it for VPCs. To add injury to insult, the desk computers have CRTs embedded in the desktop, and you’ll bang your knees against the display every time you use the desk. By the end of the first week, most of the attendees were sitting sideways at their desk just so they could use their laptop without bruised knees.
If you’ve got friends to visit in Seattle, do it before the MCM begins. You can’t predict what time you’ll get out of class each afternoon, and when you do, you won’t be fit for human companionship. Your brain will be battered even more than your knees. Don’t plan on doing it after the last day, either. By the end of this, you’ll be dying to get home to your own bed, to eat food out of your own fridge, watch your own television, and hug your loved ones.
Speaking of loved ones, I need to blog about the bonds you build with your fellow MCM candidates. You really go through hell, and you learn a lot about people by the kinds of questions they ask (and the answers they offer) during three weeks of nonstop in-depth technical training. More on that later.
First I’ve got a test to take. (sigh) Here comes Number Two.
SQL MCM Day 14: Test #2
The MCM schedule goes like this:
- Week 1 – M-F – training
- Week 1 – Weekend – study time
- Week 2 – Monday 8am – written exam covering Week 1′s material
- Week 2 – M-F – training
- Week 2 – Weekend – study time
- Week 3 – Monday 8am – written exam covering Week 2′s material (today)
- Week 3 – M-F – training
- Week 3 – Saturday 8am – written exam covering Week 3′s material
- Week 3 – Saturday 10am-4pm – 6-hour lab exam covering all the material

MCM Flash Cards
Week 3′s exams present a little bit of a problem – there’s no weekend study time. Class ends at 5:30pm on Friday afternoon, and then we report back to the classroom 14 hours later to start the tests.
Ouch.
So far, our two weekends have been great for studying, quizzing each other with homemade flash cards, and running through lab demos. During the week, the presenters rip through demos at a breakneck pace, but it can be difficult to understand every step of what’s going on behind the scenes. Most of us have been rerunning the demos again in the evenings and on the weekends to make sure we’re comfortable with the code and the features. For week 3, though, we’re going to have to do our studying and demos every night and stay absolutely current.
This sucks, but there’s no easy answer. Microsoft could move the tests to Monday, but then that drags out the class longer, making it tougher for people to schedule it. The test could be moved to Sunday (as it is for the Windows MCM), but attendees still have to travel back home. Roughly half of this rotation’s candidates are from outside the US.
To add even more suspense, we won’t find out if we passed for a day or more. After the lab finishes Saturday afternoon, we’re going to head to a bar, drown our sorrows, talk about what we screwed up, and toast to our success before leaving for our homes.

A walk in the park with Buck Woody
I’m really, really going to miss hanging out with this group of people. The best thing about coming to Microsoft’s campus is the collection of absolutely brilliant people who show up for the party. I got the chance to spend time with Microsofties Buck Woody, David Ikeda, Jimmy May, and Joe Sack, plus met several more who are in my rotation as candidates like Robert Davis. I don’t want to name anybody else’s name in case they don’t pass and they want to keep it quiet, but I’ll be singing their praises once they pass, because I’m sure they’re gonna pass. These guys are too smart for words. This experience really challenged me, because some of the other attendees know more about SQL Server than anyone I’ve ever had the chance to work with. It was truly an honor working with them.
I’ve been studying my rear off, and I’m fairly comfortable with the materials for today’s test. I’d put a small amount of money on me passing today. I wouldn’t be upset or surprised if I didn’t pass, though, because some of this week’s material has taken me way, way outside of my comfort zone. I’m at peace knowing I did just about everything I could do to pass. I really want to pass this one, because before I got here, I saw this week’s test as my biggest hurdle.
Now that I’m here, I see the final labs as the toughest part. On Friday, we were given a few test lab scenarios, and that suddenly made the whole lab thing very, very real. My scenario had a to-do list with three major tasks with different SQL Server features, and one of them was a big problem for me. I tried it a few times (more than five years ago), didn’t like it, and I never put it into production. This weekend, I had to hold my nose, stick my hand in the box, and get that feature back out. I figured I was relatively safe – after all, I was implementing it on a brand-new standalone virtual server with no dependencies or history of nastiness. As they say on Top Gear, how hard can it be?
Went to start it, and whammo – errors all over the place.
Brand new server. Brand new implementation. Bork bork bork.
So it’s because I’m incompetent, right? Nope – every candidate took a road trip through Error City and spent time troubleshooting problems. Four candidates tried to implement it three different ways, and they all failed to work the first time. When a feature can’t be implemented by MCM candidates on brand-new servers, here’s your sign, Microsoft – it sucks. Fix it, or it will continue to be the laughing stock of DBAs everywhere. (And no, I won’t say what feature it is, because I bet you can guess. It’s infamously failure-prone, always failing in the middle of the night when you’re on call.)
We’re coming down the home stretch. I’ve noticed that my quality of writing has gotten worse – not just in the blog, but my handwriting. My hands hurt from taking so many notes. My eyes hurt within an hour of watching PowerPoint slides, and I find myself rubbing them more often. I need a haircut. I miss Erika and Ernie. I’ve gained weight due to carb-laden fast food stuffed in between study sessions.
But it’s all worth it, because I’ve gained a crazy amount of knowledge too. Now, if I can just absorb enough to pull off the big one on Saturday…
Update: Robert Davis, another MCM attendee in my rotation, blogged his thoughts on how to study for the MCM.
PASS Summit Speaking Requirements
Speaking at a national event is a privilege, not a right. Attendees spent a large amount of money to come to a big event. The event organizers need to ensure that every presentation and every presenter are worth the attendees’ time and money. But how can we gauge quality when hundreds or thousands of abstracts get submitted every year? Simple – gradually:
Before speaking at a regional event, you must have local experience first. In terms of PASS, this means that I would require that speakers do presentations at local chapters before they can be accepted at a SQLSaturday. I’m not saying the exact same presentation should be given at both events, but they at least need to present in both places. Speaking in front of 100 people is very different than speaking in front of 10 people – you have to gauge audience interest differently, control hecklers differently, and project your voice & personality differently. The techniques I use with a handful of people don’t scale to a packed room.
This point is especially near and dear to my heart because I keep getting desperate pleas from user group leaders who need local speakers. I get the feeling that some speakers are just parachuting into big events rather than putting in their time polishing and preparing their work at the local level first. Local chapter leaders need our help.
Before speaking at a national event, you must have regional experience first. This dovetails perfectly with PASS’s recent acquisition of SQLSaturdays, and it does two things. First, it ensures that speakers can perform in front of big crowds, and second, it helps SQLSaturdays maintain a good speaker list.
Ideally, if you get lots of negative feedback at a smaller event, your submissions aren’t favored at national events. This takes a lot of work, but in a perfect world, I’d have a single feedback system (maybe SpeakerRate.com) that centralizes ratings. If you can’t average, say, 4.0 (on a 5-point scale), you don’t get into the Summit.
This topic is very important to me because I remember being very let down at my first PASS Summit. I remember sitting through some presentations and saying, “Jeez, how the heck did this person get approved to speak? Sure, the material is interesting, but damn, they can’t speak. They have no stage presence, they’ve clearly never rehearsed this material, and they don’t know how to answer audience questions.”
Running a national event means making sure your attendees get the most bang for the buck. Vetting speakers like this will help ensure that attendees keep coming back for more.
SQL MCM Day 11: When and How to Get In Free
I’m more than halfway through my big adventure. Candidates are starting to complain about the lack of sleep and the abundance of material. So far this week, we’ve covered the following material:
- 537 PowerPoint slides (and these aren’t Brent-style slides, either – one of the slides yesterday scored 15 bullet points)
- 43 T-SQL scripts
- 11 Visual Studio apps
- 164 more slides of “testable material” that weren’t shown
That’s just in the last four days, plus we have another day of material today. I’m starting to feel like Karl in Lost, strapped to a chair in Room 23, watching the Dharma brainwashing video on an endless loop. I’ve started dreaming of DMVs – yesterday morning I woke up and said “sys.dm_active_trans” out loud, and that’s not even a real DMV name. Any of this material can be in our exam on Monday, and then eight days from now, our 6-hour implementation lab will cover material from all 3 weeks.
I would have made a profit attending the MCM training if I had a dollar for every time an instructor said, “I never cover this in my public lectures, and you don’t really need to know this, but this is what the Master level is all about.” It’s not just about internals – they cover hidden fields that aren’t used yet, techniques that don’t work, and back door ways to double-check that SQL Server is really doing what it’s supposed to be doing. This week Adam Machanic covered at least a few things that nobody knows outside of Microsoft, Adam, and Adam’s technical reviewers. It’s mind-boggling.
It’s not always useful – I won’t run out of the building ready to throw a particular feature into production – but I’m much better prepared. I can make a much, much better decision about whether a feature is right for a given project, or why it’s not. The endless joke about being a database administrator is that the answer is always, “It depends.” Being a Microsoft Certified Master means knowing exactly, precisely what it depends on.
Going in, I was pretty sure I knew the answer to most of the “it depends” scenarios. See, I think the career of a DBA progresses a little something like this:
- Brand new DBA – “Books Online says I should do it this way.”
- Junior DBA – “Somebody on a forum somewhere said this trace flag will fix everything, and I think they know what they’re talking about.”
- Senior DBA – “It depends. A lot of stuff in those forums is wacko, and I’ve been burned by that trace flag. Here’s what’s worked for me in the past, here’s a few good alternatives we should talk through, and here’s advice from people that I know and trust.”
- Expert – “Here’s a list of what it depends on. Here’s four people who got burned with that feature, here’s four people who’ve implemented that feature successfully, and here’s how to get in touch with the product manager for that feature. Between me and my peer group, we can find the toughest answers with absolute certainty in a matter of hours – or perhaps minutes.”
Being an expert isn’t just about knowing the answers; it’s about knowing the people who wrote the answers.
Getting to this level, getting to where the MCM training is useful to you, requires a heck of a lot of experience. The training is most effective for me when I can hear the instructor explaining the tweaks and back doors to a particular feature, and I can respond by thinking, “Ah-HA! That would be the perfect answer to ___! I know why that’s helpful, and I know where I’d apply that knowledge.” Today in particular, Adam Machanic covered three separate features that I’d always wanted to implement at Southern Wine (my last company). Armed with just this one day of training, I can go back to them, steer them away from two of the features, and steer them toward one. I bet I’ll save them multiple man-years of labor just with this one day of training alone.
When I was a production DBA at Southern, I never would have thought to attend something like the MCM. It would have seemed completely out of my reach, way too expensive, and not relevant to my day-to-day work. Turns out I was wrong, because there’s….
Nearly-Free MCMs for Microsoft Premier Agreement Customers
Large companies get Microsoft Premier Agreements for better support. Premier contracts include a number of hours for Microsoft consulting services like health checks and continuing education. Every year, companies let their Premier hours expire without using ‘em up.
You can use your company’s Premier hours to pay for your MCM tuition!
If your company has more than a few hundred employees, ask your manager if you’ve got a Premier agreement. This is different than an Enterprise Agreement, which covers software licensing, but Premier services are often bundled in with Enterprise Agreements.
If the company has a Premier agreement, find out when the expiration date is, and how many hours are left on the contract. Tell your manager that you’re calling shotgun – you want those hours if they’re going to go unused. Then contact Joe Sack to get more information about how to sign up for the MCM program using your Premier hours.
There’s two reasons you should rush:
- There’s very few MCMs right now. There are only 3 SQL MCMs in the US outside of Microsoft right now. Having it before everybody else is worth something.
- You want to get in before your coworkers. Put your name in before the word gets out about how the Premier-hours-for-MCM thing works. Whether you’re a SQL, Exchange, Sharepoint, or Windows person, you should go for this.
Your company probably won’t foot the entire bill for MCM training, but if you can manage to use leftover Premier hours to pay for it, suddenly the bill becomes one heck of a lot cheaper.
SQL MCM Day 10: Comfort Zone
I’m kinda good at a few things. I can tune pretty much any SQL Server to make it run faster. I play a decent game of Extreme Query Makeover. If you talk about your SQL Server application behavior for a few minutes, I can usually tell you where your bottleneck is. I’ve even been known to guess an exact server configuration down to the storage setup from a five-minute Perfmon counter output. I’ve got a core set of skills that enable me to make a pretty good living teaching people how to make their servers run faster. I don’t get a big head, though, because I only know a relatively small subset of SQL Server. When I open the Microsoft MVP private newsgroups, my eyes get wide at the questions – let alone the answers.
Before the MCM, if you’d have come to me with stories about a server running SQLCLR stored procedures, storing XML in the database, or using 2005′s table partitioning, I would have given you a pretty short answer: “Stop doing that.”
Unfortunately, the Microsoft Certified Master training doesn’t give me that luxury.
The MCM isn’t just about going deeper into subjects you already know and love. Sure, some of the instructors can wax poetic about the finer points of your very favorite features, but sooner or later, you’re going to encounter a session on a topic you can’t stand. It’s not enough to say, “That feature doesn’t scale” – your mission as an MCM is to master it anyway, because believe it or not, you’re wrong.
The MCM is about letting go of your prejudice against a feature and learning to make it work. I’ve heard stories from instructors about candidates who angrily denounced sessions as irrelevant. These students said they would never ever use a technique. Those students will not be successful. Going in, based on the prereading list, I knew I was going to encounter my old sworn enemies: CLR assemblies, XML in the database, Service Broker, and – perish the thought – replication. As those topics came up, I kept an open mind. After all, if anybody has a chance of getting it right, it’s the rockstar MCM instructors. If I’m going to learn how to do CLR in the database, I would want to learn it from Adam Machanic (Blog – @AdamMachanic).
I expected the instructors to come in with pom-poms and cheerlead their subject areas. I expected them to recite a litany of ways that his favorite features ruled, and my opinion drooled. Wrong-o: every instructor has been open and frank, explaining how sometimes things work and how all too frequently they fail. Looking back, it all makes sense – they only want you to use a particular feature if it’s going to be a success. They don’t want any implementation failures, and Microsoft encourages this open discussion (well, kinda open, under NDA anyway) because they don’t want failures either. They want MCMs to walk out and have one successful implementation after another.
Like I wrote above, though, this bars me from simply saying, “I would avoid implementing that feature.” Almost every feature I’ve seen covered does indeed have good deployment scenarios. The problem for me is that I have to learn – and I mean really learn – how to successfully deploy them. This means doing things that have burned you in the past, or things you’ve just plain avoided. For me, that was SQLCLR. I wish I would have spent a few weekends ahead of time with a .NET developer getting to know more so that I could have asked better questions.
If you wanna get the most out of the DBA training, you need DBA experience.
If you wanna get the most out of the developer training, you need developer experience – whether you like it or not.
At one point, Adam touched on a subject that wasn’t in the slide deck, then paused and asked attendees if they wanted him to spend 5 minutes talking about that subject. He made it clear that it wasn’t part of the exam, but if attendees were interested, he could elaborate. Some of them did, so he did. I was left out in the cold because I didn’t have the ground level knowledge to take advantage of what he was saying. He could have been explaining the contents of candied sweet potato french fries for all I know.
To grow as a person, you have to go outside of your comfort zone, and the MCM makes you do just that.
For the record, the candied sweet potato french fries were fantastic, and SQLCLR wasn’t too bad either.
SQL MCM Day 9: Taking Good Notes
I sit at the back of the classroom, so I get to see everybody’s laptops as they’re working. Some folks surf the web, make travel plans, or do email. Other folks follow along with the demos, running the scripts on their machines before the instructor gets to the next one. I seem to have a little bit of an oddball strategy, so I figured maybe I should blog it in case it helps anybody else.
I start by keeping the PowerPoint slide deck open. As the instructor explains each slide, I make notes in the “Notes” part of the slide. If the slide deck already has some notes from the instructor, I make a line above their notes to show what’s theirs versus what’s mine, and I put mine at the top. I find that instructors place very different emphasis on different parts of the slide – for example, some instructors will say, “This part here doesn’t even really matter, and I don’t know why I haven’t taken that off the slide.” Presto, put that in the notes, and you can change the way you study.
Instructors also place huge amounts of emphasis on other points, so I make note of that too. If a particular topic is very important, they’ll show it with their body language, pointing at the topic or waving their hands. Those kinds of points seem to be more likely to show up on exams.
I also start a Word document, and I switch back and forth between that and the slide deck. In the doc, I put notes about:
- Blog topics (not necessarily blogging something straight from the deck, but more like things that occur to me while I’m watching them cover a topic)
- Things I need to bring up with clients (like when a slide covers a solution that might address their problems)
- Questions I want to ask the presenter later (clarifications, going down a rathole, or anything that is important to me personally but probably isn’t of interest to the rest of the class, and I don’t want to burn up the classroom time)
- Things I find interesting, but aren’t likely to appear on the exam
The downside of my fragmented PowerPoint/Word approach is that it’s not as easy to combine all of my notes in one place. I’ve seen people using OneNote, and looks slick, but I’m kind of averse to anything that puts more software between me & the original source docs.
SQL MCM Day 8: The First Weekly Exam
Here’s everything you need to know to pass the MCM written exams:
Before you get here, read the prerequisites.
Again.
And again.
And again.

My kind of email
Do the demos. Run the scripts. Explain them out loud. Teach the workings to your pet hamster. Be completely comfortable with everything covered in the prerequisite reading. The one week of training is nowhere near enough to take you from zero to hero, as they say – if you don’t already have a very solid background in the material, you’re not going to make the cut.
I was the first guy to finish the two-hour exam on Monday morning, and as I waited for the other candidates to finish, I thought I’d done really well. But as each attendee came out and we talked about our experiences, we realized that we hadn’t done quite as well as we’d thought. Within an hour, we were all pretty sure we were on the borderline between pass and fail, and perhaps even trending toward the fail area.
Our results were delivered via email, and I breathed a big sigh of relief when I saw that I’d passed. Unfortunately, two of my colleagues didn’t make it, and I was really surprised. I wouldn’t have correctly predicted who was going to pass and who was going to fail.
Looking back at the test and looking forward at this week’s material, I’m pretty concerned about my chances on the next exam. I’m going to have to study my rear off, because I really, really want to pass these tests the first time. If you fail, you don’t get to retake the exams right away, which means the material is going to slowly trickle out of your brain. Your best shot by far is passing that first exam.
I’ve started to settle down into a schedule:
- 5 AM – wake up, read the news, hop in the shower.
- 5:30 AM – drive to Starbucks or McDonald’s to get coffee and breakfast
- 6 AM – arrive in the classroom to start studying
- 8 AM – class starts
- 6-6:30 PM – class finishes, attendees talk for a while to decompress
- 7-7:30 PM – go somewhere for dinner
- 8-8:30 PM – arrive back at the hotel room and crack the books open again
- 10 PM – go to bed
I’m selfish – I get 7 hours of sleep – but I’ve seen other attendees sending emails until 1-2AM, quizzing each other through our distribution list. I can’t operate like that. The less sleep I get, the less focused I am during the day, and the tougher it is to really absorb some of the monstrously detailed material. We take a 5-10 minute break every 60-90 minutes, and I find it helps to take a walk outside to see the sun and get some fresh air.
Random unrelated quote:
Attendee: “Why is it that all the instructors know you?”
Me: “I’m huge on MySpace.”
Plagiarism, Inspiration, and John Dunleavy
John Dunleavy, owner of SQLTech Consulting in Philadelphia, PA, has been engaging in an interesting conversation with me and a few other authors on Twitter. Denny Cherry also recapped the conversation.
I first spoke with John a few months ago when I caught him plagiarizing my work – not using it for inspiration, but simply copying it. He posted my full articles on his blog without quoting them or showing that they were from me. I pointed him to my FAQ on blog plagiarism, and after some strong discussions, he agreed to remove my work from his blog. Evidence of the plagiarism still lives on in Google’s cache, unfortunately:
Over the last couple of days, we’ve revisited his site, and we’ve found that John has continued to copy the work of others without proper attribution. Here’s an example:
The post has no quotes around it, and it says things like “we have achieved 99.99 percent uptime.” The article says “by John” at the top, and the reader would assume that the “we” means John.
But every single word is copy/pasted from this Microsoft TechNet whitepaper by David Smith of ServiceU Corporation. That whitepaper is covered by Microsoft’s copyright at the bottom, which explicitly states that:
“You may not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information, software, products or services obtained from the Services.”
John chose to ignore that copyright, and he defended his actions on Twitter by saying:
He’d rather ask forgiveness than permission. Unfortunately, that’s not fair to the authors. It’s not fair to make hard working guys like me chase down people who are stealing our work, then ask them to stop. The answer is for them to stop stealing work to begin with, but it’s tough to argue that when the other person believes they’re helping people:
Me, I’m not good at building operating systems, but that doesn’t give me the right to pirate Windows. And it certainly doesn’t give me the right to share that pirated software with others, even if I’m not making money doing that sharing. John tries to hide behind the community flag:
The problem with John’s noble goals, though, is that he is indeed running ads and making money. The entire site is an advertisement for John’s consulting company, SQLTech Consulting. If you click Services at the top of the page, he offers database administration:
It isn’t as if he’s running a personal web site – he’s running a business. That’s especially ironic given that he asks:
I’d be happy to answer that question. I help others by working my tail off to write original posts & articles, then I give them away to the community personally. I build original presentations, rehearse them over and over, and then deliver them free over the web in high definition.
I work so hard because I want people to associate me and my employer, Quest Software, with SQL Server expertise, community building, and trust. I get paid to build a trustworthy bridge between you and Quest. If you have a SQL Server issue, I want you to know that you can come to me personally and get an absolutely honest and correct answer. If the answer is a script you can just download for free off SQLServerPedia, I’ll point you to that. If the answer is somebody else’s product, I’ll tell you that.
But I line my pockets because sometimes the best answer is a Quest product, and I’ll point you to it, but I won’t sell it to you. If you ever feel like I’m shoving a product down your throat, I want you to call me out on it, because Quest wouldn’t allow that. Billy Bosworth, the head of our database software group, talks about why that’s so important in his post How SQLServerPedia Is Different.
I would give anybody in the SQL Server community the shirt off my back. I’ve helped my competitors, I’ve pointed people to competitors’ products, and I’ve gone out of my way to consistently do the right thing. But that’s not enough for John Dunleavy, who wants to reuse the work of others without so much as quoting or attributing it, and he says:
This is the heartbreaking part about helping the community. The vast, vast majority of the SQL Server community is made up of phenomenal people who feel the same way I do. They drop everything to give #SQLHelp, they volunteer to share their knowledge at local user groups, and they give their work away for free on their blogs.
It’s only a tiny minority who abuse the rest of us.
Update 3/23/2010 – It Gets Worse
Upon further investigation, Denny Cherry discovered that John Dunleavy had plagiarized more material. John stole Denny’s work for a T-SQL Tuesday blog post, changed some words, and passed it off as his own. Now John really can’t argue that he was just publishing pointers to other peoples’ work – he was doctoring their work and publishing it without any attribution whatsoever.
If you’re a small business looking for a database consultant,
you should know how that person treats data that belongs to others.
Update 3/29/2010 – John Removed the Material
John saw the light, and he’s removed the offending material. He’s asked me to remove this post as well, saying he never stole anyone’s work – merely used it without attribution. I declined, but I’ve offered him the chance to write a paragraph to explain his stance here.
SQL MCM Day 7: One Week Down
Whew.
The first week was taught by Paul Randal (Blog – @PaulRandal) and Kimberly Tripp (Blog – @KimberlyLTripp), the husband-and-wife team of former Microsofties who founded SQLSkills.com. To call them good trainers is an epic understatement. They know how to deliver very, very technical material in ways that illustrate it well. I had to stop Paul at one point and ask him how long it took to build a particular slide because the animations were so good at conveying a hard-to-describe process.
“Of course,” you say to yourself mid-week, “why doesn’t everyone know that you can just XOR all the IAM pages together to double-check the allocations on each PFS page? It’s so obvious.”
But if you hopped into a time machine, went back one week before the class started, and said that same sentence to Last Week You, he wouldn’t even understand how that was related to SQL Server.
DBAs Are On a Need To Know Basis
As a DBA, I didn’t have the time to learn about stuff like IAM pages and PFS pages. I was too busy keeping the trains running on time, tuning applications, building new servers, and avoiding disaster.
As an MCM candidate faced with an avalanche of really, really cool learning material, there’s a wonderful dilemma:
- Should I focus on learning things to pass the exam (and maybe ignore obscure things that interest me)
- Or should I give in to temptation and dive into the things I find mesmerizing, and skip things that don’t call to me (at the risk of not learning something required on the exam)
For example, during our first group study, we dove down a rathole and spent a lot of time discussing the intricacies of the ghost cleanup process. I’m smiling as I type this because we had a really fun time debating and analyzing how a particular part worked. When we asked Paul about it the next day, he explained it, but immediately pointed out that those fine-grained details wouldn’t be on the exam. They weren’t even in the slide deck or notes, because we’d gone so far away from what’s useful for real-world architects and DBAs. Nobody needs to know this stuff, but we’re hard-core geeks, and we find the inner workings cool.
Go far enough down the rathole, and you become really thankful for the MCM’s biggest perk: connections to brilliant people. As much as I love the intertubes, there’s wrong information out there. It’s hard to put a price on accurate information, especially when the design, performance, and security of your data is at stake. Going through this class, suddenly I can appreciate how frustrating it can be for Kim and Paul to open up a web browser. One could spend all day correcting bogus and misleading web pages, but that costs time, which is money, and there’s not much of an ROI on flame wars. I can even make a case that if you’re a doctor, it makes sense to keep letting people shoot themselves in the foot. There’s good money in removing bullets.
I don’t want to give you the impression that the class focuses on obscure internal processes, though. Paul and Kim’s training upended the conventional 100-200-300-400 progression. Instead of starting with 100-level material like “Meet Mr. Table and Mrs. Index,” it started with how the storage engine works. On Monday, we covered things that most DBAs think they’ll never need to learn, let alone touch. By the end of the week, as we gradually stepped away from the internals, we had a much better understanding of why some 100-200 level concepts worked the way they do.
When Do You Need to Know?
Good senior DBAs bust their humps the first year on the job. They get the servers set up correctly, configure alerts & notifications to find out when things break, and harden security to make sure people can’t break things. Once they’ve built a solid foundation, the rest of their time at the company is much easier, and they’ve got the free time to dig deeper.
That’s the perfect time to go for the MCM.
When you believe you’ve got things pretty stable in your environment, when you feel confident that your servers are under control, and you want to take your knowledge to the next level, the MCM is right for you. I’ve already learned things in week 1 that I can quickly apply to my SQL Servers right now and improve performance, reliability, and scalability. The only thing holding me back from sending out client & friend emails is that I don’t have the time to manage the responses yet. For example, I connected to one friend’s server, ran a troubleshooting query, and found that we need to fix the log file setups. I started banging out the email telling them what to do, but I realized it’ll take an hour, and if anything goes wrong in the process, I don’t have the time to help them troubleshoot.
Do I Actually Know?
We’re about to find out – my first exam starts at 8:00 AM Pacific.
My biggest concern (and I’ve heard the same thing from other candidates) is the test style. What kinds of questions will be asked? Will they be high-level design questions, mid-level implementation questions, or low-level syntax questions? We keep rehashing the slide decks trying to cover these questions from all three angles, but it’s hard to come up with our own test questions when we don’t know that crucial element. We’re going to breathe a sigh of relief once we see the first question just to know how to focus the rest of our studies on the next two exams.
Candidates who fail a test keep right on going, and retakes happen later. Training starts again shortly after the two-hour exam completes, and the first teacher this week is the colorful Adam Machanic (Blog – @AdamMachanic). I’ve already warned the candidates that he’s younger than me, smarter than me, and knows more about alcohol than me, so he’s obviously doing something right. Or many things.
As soon as I know my results, I’ll tweet ‘em, but it may take a while. The results are graded by hand due to the question complexity and evolving nature of the tests. This isn’t an MCP test that’s been beta’d with thousands of candidates, so they still monitor the results closely each time.
Wish me luck!
More on the Relative Value of Projects
A while back, I blogged about the importance of recognizing database values. If you’ve got a dozen databases on a server, and one of them is hogging resources, how much is that database worth to the business? If it’s a database housing low-value data (like employee web surfing habits) and the other databases are much more valuable (like incoming sales) then that guides your fix. Move the low-value data to a lower-value server, or move the higher-value data to a higher-value server. Don’t make your high-value apps suffer at the expense of poorly written low-value apps.
Saturday on Twitter, I was talking with another DBA (who shall remain nameless lest this come off in the wrong way) about a project. He needed a free or low-cost way to monitor a free server with low-priority applications. He said the company didn’t see the value in spending money to monitor those apps, so he didn’t have a budget.
I’ve been there myself, and I feel that pain. I remember being a DBA and saying that every database was important. Just because a server is development doesn’t mean it’s unimportant – if it goes down, the developers can’t work. I like the developers, so I need to protect their server, right?
Nope.
Come back to the most basic part of the problem: the company doesn’t see the value in spending money to solve that particular problem. It’s tempting for us to want to be the hero, to save the company money, to accomplish something they ordinarily would have had to pay money for.

Sleepless in Seattle
But it’s the weekend.
They don’t call it free time because it’s free to the company.
Don’t get me wrong – I love working on the weekends. People who love what they do, love doing it every day of the week. I can say this with absolute certainty because it’s a bright, sunny day outside in beautiful Seattle, 9am, and I’m sitting in a Microsoft office studying. But on the weekends, take a step back. Step away from your day-to-day priority list and think about doing things that:
- Things that energize you
- Things that will pay off for your career long-term
- And if you’re gonna work, pick things that the company sees the most value in
If they won’t give vendors money to solve a problem, they probably won’t give you a raise or a promotion for solving it either. Go solve things that make your company executives drool with anticipation. Follow the budget, solve the problems they see value in, and they’ll see value in you.










