Monthly Archives: February 2010

Top 10 Reasons Why Access Still Doesn’t Rock

Database Journal published an article yesterday about the Top 10 Reasons Why Access Still Rocks for Developers.  After I wiped the coffee off my monitor, I had to write a rebuttal.

The following headlines are theirs, not mine, but the responses are mine.

1. The price is right.

The author says:

“Access is freely available … to everyone who has Microsoft Office Professional.”

That’s like saying fine Corinthian leather is completely free … to anyone who has a Chrysler Cordoba.

Microsoft Office Professional is not free – it’s $400!  If you want free, go download SQL Server Express Edition right now.  It’s completely free, period.

2. Landing pad for data.

That’s not even a sentence.  You have to read through his points one by one to understand where he’s going:

“I regularly copy and paste data from Excel and Notepad directly into Access tables.”

You know what’s really funny is that I regularly copy/paste data from SQL Server into Excel!  It’s all about what you’re familiar with.  Excel has a heck of a strong feature as a front end, and I’d make the argument that I’d rather do a lot of my “landing pad” work in Excel, not Access.  The author goes on to point out:

“While I have 10 years experience with SQL Server, I only recently learned how to use SQL Server Integration Services (formerly DTS) because Access is easy-peasy-lemon-squeezy…”

Access does have a great reputation for ease-of-use.  This is the one point I’ll grant the author.

3. Plethora of books and training materials

Amazon search results reveal roughly 10,000 books for Microsoft Access and 5,000 books for Microsoft SQL Server.  How many books do you need?  What platform do you think has too few books available that your #3 reason to use Access is the book selection?  Punch cards?

4. Vast online community to offer free help

You want to go there?  Really?  Okay, let’s look at the Twitter user base on WeFollow for a few tags:

But the author goes on to kick sand in the face of the SQL Server community by saying:

“I never felt the camaraderie or the community in SQL Server or .Net newsgroups that was ubiquitous in the Access ones.”

Of course not, dude – because you’re pimping Microsoft Access.  SQL Server people ***hate*** Access people.  If I had a dollar for every time I encountered a stupendously poorly crafted Access “database” that required amazing rework in order to scale, I’d – well, actually, I do.  I have a lot of money from those projects, come to think of it.  Actually, would you mind sending me your client list?

5. Subforms

The author writes:

“This might be outdated, but I’m going to include it anyhow. Decades ago when I developed in PowerBuilder, Visual Basic 6 and Access, the ability to drag and drop a form onto another form to create a synchronized pair was huge.”

Welcome to 2010.  Among many interesting new things such as flat panel monitors, hybrid cars, and the wheel, we’ve also come to embrace many new programming concepts like MVC.  While it was initially intriguing to get your application chocolate in my database peanut butter, we have found over time – decades, in fact – that the application might work best when it’s separated from the database.

6. Reports

See above.

7. VBA

See above, but one quote has to be shown:

“Real Access developers don’t use macros … we write VBA code.”

I don’t even know where to begin with that one.

8. Integration with “real” databases.

All The Storage an Access Guy Needs

All the Storage an Access Guy Needs

Why not just use a real database from the start?  SQL Server Express Edition is completely free, and not only do the databases scale up beyond 4 gigs, your career can scale too.  The skills you learn working with Express Edition translate to a better long-term career as a database administrator or developer on huge projects – projects where you don’t have to be the one guy writing data storage, reports, and workflows all inside the same tool, by yourself.

One of the author’s points is just flat out incorrect:

“The front end was an Access 97 mdb file, which linked to an Oracle database. On Friday at noon, 125 employees would scramble to update their digital “time sheets” and the system didn’t blink. Maybe it was the fact that the data was in Oracle or maybe it was because the Access used Pass Through queries to execute stored procedures and server side views, but the reason doesn’t matter.”

Actually, that does matter.  You could have written the front end in .NET, C++, or Classic ASP, and it would have scaled if Oracle’s doing all the work.

9. New features in 2010

The author says:

“Table macros and publish to Web. ‘Nuff said.”

Errr, wait – up in #7, I thought you said real Access developers don’t use macros?

10. The Play-Doh factor

The author says:

“Access applications are easy to mold and shape into whatever you or your client needs. In this context, easy means inexpensive.”

If we reword “applications” to be “proof-of-concept apps”, I’d agree.  But when the client builds a web site for their online store, does it scale?  If they suddenly become the next bacon salt, can they sustain a load of hundreds or thousands of customers ordering simultaneously?  Can they build StackOverflow in Access?  No way – again, I’ve followed behind too many Access projects that suddenly ran into problems with scaling or data volumes.

Folks, come on over to the SQL Server side.  We make real dough, not the play kind.

Update: More Posts from Other Bloggers

Other bloggers have chimed in with their thoughts on Access:

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

MCM Prep Week: Prerequisite Reading

The Microsoft Certified Master program has a prerequisite reading list – things you need to read before you start the training.  I’ve started an MCM reading list wiki on SQLServerPedia with summaries, sort of like a Cliff’s Notes guide in an effort to help guide studying efforts.  Early on in my studies, I was surprised by something.

There are no books in the reading list.

In fact, not one thing on the reading list costs anything at all.  Guess what’s on the list, other than Microsoft-sanctioned whitepapers?

Blogs!

You Can’t Get the MCM Without Reading Blogs

Moments later, she was shot by Paul Randal.

Moments later, she was shot by Paul Randal.

But wait – there’s more.  Some of the links aren’t specific blog posts – they’re links to blog archives, like the Paul Randal’s IO Subsystems blog category.  The MCM team is telling candidates, “Paul might write more articles on this topic long after this reading list is published, and you should read those too.”  You can’t just glance at the blog once and be done with it – you have to subscribe to that category.

I find this so interesting because it’s such a shift from past Microsoft training programs.  Back in 1999, I remember going to the bookstore to get my copy of the MCSE exam training manuals, spending months reading up and studying, and then taking the test.  In order for this scenario to work, though, the following things have to happen more or less in order:

  • The SQL Server version features are more or less stabilized (not necessarily released, but at least stable to the point where you can start writing how the tests will work)
  • The certification tests are written
  • The training books are written
  • The training books are distributed to stores

All of these have to happen pretty quickly, but all of them take a long time.  The last 3 steps might take a year or more, and the training materials come down to a matter of author time.  If a paid author has the choice between writing:

  • Entry-level training material that will sell 100,000 copies
  • Senior-level training material that will sell 10,000 copies
  • Master-level training material that will sell 100 copies

Guess which one the paid author will choose?  Master-level training will bring up the rear.  (Unless, of course, the author isn’t doing it for the money – more on that in a second.)

This wasn’t as big of a problem back when SQL Server spent years between each version, like between 2000 and 2005, but it can’t work now with the faster release cycles.  I’m shooting to join the SQL 2008 Master certification program in March/April, yet the next version of SQL Server is already slated for the first half of this year!  Will the MCM team be able to update their reading materials, testing materials, and get them to the candidates in time?  Not with traditional paid publishing methods.  They’re too slow.

Enter the blogosphere.  Paul Randal’s blog is indispensable if you want to dive deeply into the SQL Server engine, and it’s free.  Paul doesn’t write to make money directly off his blog; he makes money indirectly through consulting.

The way we dispense knowledge is changing, and I’m excited that Microsoft acknowledges that with their MCM program.

The Dark Side: Reading Blog Archives Quickly Sucks

Blogs are not the easiest thing to consume in mass quantity, and it’s even tougher when you’ve got a deadline like an upcoming MCM training session.  Some of the MCM reading links are category archive pages that only have snippets of each post.  Since I wanted to study on a cruise ship, this meant clicking each post individually and saving it as an HTML file for later consumption.  Forget trying to do this on a Kindle or an iPhone.

Blog posts rarely have logical progressions from one to the next, either.  I ended up reading lots of posts on lots of topics in no apparent order.  Books have luxurious tables of contents, segues between chapters, and a nice start-to-finish mentality, and I miss that when I have to consume a lot of blog posts.  One fix might be building an MCM reading list that puts all of the information in a logical order and segues between items, but that takes editorial work and time.  We just recognized that we don’t have time anymore between SQL Server releases, so there goes that idea.

PASS Email Newsletter

PASS Email Newsletter

The Bright Side: Reading Blogs Gradually is Easy

Start your MCM training today: read harder-to-understand blogs.

No, seriously.  If you like managing database servers, subscribe to Paul Randal’s RSS feed or read it directly at his site.  If parts (or whole entries) go over your head, take a deep breath, and reread it again.  You don’t have to absorb it, but start exposing yourself to challengingly difficult material and get out of your comfort zone.  It’s easier to tackle technical blog entries because they’re just not that long, and you can leave comments to get clarification from the author directly.

Don’t like to read?  Confused by all those pesky consonants and vowels?  Sign up for a free membership at the Professional Association for SQL Server, and you’ll get a weekly email that recaps all of the upcoming free online training events.  Every month, you’ll have at least half a dozen virtual events to choose from covering all kinds of SQL Server topics.

You probably won’t have a practical use for the content right away, but here’s the ironic part – you won’t have a use for it until you know it.  Very few people really need to use this stuff on a daily basis, but once you know it, you can get a dramatically better job.  Ideally, you get the kind of job that sends you to Microsoft Certified Master training….

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

MCM Prep Week: Interview with Joe Sack

As one of the bloggers behind The Master Blog, Joe Sack is a public face for the SQL MCM program.  Joe also blogs at MSDN, and he manages the SQL MCM prerequisite reading list.  The MCM program isn’t even his “day job” – he’s also a Senior Premier Field Engineer, which means he sees a lot of high-end SQL Server challenges.  I emailed Joe to ask him a few questions about the program.

Brent: I hear Microsoft really encourages employees to move around and grow in the company.  Out of all the opportunities available to you inside Microsoft, why did you choose to work on the Microsoft Certified Master program?

Joe Sack

Joe Sack

Joe: Microsoft does indeed provide plenty of opportunities to move around; however my situation is a little different because I am based in Minnesota. Since Minnesota is decidedly my home and most jobs are in Washington – I have to look for creative ways to participate in projects from afar.

How did I get involved with SQL MCM? I attended the very first SQL MCM program in 2006 (back when it used to be called the “SQL Ranger” program) – and later on I participated in the team that launched the SQL Server 2008 MCM program.  When the previous SQL MCM Program Manager Ken Tanner got a new job last year, there was an opportunity for me to help out.  I couldn’t displace my “day job” though (I’m still a full time onsite support engineer), so we decided it would be best to have a job-share situation with another original SQL MCM, David Ikeda (from Microsoft Consulting Services).  We work really well together – and we tag team seamlessly.  David will be covering the upcoming March training rotation, and I’ll be covering the May training rotation.

Although it’s quite a bit of extra work on top of my day job – I appreciate the chance to meet new people and feel connected to a community. Between 2002 and 2008 my side project time was always invested in book projects – but moving forward I’m more interested in extroverted activities like this.

Brent: Who’s a good MCM candidate?  If someone’s out there reading this right now (don’t laugh, it’s possible – my mom tells her friends about my blog) and they’re thinking, “I could never be an MCM,” who should consider throwing their hat in the ring?

Joe: Aside from the requested prerequisites (years of experience, MCITP certifications) – I look for signs of a preoccupation with SQL Server.  I could use the word “passionate” – but that word annoys me slightly.  I think someone who reads SQL Server Magazine in the bathtub, or read SQL Server MVP Deep Dives on a cruise ship has a good chance of succeeding in the program.  You’ve got to really be interested in SQL Server in order to survive this intensive process.

Experience is also paramount.  What do you do? What have you done?  I don’t pay attention to job titles at all.  Ideally an incoming SQL MCM candidate has both something to learn and something to teach. I also want to be clear that you don’t need to be a famous speaker, published author, MVP, etc in order to become an MCM.  If you are quietly doing amazing things with SQL Server – I want to see you in the program.

Brent: You must have met a lot of people doing a lot of amazing things as part of the MCM application process, then.  What kinds of SQL Server achievements raise your eyebrows these days?

Joe: I like to hear about when people design or deploy “multi-jointed” solutions (a term I just made up – but meaning that I like to see creative or interesting applications of various SQL Server features used to solve a specific business need or problem).

I’m also impressed by concrete project examples establishing your ability to get results.  For example – let’s say you have an application that is processing 2,500 transactions per second, and you were asked to double that.  Did you do it?  And if so, how did you do it?

If your solutions are simple and elegant, that’s great too.  Tell us about it when you apply for the program.

Brent: For those out there who think they don’t have quite enough experience yet, but they’re aiming for it in 2011, what would you suggest they focus on?  Are there certain areas of experience that seem to pay off well for future MCMs?

Joe: If someone were aiming for 2011, I’d recommend they start going through the pre-reading list and try to get as much hands on experience as possible on the subjects they read about.  As a SQL Server professional, this is good advice whether or not you ultimately pursue MCM.  Today we have SQL MCMs across a variety of job roles – but I would say that those who have direct experience on both the DBA and SQL Dev side seem to do very well in the program.  SQL MCM is pretty flexible in how you gained your experience – across job roles.

Then there is the Microsoft Certified Architect program – which is a different discussion altogether.  The SQL MCA cert requires that you be a practicing architect in your current role (and have been a practicing architect for a few years).  SQL MCM is a prerequisite to SQL MCA – and in that case we require other skills related to business acumen.  If you’re interested in learning more about MCA someday – I’ll loop you in with David Ikeda to discuss.

Brent: Congrats on reaching 12 non-Microsoft people in the SQL MCM list!  I always used to say that more people have walked on the moon than achieved the SQL MCM, but now it’s a tie.  I gotta ask, though – what’s the pass rate for non-Microsoft employees?

Joe: Thanks – and I really want these numbers to keep increasing at an accelerated rate.  I want to expand our non-Microsoft MCM numbers, because that’s the point, right? If your business depends on a complex implementation of SQL Server – we want to make sure you have someone you can trust.   Part of the drive behind this certification is to provide another means of validation.  I want people to say “this person is a SQL MCM, so I know I can depend on her”.  As a support professional, I personally appreciate the value of people making good decisions in the early stages of a project and doing things correctly the first time.

As for the pass rate for non-Microsoft people – I pulled some approximate numbers – and as of today we are at a 65% pass rate for non-Microsoft people.  This number continues to get higher as people retake exams.  It is my job during these training rotations to set people up for success (without lowering the bar though).  People are accepted into this program who have the potential to pass – otherwise it just wouldn’t be a good thing.  Some rotations have a low initial pass rate, but after a few months of retakes, the pass rates increase significantly.

Brent: When people don’t pass, what do you think the biggest reasons have been?  Is it a lack of preparation, a lack of focus, a lack of experience, or something else?

Joe: Here are the common patterns I’ve witnessed and also heard about from my predecessors:

Fantastic candidates who don’t “test well”.  Most people haven’t taken a six hour hands-on qualification lab before. The good news? For these folks, retake success rates are high.

Cumulative Stress and keeping too much of an eye on “the prize”. Sometimes the stress of the experience causes unnecessary mistakes on the exams or labs.  People get so wrapped up in succeeding that they don’t focus on what is presently in front of them. If you spend your three weeks obsessed over achieving the certification, or you’re upset about failing the first exam, you’ll be missing out on the full experience and your performance will continue to suffer.

Getting stuck.  One key tip I gave in the last rotation is – if you get stuck – keep moving and re-route! Moving ahead or re-routing your efforts may be the difference between pass and fail.  I think this isn’t just an exam testing skill – but also a good life skill.

Preparation. Our second week of the training is often the most unpleasant for candidates because it really pushes them out of their comfort zones (for example – coverage of CLR, XML, ADO concepts).  The pre-reading list is very important to go through if you can.  It is a long list – but chances are you’ve read many of the items we have listed.  The pre-reading list is your friend.

Brent: People complain that the MCM is too expensive.  When I turn around and compare it to traditional MCSE boot camps that cost $5,000 for a week, the MCM doesn’t seem that expensive at all – especially when I look at the quality of instructors.  At the current discounts, it looks like an absolute bargain – it’s not much more than a one-week boot camp.  (Not really a question, just putting it out there.)

Joe: I appreciate the comment.  Right now the program fee is just enough to keep things running.  I think even if it were free, some people who make their living on billable hours would object to the “opportunity costs” of the three week timeline (and having been an independent consultant in the past – I understand).  I think if you’re in that situation, you may consider what MCM could mean to one’s billable rate after the training.  No guarantees – but I think it could only help you.

Brent: The three weeks of downtime for consultants is indeed significant.  When it comes time for renewal, when new versions of SQL Server come out, what’s the MCM upgrade process like?  How much work does an MCM have to put into upgrading their certification to, say, SQL Server 2008 R2?

Joe: We determine the upgrade path based on the nature of each new version.  For the move from SQL MCM 2005 to SQL MCM 2008, we determined that it was sufficient to give a six hour hands on upgrade lab.  Our next version of MCM will be for the next major version (after SQL Server 2008 R2).

We won’t be doing any major changes to the program until this next version after SQL Server 2008 R2 is released.  At that time, we’ll figure out the fairest upgrade path (could be one exam and one lab, or just one lab).  No matter what – the MCM will not be required to attend another rotation (unless they want to).   We do require that MCMs keep up to date though.  So our SQL 2005 MCMs must upgrade to SQL 2008 MCM before upgrading to SQL vNext MCM.  We’ll provide the MCMs with access to the current MCM course content and then when the MCM is ready, we remotely proctor the exam over web cam and a Live Meeting Session.

Brent: One of my big frustrations with Microsoft certs is that the mix of test questions feels totally off.  The vast, vast majority of SQL Server implementations don’t use Service Broker or XML, for example, yet the certification exams seem to focus an awful lot of time on those topics.  Do you feel that the MCM training is more (or less) representative of real-world SQL Server use than the other MS certs?

Joe: I do feel that the MCM training is “real world” – but we also have a responsibility to be holistic too.  Much of the content is 400-level, but depending on the subject, not always.  For example, the next rotation will be injecting some discussion of SQL Server 2008 R2 features, but since these features are so new we don’t expect people to be subject matter experts.  Our program has to be both pragmatic in our depth and comprehensive in our coverage.

Brent: Doing a version 1.0 of anything is always a learning experience.  Since launching the MCM, what feedback have you adopted from attendees to change the program?

Joe: Each training rotation evolves. We administer surveys every day (so much that we get feedback on how much we ask for feedback) and we apply our feedback to future rotations. From rotation to rotation we adjust content, drop subjects that aren’t deep enough, add subjects that are timely, and deepen existing topics when possible.  I also heard feedback about how the training days were too long – so in the latest rotation I made sure that we gave more study time and ended class on time for the majority of the instruction days.  After that – we figured out we could have stuffed more content in – so we’ll adjust again in March.  So we do listen to the feedback and will continue to keep making adjustments for every single rotation.

Brent: Interesting about the surveys – how does Microsoft gauge success of the MCM program?  What’s the end goal for Microsoft?

Joe:  The program mission is to provide top tier training and the most advanced certification available for SQL Server for the benefit of building a community of trusted experts who successfully address the most complex customer requirements.   Success for our training program is measured via the feedback that we receive from candidates – but the bigger picture of success means that we have more trusted experts “out there” doing things correctly the first time.  Successful implementation of SQL Server is good for our customers and good for Microsoft.

Brent: One of the benefits touted by the MCM program is being able to call on the MCM community for answers.  How is this different than, say, the MVP program?

Joe: The big difference – our community is smaller and relatively new. The MVP community is large and very established.  MVP grants awards annually and is not a certification.  MCM is a certification and is product version dependent (in the case of SQL MCM) and we provide upgrade paths for it. The SQL MCM community value is still growing – and it will take ongoing care and attention to make sure that we continue to cultivate it.  I hope that our community overlaps with MVP community too – as there are many MVPs that I would love to see become MCMs as well.

Brent: How do MCMs interact with each other?  Please, for the love of God, tell me it’s not an NNTP server.

Joe: We have a set of email distribution lists that MCMs are added to upon certification – and they can (and do) use it communicate with one another.  I “haunt” these DLs and make sure that most questions get answered, and when not, see if there are opportunities to forward to the SQL dev or the SQL CAT team.

We also have monthly education sessions which are a great way to connect with our product team.  Once a month (or sometimes twice) I schedule a Live Meeting session – asking a SQL Program Manager or Developer to talk about something interesting.  The MCMs can ask questions – and it is also an opportunity to give feedback directly to someone who can actually do something about it.

Brent: When I talk to MVPs about the MCM program, it seems like the universal reply is, “Microsoft needs to fix the MCITP program and make a real production DBA certification based on experience.”  The MCM is only seen as something for consultants, not real-world DBAs.  I know it’s not your program, and I know you’re bound by NDAs so tightly that Microsoft will sue you just for thinking about your answer to this question, but do you have any thoughts about it?

Joe: Let me address the feedback that MCM is not for the “real-world DBA”.  I believe that “real-world” DBAs need to know about high availability, disaster recovery, performance-tuning, storage, security, manageability, and data distribution technologies. The SQL MCM program trains, tests, and validates these areas.  Let’s say you are the Lead DBA for a Fortune 500 company and you support a SQL Server environment that would cost the company millions of dollars if something went wrong.  As that Lead DBA’s employer or manager, anything I could do to bolster that person’s skills would be worth the investment of time and money so that I could sleep at night. I’m not saying that MCM is the only factor – experience is king. But after experience, I pay attention to signs of that person’s drive.  If I saw MCM on your resume, this would be further validation of your capabilities. SQL MCM holds weight because there are no shortcuts to getting it – you’ve got to put your time in.

Brent: That’s an interesting point.  So for the DBAs out there who might be interested in applying, but they’re afraid their boss will say no, how would you help justify the program?  Is there somewhere DBAs can go to get help “selling” their bosses on paying for the MCM and giving them the time?

Joe: If I were selling this to my organization, I would first try to link the mission critical needs of my company with the necessity for ongoing training and cultivation of the company’s technical leaders.  Per my earlier example – how much would it cost the company if there was a major issue in their SQL Server environment?  Now compare that to the cost of certification and training.

I would also recommend laying out a full description of the program (in person – or whatever media is most effective in your organization) so that you can make sure they get an accurate picture of the program.  We have the MCM: Microsoft SQL Server 2008 datasheet – if your manager likes glossy marketing materials.

As for detailing benefits – we also have a few testimonials on The Master Blog which may be helpful (from SQL and other MCM programs):

Testimonial from a SQL MCM (who doesn’t work for Microsoft)

Testimonial #2 from a SQL MCM (who doesn’t work for Microsoft)

ROI from MCM: A look back 6 months later.

MCM Directory ROI from a Student Perspective

And if all else fails, don’t be afraid to send me an email and see if I can help!

I’d like to thank Joe for taking the time to answer my questions and offering to answer yours too.  In tomorrow’s post, I’ll talk about something I really like about the SQL MCM reading list, something I think is changing the way certifications work.

Continue to My Thoughts on the MCM Reading List

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

MCM Prep Week: Microsoft Exams 70-433 and 70-451

A few weeks ago, I glowed about how much I thought the MCITP exams had improved since the old braindump days.  I had a really good experience with the 70-432 and 70-450 exams on SQL Server database administration, and I was happy that the exams focused on good decisions, not mindless memorization of syntax.

Now, about the 70-433 and 70-451 exams for SQL Server database developers….

I’m totally bummed out.

Just Because You Can….

The exams were a syntax-fest that focused on features that, quite frankly, I don’t want my SQL Server developers ever using, let alone memorizing.

XMLambada - The Other Forbidden Dance

XMLambada - The Other Forbidden Dance

Need to shred XML on a regular basis?  I’d like to introduce you to a spiffy concept: application servers.  Get your CPU-intensive queries the hell off my SQL Server, because Enterprise Edition costs $30,000 per socket.  Do your XML processing on an app server that costs less to maintain and that scales easier.  What’s that, you say?  You desperately need to access it often and quickly in day-to-day queries?  Here’s another novel concept: store it natively as relational data.  Other developers, views, stored procs, and reports will be able to access it without doing the XMLambada.

Storing XML in the database is a crutch for a bad schema design.  If you like regularly querying XML columns in the database, you’ll probably love the NoSQL movement.  (Let me know how that works out for you.  (On second thought, don’t.))

I half-expected the next question to ask about the new scissors designed with pistol grips so that they’re easier to run with.  This is probably a personal gripe on my part about some of SQL Server’s new features lately, not the exam, but it felt like the exam focused a little too much on things I’d rather not see in production.

Where are the questions asking when it’s appropriate to use cursors?  Triggers?  UDFs?  Don’t tell me that good SQL developers already know this stuff, because I see way too many people abusing features that come back to haunt them later.

What’s the Best Way to Punch Yourself in the Junk?

Several times, I read the question, shook my head, and wanted to meet the person who wrote the question.  They must be wearing an armor-plated codpiece.  I can’t repeat the questions here since the test involves an NDA, but here’s one I made up:

In your high-volume, mission-critical database, you need to create a series of nested triggers to call web services hosted in South Africa when any record is inserted.  Which of the following commands will work best:

I’ve got your command right here, and it starts with UPDATE dbo.Employees SET IsActive = 0 WHERE LastName = ‘Ozar’.  Reading questions like this, I wanted to run to the bathroom for some Calgon soap.  Here’s another made-up question:

You’re a database developer and all of your queries against a certain table are slow.  Should you create a new index, update the statistics, force a query execution plan, or use an index hint?

None of the above – you should get a DBA involved.  Forcing a fix for one table or one query at the developer level is a really bad idea.  Zoom out, get more information about the bigger picture, and avoid making hard-coded problems for yourself down the road.  Forcing a query to use a specific index makes the DBA’s life hell, because he can’t do big-picture performance tuning.  He might add or remove indexes at the database level to make overall performance better, but your query won’t improve.

The more questions I answered, the more I started to understand the mindset of some of the shops where I’ve done performance tuning.  So often, I’ve walked in, taken a look at the environment, and said, “Yes, this will technically work, but it won’t scale.  We need to take a step back and ask why the application is trying to (insert crazy feature here) hundreds of times per second.  Let’s look at the business need behind what we’re doing, and find the most efficient way of accomplishing that goal, because this isn’t it.”  During the exam, I found myself arguing with the screen because sometimes, all of the answers were bad ideas or jumped to conclusions too quickly.

How to Ignore Distracting Information

What are you looking at? The question is over there.

What are you looking at? The question is over there.

Question: Some people are Republicans, some people are Democrats, and some are independent.  Independence doesn’t mean that they’re financially successful like a pop star or a CEO – it just means they haven’t made up their political mind.  Which of the following people live in Illinois?

  1. Barack Obama, 1600 Pennsylvania Ave, Washington, DC
  2. Brent Ozar, 1845 S. Michigan Ave, Chicago, IL
  3. Lady Gaga, 3 Legs Drive, New York City, NY
  4. Steve Jobs, 2108 Waverly St, Palo Alto, CA

Some tests bombard you with unrelated information in an attempt to confuse you.  It’s a lot like working with a junior project manager who just found the fridge with the free Red Bull.

Anytime a question has more than one sentence in it, I use the same technique I use to handle work emails.  I jump down to the last sentence, read it, and then decide whether I have any real work to do.  In the example above, the last sentence asks, “Which of the following people live in Illinois?”  I would scan quickly through the answers, rule out anyone who doesn’t live in Illinois, and that’s my answer.

If more than one answer matches, then I scan back through the question very quickly looking for the additional criteria, but at that point it’s easier because I’ve already ruled out half of the answers.

So anyway, I passed, but until the score screens came up, I was positively convinced I failed.  Want to take an exam yourself?  Microsoft is running a “second shot” promotion – fail an exam, and you get a free retake.  Read the details here.

Continue to My Interview with Joe Sack

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

MCM Prep Week: What is a Microsoft Certified Master?

This week I’m focusing on the Microsoft Certified Master program.  I’m making a run at the MCM certification for SQL Server 2008, and from the outside, the whole thing looks pretty overwhelming.

How do Microsoft certifications work?

Microsoft exams are about $125, and people usually self-study for them if they’re knocking out exams one at a time.  When you pass any one exam, you become a Microsoft Certified Professional (MCP).  That one designation by itself doesn’t hold much weight.

Microsoft has designed several groups of exams that roughly line up to job descriptions.  If you take the 70-432 exam (SQL 2008 database implementation) and the 70-450 exam (designing and maintaining a database), then you’ve earned the right to call yourself a Microsoft Certified IT Professional (MCITP) for SQL Server 2008 database administration.  How hard are these exams?  Well, there’s been some debate in the past about whether you really need experience in order to pass the tests.

Training companies offer boot camps; in a single week of long-working days, trainers cram attendees’ brains with everything they need to pass the tests, plus they take the tests that same week.  Attendees don’t need experience working with the certification subject areas – they just need general experience working with SQL Server in some related area, like programmer, network administrator, or junior DBA.  They’re basically taking a week off and writing a $5,000 check to get their MCITP.

The controversy comes in when you start to ask whether a certification from a boot camp really means anything.  I’ve worked with boot-camp DBAs in the past, and within a month of the training, they’ve forgotten most of what they learned.  Is the attendee just writing a check for their certification, or are they getting a training value too?  If they truly wanted training, a crash-course boot-camp covering the entire MCITP subject spectrum is a pretty bad way to do it.

What’s the Microsoft Certified Master program?

It’s a three-week on-site program in Seattle that costs $18,500 (hotel, meals, airfare, vacation time not included).  Microsoft staff and highly-regarded outsiders (Adam Machanic, Greg Low, Kimberly Tripp, Paul Randal, etc.) train attendees on really advanced topics that they probably haven’t worked with in that depth before.  During the event, attendees take a series of tests, and if they pass ‘em all, they’re a Microsoft Certified Master.

Wait – isn’t that a boot camp?

The MCM Program - Turning It All The Way Up

The MCM Program - Turning It All The Way Up

No, no, it’s different.  This one goes up to 11.

Okay, you caught me.  From the outside, the MCM program’s mashup of training and tests looks an awful lot like a boot camp, but there’s a few key differences.

The boot camp application process consists of writing a check, whereas the Microsoft Certified Master program has a rather hefty list of prerequisites:

  • You must hold MCITP certifications for both SQL Server 2008 database developer and database administrator
  • One page document detailing a project you’ve contributed to, with details about your role and your contributions
  • One document you’ve authored demonstrating your deep knowledge of SQL Server
  • 5 years of experience installing, configuring, and troubleshooting SQL Server 7.0 or newer, plus at least a year with SQL 2005 or newer
  • Thorough understanding of SQL Server design, architecture, OLTP, HA, DR, tuning, storage, security, etc

The MCM leads review the applications and give you the thumbs up or down, but unlike boot camps, simply getting in the door isn’t a guarantee that you’ll get certified.  Check out the list of SQL 2008 Masters, and count the number of people who don’t show “Microsoft” as their employer.  As of this writing, more people have walked on the moon than non-MS folks have achieved a SQL 2008 MCM.

It’s expensive, and the odds are stacked against you.

So why on Earth – or the moon – is Quest sending you?

My talented and gracious employer, Quest Software, builds a lot of software for – and with – SQL Server. We’ve got stuff to back up SQL Server, to make SQL Server go faster, to develop SQL Server stuff easier, to monitor SQL Server, stuff for SharePoint’s SQL Server databases, and more.  Even our non-database software ties into SQL Server, because many of our products store data in SQL Server repositories.  We’ve got a few thousand employees, many of which are tied to SQL Server in one way or another.  (Our expense reports are done in Oracle, but I’m working on that.)

Since coming to work here, I’ve been totally blown away by the complexity of the SQL Server questions, like:

  • Is there a way to get DMV information back faster?  Some DMVs take too long.  (And I’m not talking about the index ones either.)
  • Can we track what’s fragmenting the virtual address space?
  • <NDA> (Well, I can’t tell you some of ‘em!)

The more we know about SQL Server, the better our software gets.  We sell more licenses, we take less support calls, and we do things our competitors can’t.  Consulting companies are sending people to get their MCM for the same reasons – they want an edge in the market that will help ‘em close more deals, raise their hourly rates, and support clients better.

Yeah, but why is Quest sending YOU?

I know, right?  It’s bizarre.  We have a company chock full of people who really, really know SQL Server, and somehow I got lucky on this one.  Here’s the answers I came up with:

  • Everybody else was too valuable to be out of the office for 3 weeks
  • They got tired of me blogging about Lady Gaga and the Slap Chop
  • All those edible bouquets I sent my boss Christian finally paid off

Okay, maybe there’s another reason: I blog, write, and present.  Because I put myself out there, Quest gets twice the bang for the buck.  They get marketing value out of sending me because I’ll be blogging about the process and how it ties back to things I can do at Quest. Whether you’re a consultant or an employee, part of the value of the MCM is the value your clients perceive, and how much they’re willing to pay for it.  The more visible you are, the more you can leverage your image to get the company to invest in you.  I know I say this a lot, but if you want to get ahead long-term, you need to be blogging, presenting, and writing.  The blogging part will tie into another entry later this week about the MCM process, too.  Even if you don’t work for a software vendor or a consulting company, you’d be surprised by how excited your company executives get when their employees are featured in publications for their achievements.

Another reason is that I’ve chosen to keep my career on the technical side rather than the management side.  I’ve dabbled enough in management to know that I suck at it, and that I really don’t enjoy working on those skills.  I’d rather dive into something technical and make bits jump thr0ugh hoops.  I think of the Microsoft Certified Master program as a PhD for modern geeks.

In tomorrow’s entry about the MCM, I’m going to vent about one of the prerequisites for applying to the MCM program: the 70-433 and 70-451 exams.

Continue to My Thoughts on the Microsoft DB Dev Exams

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Why You Might Want to Buy SQL Server 2008 Now

When SQL Server 2008 came out, I heard a lot of grumbling at PASS from production DBAs.  They didn’t like the focus on business intelligence, and they felt like there wasn’t enough meat on the bones to solve real-world production problems.

When SQL Azure came out, they grumbled more.  Developers love Azure because they can use SQL Server without talking to database administrators.  DBAs dislike Azure because it circumvents the security, disaster recovery, and tuning features we’ve got in the real thing.

For the record, whining does NOT cause blisters.

For the record, whining does NOT cause blisters.

SQL Server 2008 R2 comes out in May, and I’m stocking up on earplugs.  Glenn Berry sums it up well in his post about the three SQL Server 2008 R2 engine improvements:

“SQL Server 2008 R2 has been primarily focused on enhancements in the BI area to support the upcoming releases of Office 2010 and SharePoint 2010. This left precious little development resources to devote to improvements to the basic relational database engine in SQL Server 2008.”

The three improvements in R2′s engine are support for >64 cores, unicode compression, and improvements to concurrency in high volume situations. That’s it. Read it again if it makes you feel better, or read it backwards and pretend there’s another three, ‘cuz that’s all you’re gonna get.

SQL Server Licensing for Virtual Environments

It gets worse – R2′s licensing has an ugly change for shops who use virtualization.  Right now, if you buy SQL Server 2008 Enterprise Edition now by the CPU, you get unlimited virtualization rights.  If you’ve got a 4-socket virtual host and you buy 4 sockets of Enterprise Edition, you can run as many SQL Servers on that host as you want.  From Microsoft’s SQL Server 2008 Licensing Guide:

“For enterprise edition there is an added option: if all physical processors in a machine have been licensed, then you may run unlimited instances of SQL server 2008 in one physical and an unlimited number of virtual operating environments on that same machine.”

You may not be running SQL Server widely in virtualization environments yet, but ask yourself how many SQL Server 2000 and 2005 instances you’re running today.  SQL Server doesn’t just go away – the instances you install today will still be in production for years to come.  They might not be virtualized today, but they’re gonna be virtual years from now, and today’s licensing saves you a fortune.

Microsoft sees that coming, and they’re changing it in R2.  Review the SQL Server 2008 R2 Editions PDF and you’ll find that R2 Enterprise Edition doesn’t come with unlimited virtualization.  To get that feature, you have to spring for the new Datacenter Edition, which costs around $60k per CPU socket.

Buy Now, Upgrade Later

If I was a DBA with a budget to buy SQL Server licenses this year, I’d make that purchase now.  In May, Enterprise Edition’s price is going up, and it will have less licensed features.  I’d buy it with Software Assurance anyway, so I’ll get R2′s new features if I want them.  If I didn’t want those new features, I’d still have the flexibility of running unlimited SQL Server 2008 instances in virtualization.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Things I Read This Week

Just a fancypants name for a linkpost.  I originally scheduled a Fusion-IO drive review to go live today, but I’m still working with them to iron out some issues, so that’ll come the week after next.  Next week, I’m covering the Microsoft Certified Master program.

Using Perfmon to Capture VMware Host Statistics – I haven’t tried this yet myself, but it looks awesome.  I’d love to be able to capture Perfmon stats for my database servers and include the host’s usage levels too.  If anybody’s used this, let me know.

Removing Columns Doesn’t Decrease Table Size – I read the title and I thought Michael Swart was pulling my leg.  The fact that I learned something by reading this makes me think I’m not ready for the MCM program.  I have moments like this whenever I read a bunch of blog posts in one sitting, and I’m glad Michael blogged this.

Presentation Zen: Storytelling Tips from Ira Glass – this guy hosts a really compelling storytelling show on NPR that might just be the best thing on the radio.  Just reading the article title alone made me say, “Wow, I know where my presentations are going next.”

Bob Duffy’s Thoughts on the MCM Training – back when it was called the Ranger program, Duffy took a moment mid-course to blog about the experience.

Stephen Fosketts on Vendor Blogs – I work for a vendor, but I never stopped to think about whether people might consider my blog to be Quest-sponsored propaganda.  I’m pretty hardcore about transparency, and I’d never dream of being anybody’s sock puppet.  Stephen’s excellent series made me stop to think about how I portray myself and my content, and it made me realize that I have to do better.  I know I’m not misleading anybody about anything, but if a stranger walks into this blog, how do they know I’m not a typical vendor blogger?  I gotta work on that.

PASS Acquires SQLSaturday – okay, see, here’s where I have to do a good job of telling you what I think as a community member versus what I think as a vendor.

  • Brent the SQL guy says: “This is great!  Now there’s a logical progression to events: we have monthly local events, yearly regional events throughout the year (SQLSaturdays), and a couple of big continental Summits (Seattle & Europe).  The local events can promote SQLSaturdays, and they can all promote the Summits!  HQ will give SQLSaturdays the support they really needed right?  Plus, vendors have just one touch point to sponsor everything in the US SQL community.”
  • Brent the vendor guy says: “PASS keeps telling me HQ is overworked, and now they have to manage SQLSaturdays too?  Local chapters were already promoting SQLSaturdays anyway.  The PASS organization already failed at promoting regional events with the Community Connections program that you probably didn’t even know existed, and there’s the problem.  What’s going to be different here?  And about that one touch point – we still have to talk to every local chapter who wants money, because money doesn’t flow down evenly to the local chapters.  We’re still going to be writing all kinds of checks.”
  • Brent’s consensus says: “The reason SQLSaturdays succeeded was Andy Warren, Brian Knight, and Steve Jones.  These guys have consistently been able to kick start amazing things and hand it off to other people once it’s up and running.  This might work, but it’s up to PASS now to prove it.”

Kevin Kline’s Lifetime PASSion Award – gotta clarify this one too, since Kevin and I are coworkers at Quest:

  • Brent the SQL guy says: “Kevin is absolutely, without a doubt, the most friendly and humble community member I have ever met, and he deserves this award and so much more.”
  • Brent the vendor guy says: “Kevin is absolutely, without a doubt, the most friendly and humble coworker I have ever met, and he deserves this award and so much more.”

PowerPivot Cookery – Andrew Fryer explains PowerPivot by cooking a meal and cleaning up afterwards.  Watch this for two reasons – one, you’ll learn PowerPivot, and two, the built-in links inside the video are really compelling.  This one video made me rethink the way I deliver video at SQLServerPedia, and we’re starting to move to YouTube.

Penny Arcade exposes the life of QA testers – yep, it’s pretty much like this.  Safe for work.

The Cranky PM exposes bloatware – yep, working at Quest, it’s pretty much like this too.  “We can’t get rid of that feature!  Someone, somewhere might be using it!”  This is how we end up with Toad’s infamous options screen that actually has a search box because there’s so many options.  (I’m not sure whether that was coming from Brent the SQL guy, Brent the vendor guy, or both.)

Use One Login to Run DMV Queries – empower your junior DBAs and developers to query DMVs that would normally require a higher level of permissions.

Which Media Center is Right for You? – in-depth comparison on Lifehacker between Boxee, Windows, and XMBC.  They didn’t include Apple TV, and they shouldn’t.  I’m an Apple fanboy, and I do own an Apple TV, but lemme tell you that it is one seriously niche product.  It’s delightfully easy to use, but like many of Apple’s products, it doesn’t do everything the competition does.  If you want the absolute easiest way to rent videos, play music, and show photos, and if you organize your stuff with iTunes and iPhoto, then there’s a chance you’ll like the Apple TV.  I’ve got a bunch of AV gear, but when we want to watch movies, we inevitably end up using the Apple TV because it’s just so gosh-darned easy to use.

Paul Randal’s Doing Performance Testing – if you’re interested in how he tests table loads and what he looks at for performance metrics, you’ll enjoy this series.

Why the iPad Isn’t Good for Browsing – I died laughing when I saw this.  The author is trying to say that the iPad sucks because it doesn’t have Flash, and golly, without Flash, look at all the web sites that won’t render!  Unfortunately, that post backfires – look at the sites he’s using as evidence.  Me personally, I *hate* sites that rely on Flash, and the sites he’s using are great examples of sites I abhor.  Flash is heavily abused in banner ads, games, and other crapware.  Farmville?  Seriously?  I’d pay NOT to see that.  (I do wish my iPhone and my upcoming iPad would do Flash though.)

T-SQL Random Sentence Generator – Awe. Some. Brad Schulz is a mad scientist.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Working With Recruiters

You’re mad as hell, and you’re not gonna take it anymore, so you decided to start looking for another job.  You put your resume on HotMonster, and within a matter of minutes, the calls from recruiters started pouring in.  Here’s what they’re going to ask, and how you should answer.

“Can you send me your resume?”

Your answer: “Yes.  What’s your email address?”

Have a nicely formatted Word doc with your resume ready to go at all times.  Right now, during the call, open a new email, type their email address in, attach the doc, and put your name in the subject.  Hit send.  Do not answer another question from the recruiter until you’ve hit send.  Don’t put anything fancy in the email body, don’t thank them for their time, just get your resume in their hands immediately.  You want them to read through it right away so that they can ask you any related questions while they’ve still got you on the line.

Don’t worry about what they’re going to do with the resume.  They’re going to stick it into their database and try to match you up with potential job opportunities.  If you match, they’ll call you up and ask for your approval to submit you for the job.

“What’s your current salary?”

Your answer: “I’m looking for a position in the $XX’s.  If the job has spectacular benefits – or none – we can adjust that number.”

Recruiters will follow up with, “Yes, but what are you making now?”  I can be a jerk sometimes, and I’ve been known to answer, “I’m getting paid really crappy wages, getting really crappy benefits, and doing way too much work, and that’s why I’m looking for a job.  If you wanna hook me up with another really crappy job, let’s just end this call now.  If you’d like to find me a job that I’d love to take, I’m looking for a position in the $XX’s.”

Tailor that answer to fit your (much more upbeat) personality.  If they keep asking for your current salary, there’s your sign.  I talked about this in my post about Salary Negotiations During the Interview.

“Can you make this change to your resume to match the job?”

Your answer: “Yes, as long as it’s honest.”

As a DBA, I did a lot of things in my day-to-day work.  When going after a particular job, a recruiter asked me to include my experience with using SQL Server Management Studio and installing SQL Server on local drives.  I hadn’t bothered to include that on my resume, because I figured every DBA does that – it comes with the territory.  The recruiter didn’t see it on my resume, and she wanted me to have the best shot possible at making a good first impression.  Good recruiter.

When going after another job, a recruiter asked me to say I had replication experience.  I didn’t.  She said, “Go fire up SQL Server, get the book out, set up replication once, and that’s all you need.  Trust me, you’ll learn on the job.”  If she was willing to lie to the company like that, then she’d be just as willing to lie to me.  Bad recruiter.

There’s a whole lot of gray area in between, and I can’t coach you on that.  Your mileage may vary.

“Can you come in for an interview?”

Your answer here depends on how bad you need another job.  If you need another job pretty badly, then yes, you need to go in to meet them, and you should bring a dozen roses.  On the other hand, if you’re happily employed and they’re trying to lure you into another gig, it’s up to you.  The recruiter might indeed have an amazing job for you, but that’s the exception rather than the norm.

Recruiters do want to meet you before they send you off to their trusted clients.  They don’t want to look bad for sending in a sloppily dressed mess who can’t string a sentence together without staring off into space.  I understand where they’re coming from, but at the same time, they don’t need to meet me if they don’t have a position available right now.  There’s one headhunter company that aggressively asks for face-to-face interviews without actually having any positions – they imply that they might have something, but they want to see you first.  They’re slimeballs, and they don’t respect your time.  It’s fair for you to protect yourself from those kinds of requests.

When I’m happily employed, my response is, “I’m not really looking right now, and I wouldn’t want to alienate my employer by sneaking off during work hours to meet with recruiters.  That would send my boss a really bad sign.  If you have something that sounds like a really good fit for me, go ahead and tell me about it now.  If it sounds really attractive, I’d be happy to meet you for lunch near my office, but let’s get the details out of the way first.”

“Are you working with any other recruiters?”

Your answer: “Yes, but I understand how the recruiting process works, and I commit to you that I will let you know whenever any recruiter tries to submit me at any company, no matter who it is.”

When Recruiters Meet

When Recruiters Meet

Recruiters make money – a lot of money – when they submit a candidate for a job, the candidate takes a job, and the candidate stays on the job for X months.  They make so much money that they will fight desperately for their fees.  If two recruiters submit the same person’s resume for a job at a company, the company may throw out the candidate altogether rather than deal with these cat-fighting recruiters.

Recruiters want you to work exclusively with them.  They’ll promise to work really hard for you, but they say you have to trust them and only work with them so that everybody’s protected.  But if you’re like me, you don’t know whether a recruiter has lots of connections or none.  I didn’t want to exclusively hook up with some junior recruiter who’d never placed anybody before. That’s why I wouldn’t stick with any one recruiter no matter how many beautiful promises they made me.  I talked more about this in my post, Recruiters are Not Your Friends or Your Enemies.

“Have you seen any positions out there that interest you?  I can get you in the door.”

Your answer: “I’ve just started looking, so I don’t know yet.  Have you seen any positions that are a fit for me?”

Recruiters have their own list of companies that they work with regularly.  When these companies need a person, they call their favorite headhunter first.  The bigger companies even have contracts directly with one specific recruiting company. Whenever a recruiter calls you, they know exactly what positions are available at their own clients, but they also want to submit you anywhere else that you might be interested.  They want to represent you everywhere, because they’ll make money off you no matter where they submit you.

If you get your foot in the door at a company, you can sometimes negotiate a signing bonus or a better salary if there’s not a recruiter involved.  This doesn’t always work – heck, it doesn’t even USUALLY work – but if you’ve got in-demand skills and a good business head, you can pull it off.  That’s one reason why you might want to submit yourself directly to companies that post jobs rather than asking your recruiter to submit your resume.

The recruiter will say they’ve got contacts inside the company – and they might.  They’ll say they’ll be able to push your resume to the top of the pile.  Even better, though, would be if you had your own contacts inside the company who can vouch for you personally.  This is why it’s so important for you to network, and I talked about that in my post on How to Get a Better Job.

“Can you send this job ad to your friends?”

Your answer: “Yes, as long as it includes a job description and a salary.”

If a recruiter’s desperate enough to ask for help from strangers, that means they’ve already exhausted their network.  Nobody in their network is interested in this particular job.  Maybe the demands are too high, maybe the salary is too low, or maybe the recruiter just flat out doesn’t have any friends.  All of those are danger signs.

Don’t simply forward bad jobs along to your friends.  Rather than having 10 people deal with a bad job, filter it out right away by asking for the job requirements and salary.  Most recruiters will balk, and that’s fine.  I talk more about this in my post about How to Reply to a Recruiter Email.

“If you pay me, I’ll work harder for you. Whaddya say?”

Your answer: “That sounds interesting. Can you give me some references from other people in my profession?”

There are good executive talent agencies out there at the C*O level.  You, my friend, are not at that level.  The techniques and contacts that executive agencies use to place their C*O friends won’t work to place their SQL friends.

If you’re still tempted, take the cost for this recruiter, think about how much time it would take you to make that money, and ask yourself what else you could do in that same time.  If it would take you 40 hours to make that money, why not take those same 40 hours and:

  • Give a presentation at your local user group
  • Write an article for a SQL Server web site like MSSQLTips or SQLServerCentral
  • Write a guest post for someone’s blog or do a podcast with them

All of those things will get you more exposure to the SQL Server community than hiring a talent agency, which brings me to my final point.

If you’re looking for a job, tell your trusted friends.

The SQL Server community members know what it’s like to look for a job, and they know other people who might be hiring.  They are your fastest route to a good job.  They’ll put your resume on the top of the pile, or better yet, you’ll be the only resume in the pile.  When you’re good, and when your peers know you’re good, they’ll create positions for you or they’ll sneak you right in without going through a whole public process.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Salary Negotations During the Interview

On Twitter, Pat Wright posed a question:

Dangerous Interview Question

Dangerous Interview Question

My answer: it depends.  (Hey, I’m a DBA, right? Isn’t that always the answer?)  My favorite salary negotiation book recommends postponing the salary question as late as possible during the hiring process, but I don’t think that’s realistic.  I don’t go house shopping without looking at prices.

How to Give Your Salary During the Interview

When you’re desperate to get out of a bad job, you have to play ball.  They’ve got something you want.  You shouldn’t lie, but you shouldn’t give them an exact dollar amount, either:

“My current salary is in the seventies, but that’s part of the reason why I’m looking for other opportunities.  My current company doesn’t offer a competitive salary, doesn’t pay for training, and doesn’t share on-call rotations.  It’s a great place to get started and prove yourself under fire, but they haven’t been rewarding hard work.  I’m looking for a company where I can work hard, keep my skills sharp, and get rewarded for keeping their most valuable data safe.”

With that answer, they’re going to be hesitant to offer you a salary similar to what you’re making now, and they’re going to think about the training package.  During conversations like this, you have to make sure to point out that you’re willing to bust your hump.  Even better, build them a 30-90 day plan of what you’d like to accomplish as you take over responsibilities.

When Not to Reveal Your Salary

If you’re happy with your current job, and someone is trying to sweet-talk you into changing companies, then you’ve got the upper hand.  You have something they want.  In that case, I approach it with:

“Right now, I’m really happy with my salary, but it’s only a part of the picture.  I’m also happy with my manager, my coworkers, my training benefits, and the work we’re doing.  If I just wanted money, I’d be a hired gun consultant by now.  Let’s make sure the rest of our needs fit before we talk money.”

Segue into a discussion about how you’d like to go to industry conferences and why it pays for them to send you.  If they’re interested in having the discussion, then they’re interested in your well-being as an employee.  If they don’t even want to talk about things like that, well – you just learned a little something about them.

If they keep pressing for your salary, don’t give them your current number – give them the number it would take to get you to switch.  They’re going to balk.  They’re going to say the number’s too high.  It doesn’t matter what number you quote – they’re going to haggle.  If they’re a good company, they never overpay for anything.  They’re going to say you’re crazy and that you’re out of touch.  You can respond with:

“I know you’re used to paying a lot less – but are you happy with what you’ve been getting at those rates?”

I guarantee you that works, because they’re the ones who sought you out.

If you’re happy at your current position, stand your ground.  Several times in my career, I’ve had companies tell me my “switch” salary range was ludicrous, but they came back to me weeks or months later with a close offer.  If you’re good – and if you’re reading blogs like this, you’re good – then companies will hire idiots cheaper, get their databases shrunk, and come crying to you for help later.  Be confident in yourself, never stop learning, and never stop networking.

When to Lie About Your Salary

Never.  You’re an IT professional, and they’re a businessperson.  Guess which one of the two is closer to con artist.  You can’t lie anywhere near as well as they can, and they’ll sniff you out miles away.  The instant they know you’re lying, they’ll lose respect for you, and that’s the end of your happy employment before it even starts.

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Why I Always Bill By The Hour

Mark Richman (BlogTwitter) wrote a thought-provoking post about why he never bills by the hour.  He uses a fixed-rate, value-based billing system; he works with the client to build an exact estimate first, comes to an agreement on the price, and then starts work.  I do like that approach, but I haven’t been able to make it work for my own side work (performance tuning).

I like Mark, and I subscribe to his blog because he makes me think about my stances.  I’ll quote each of his points, and then explain why I disagree.

“1. There is a cap on your investment. You know exactly what is to be spent and there are no surprises.”

When you take your car to the mechanic, there’s two reasons why they ask for your phone number: to call you when the car’s done, and to call you if they found more things the estimate didn’t cover. It’s up to you, the customer, to decide whether or not you want to put the car back together without fixing it, or whether you want to eat the costs for the other things they found.

You can has surprise.

You can has surprise.

The only times I’ve seen a perfectly estimated IT project was when the project manager swept all surprises under the rug:

“We won’t tell them about that emerging problem – we’ll just wait until it actually jumps out on its own and bites them in the rear, and then it’ll clearly be unrelated to the work we’re doing here. Otherwise, they’re going to say we found it and we need to fix it even though it’s out of spec.”

Fixed billing means that every new problem turns into a blame game – with hourly billing, the politics are completely removed. Decide if you want to fix the problem, and decide what it’ll cost – rather than padding the initial bill with wildcard numbers for potential problems that might pop up down the road.  In the comments on the original post, Mark and others suggest that the answer to new problems is to submit a new proposal – but wait, I thought there was a cap on the investment and there wouldn’t be surprises?  Hmm….

“2. There is never a meter running. You do not have to worry each time my help is requested that I might be here for an hour, a day, or a week.”

As a consultant, my worst nightmare is a client who expects to snap their fingers and have me show up instantly – and permanently. I’m no genie, and you don’t get unlimited rubs on my lamp.

There’s a word to describe people that you can call on for unlimited help at any time: employee.

“3. It is unfair to you to place you in the position of making an investment decision every time you may need my help. Otherwise, you’re trying to determine the impossible: Is this an issue that justifies a $2,000 visit or a $500 phone call. No client should ever be in that position.”

I feel the exact opposite: there is nobody better than the client to determine how painful an issue is. If you don’t feel that the issue is worth paying me for a few hours, then let it wait until our next scheduled meeting. If the issue is causing your business a ton of pain and you see value in paying me to fix it, then pick up the phone and let’s make the magic happen faster.

“4. Your people should feel free to use my assistance and to ask for my help without feeling they have to go to someone for budgetary approval. This only makes them more resistant to sharing their views, and at best delays the flow of important information.”

Just one more item on the agenda...

Just one more item on the agenda...

I like my clients. If I’ve got a relationship with a client, I genuinely care about their team and what they’re trying to accomplish. However, even my best friends have to respect my time. The best way to illustrate this is with internal meetings. How many times have you been sucked into time-wasting meetings that don’t have an agenda and don’t accomplish anything? This is what happens when nobody values time. If each person in the meeting had an hourly price, and that price floated over their head in a bubble, you’d better believe meetings would finish a lot faster.

I encourage my clients to email me anytime, no matter how small the problem. If it’s something I can fix over email, I do it without charge. Like Mark, I want to encourage the flow of important information, but time-consuming meetings and phone calls aren’t the only way to get information across. They’re the most expensive ways, and I want to cost you less.

“5. If I find additional work that was unanticipated but must be performed, I can do it without having to come to you for additional funds. In those instances, legitimate, additional work would otherwise be viewed as self-aggrandizing and an attempt to generate addition hours or days.”

If the client trusts the consultant, then they won’t see it as self-aggrandizing or a push for more billable time.
If the client doesn’t trust the consultant, then it doesn’t matter what billing system is used – the client’s going to suspect the bill is padded.

“6. If you find additional, related work that must be done, you can freely request it without worry about increased costs.”

Under fixed billing, it’s up to the client to *prove* that the work is related and that it must be done. Fixed billing creates this conflict between client and consultant, and this review process never ends.

Under hourly billing, you can bring me any work you’d like – related or unrelated. If your project changes scope midstream, it’s not a problem. Whatever you want me to do, I can do without arguing about whether it’s related. I find this relationship works better both as a consultant and as an employee – I just want to deliver satisfaction, not a set of fixed deliverables, because nothing’s fixed.

“7. The overall, set fee, in relation to the project outcomes to be delivered, is inevitably less of a proportional investment than hourly billing.”

I’m not quite sure what this is saying. If it’s saying set fees are inevitably lower than hourly, I just don’t agree. The word “inevitably” needs evidence.

“8. If conditions change in your organization, you wonít be in the difficult situation of having to request that the project be completed in less time. The quality approach is assured, since the fee is set and paid.”

Translation: all sales are final.

With hourly billing, if the client’s conditions change, their options are always open. If you decide you’d rather have internal staff complete the project, you can do that. If you’d like to bring in more consultants, you can. If you just want to pull the plug, you can.

“9. If I decide that additional resources are necessary, there is no cost to you and I can employ additional help as I see fit.”

I'm not sayin, I'm just sayin.

I'm not sayin, I'm just sayin.

If a consultant wants to work more without getting paid more, then it doesn’t matter whether they’re using fixed billing or hourly. They can just do it.

On the flip side, if I find out that LESS resources are necessary, the client is screwed under fixed billing. Or is Mark saying he’d refund some of the price? In which case, that’s not fixed billing….

“10. This is the most uncomplicated way to work together. There will never be a debate about what is billable time (e.g., travel, report writing) or what should be done on site or off site.”

The key to successful fixed billing projects is building a perfect spec before the work starts – and who pays for that? Before the consultant and the client can agree on a set of deliverables and a price, they have to build that set of deliverables. Building the list of deliverables takes time and effort – but who pays? It’s complicated. What if a consulting company helps you build your set of deliverables, but then you shop those deliverables around to other companies – and decide to go with another company? Do you pay them? Do you have to renegotiate the deliverables with the new company, especially if they disagree about related work?

Under hourly billing, it’s simple:

  • If I’m doing something for you at your request, you’re paying me.
  • When I’m not, you’re not.

What could be simpler than that?

Brent Ozar

Brent specializes in performance tuning for SQL Server, VMware, and storage. He's one of the very few Microsoft Certified Masters of SQL Server, a published author, and a Microsoft MVP. He likes travel, Jeeps, Apple gear, jokes, and writing about himself in the third person. Read more and contact Brent.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube