"Hey, I just read online that you should never use stored procedures
when developing a SQL Server application. The advice was on the home page of
a Microsoft MVP, so I figured it would be pretty accurate.What do you think?
Should we avoid using stored procedures in the application we're building?"
Naturally, Contributing Editor Brian Moran's advice to the person who asked
this question was, "Don't believe everything you read." ("Eliminating Stored
Procedures? Look Before You Leap," http://www.sqlmag.com,
InstantDoc ID 93591.) The fact that a piece of information comes from an MVP
doesn't necessarily mean it's right for every database in every environment.
This example illustrates a common dilemma facing database professionals.Your users, team members, and superiors look to you to be the expert, the one who knows how to answer questions and solve problems in your database environment. How do you come up with just the piece of information you need to solve your problem or answer your question? How do you know whether the author of that information is trustworthy? And if the information you get is accurate, how do you assess whether it's right for your particular environment? In this year's SQL Server Magazine Salary Survey, we looked at the sources that our survey respondents say they use regularly and asked them how they use various resources for problem solving in their own jobs.The responses revealed that the quickest way to an answer isn't necessarily a straight line. Instead, it might look more like a spiral staircase, with each step building on the one before.
What Is an Expert?
When we began examining how database professionals get the information they
need to do their jobs, we turned to someone we trust as an expert. Brian
Moran is in the trenches every day, working as a consultant and principal mentor
with Solid Quality Learning, a training and consulting company that he helped
start. We asked Moran what he thinks the best strategy is for finding information
to solve problems. His response came back in his typical fashion: "It depends."
He explained, "This isn't the kind of thing that lends itself to a simple checklist—if
you follow these steps you'll always get the answer.The answer falls into the
category of what defines being an expert. I kind of define the idea of being
an expert as,'If you don't know the answer, you can get the answer quickly.'"
Moran added that his definition includes being able to figure out the answer
a tiny bit before someone else. If DBA Joe can consistently figure out the answer
a little before DBA Sally, then Joe is perceived as the expert.
When we talked to readers about their level of expertise, their responses supported
Moran's definition, regardless of whether they defined themselves as
experts. For example, Mike Smith, a DBA in Minneapolis, Minnesota, considers
himself a SQL Server expert."I've been a DBA for close to 10 years now," he
explains."I was in the Coast Guard, trained on Oracle. I work strictly with
SQL Server now. I'm Microsoft certified and my degree is in computer science."
In contrast,Vincent Miller, a research analyst with Wichita State University,
says, "It's scary to be the resident expert." Miller, who has seven years' experience
with SQL Server, came to IT through a liberal arts background. He says,"Because
I'm self taught, I don't think I have the confidence to consider myself an expert.
Friends in IT tell me I need to get certified." But Miller is the one that people
come to for answers; he daily creates ad hoc queries to deliver custom BI data
to a variety of users. And he's a big part of the University's move to SQL Server
2005, focusing on implementing the BI suite and extending his department's use
of Reporting Services. So regardless of his comfort with the label, Miller is
a SQL Server expert in every practical sense.
The way SQL Server experts such as Smith and Miller solve problems and add
to their own expertise varies from individual to individual, but most experts
build their expertise in three areas: a solid understanding of the core technology
they work with, the ability to use a variety of information resources, and connections
to the IT community through which they can vet ideas. Let's look at how some
of our survey participants view these aspects of their jobs.
A Solid Foundation
Regardless of your level of expertise with any technology, you need to have
a basic understanding of the foundations of that technology. Moran explains
that without that foundation, you'll flounder. "In the performance-tuning space
in newsgroups, at least a couple times a week, I see basic questions. Sometimes
you can tell that the person is just testing to make sure that they're building
something the right way. But other peoples' questions demonstrate a lack of
understanding of the core concepts they're working with.That's when I recommended
that the person find expert help with their problem."
The respondents to this year's Salary Survey already know about the importance of their core body of knowledge. They are a highly educated group; most have bachelor's or post-graduate degrees. In addition, 52 percent hold some type of certification, and many of those are Microsoft certifications.
But building a foundation of knowledge doesn't come from formal education or training alone. On-the-job experience accounts for a considerable part of many people's expertise. For example, when I spoke to Russell Shilling, who is the director of software services for his company, he said people in his organization typically come to him as the resident SQL Server expert. He's been at his job for about five years, and says, "There's not a lot I don't know about my own systems. Having worked with the systems over the years has given me a lot of appreciation for details that other people might miss." He explained that he has an extraordinary core body of knowledge: He's been programming—with multiple languages— since 1979. He recalled a quote he'd heard once:"An experienced programmer is 10 times as productive as an inexperienced one." Shilling's breadth of experience gives him the perspective to quickly see multiple ways to solve problems.
However, even if you're a novice, if you have a good basic foundation of knowledge,
you can get the answers you need. In some cases, novices can figure out a lot
of answers on their own because they're blessed with a good intuition about
what choices will work in their environments. As Moran explains, "One of the
reasons I'm successful is that I have the experience and the ability
to intuitively recognize whether an idea is a good one. I can also look ahead
and see the long-term effects of some choices."
Being able to anticipate the effects of your choices is key. In some cases,
you might see more than one good answer, but not be able to see the ongoing
effects of either decision.Thus, one of the core components of successfully
moving from novice to expert is to develop the ability to know when you can
figure out the answer you're after and when to seek help from another source.