T-SQL Tuesday #30: A DBA’s Ethics

T-SQL Tuesday 30
#30: Deep T-SQL Tuesday or Deepest T-SQL Tuesday?

Chris Shaw (blog | @SQLShaw) brings us T-SQL Tuesday this month. His topic of choice is “A DBA’s Ethics”, which is a pretty deep subject! I feel like this post goes off the rails a little bit compared to the direction of the invitation post, but I had something happen last week that really made me think about this topic in a specific way.

Chris says, “Don’t consumers and business owners have to trust someone at some time with their data?” This is a line that I have clung to in the past; at some point, it has to come down to trust. Since I feel this to be true, it makes me somewhat crabby when regulations & whatnot seem to step in the way of that trust, possibly making it hard for someone like a DBA to do their job due to data or system access restrictions. I do believe that there are times and places for regulations like this, and after what I learned last week, I’m probably more on the side of these types of security regulations than I was before.

NPR to the Rescue

See, I wasn’t even sure if I was going to write a post this month or not. I wasn’t sure what I wanted to talk about or if I was even going to be able to get enough coherent thoughts together. But then, one day last week, I was minding my own business (more or less), driving home from work, listening to WPLN, as I am wont to do, when this story came on. To very roughly summarize for those not interested in spending 18:34 listening (I do recommend listening to or reading the story):

  • Father is upset as his son is convicted of bank fraud.
  • Asks younger son to promise to never get into that kind of trouble.
  • Younger son promises.
  • Younger son starts own business.
  • Realizes one day company is under water.
  • One thing leads to another and 22 years after The Promise, said younger son is convicted of same crime as older brother.

I was interested in where this story would go… I mean, why do otherwise “good” people do “bad” things? At the beginning, I thought that somehow research was going to say that doing bad things “runs in the family” (the older/younger brother angle). As the story progressed into the part where Toby Groves begins asking employees to help, and they agreed, I started to think about how there’s no way I would do such a thing…and how could these people?

When the story got to its punch line, it made me think about how this topic related to DBAs:

We like to help each other, especially people we identify with. And when we are helping people, we really don’t see what we are doing as unethical.

A couple questions developed in my head when I heard it, and as I thought about it more, the questions only got more complex:

  • Are we, as DBAs (or DBA-type folks) at all immune to this type of thinking?
  • Would a DBA be more willing to help another DBA specifically? If so, how thin can we split that hair?
  • What about supplying data for audits? Does that change the thought process?
  • Does having an ethics statement really do any good?

I don’t have answers to these questions—not sure anybody does—but they make for interesting things to think about.

If Only I Had a Psychology Degree

I know the first question I have listed there seems pretty pretentious, but I wound up there due to specific reasons. Of course DBAs like to help other people; that’s not what I’m saying. What I am saying is weighing “helping people” while still operating within “the rules” is kind of what we do. I’ve spent a fair amount of time working directly with developers both on projects and to get projects deployed to Production systems. Although it is nice to be able to tell coworkers “that’s all OK”, that isn’t what we get paid to do; instead, more often than not, we’re paid to say No. Not because we don’t like people or enjoy it, it’s because we are trusted (there that is again) to apply “the rules” objectively to everything we are involved in or are supposed to approve for deployment. These “rules” can be administrative procedures, architectural/design policies, or even something simple like scheduling. Because of the nature of what it is we do, we are used to taking a step back, away from the people involved, to ensure that we do the right thing.

Does making decisions like that on a day-to-day basis make a person able to apply that same objectivity to every situation they ever encounter? Who knows? What about if the situation was changed a bit? DBAs (and sysadmins, for that matter), tend to rag on developers a little bit; usually in a good-natured way. But, I believe that, for the most part, DBAs and Developers are fundamentally two different kinds of people—we tend to think and act differently (and that’s OK). So, what happens if a fellow DBA comes to us with a problem or the results of a mistake and are looking for a way to fix it quietly or sweep it under the rug? Since we identify with the fellow DBA more so than, say, a developer, are we more likely to go along with the cowboy fix, as is pointed to by the study in the NPR story? I mean, if one doesn’t truly stop and think about what is going and what is being asked of them, it’s easy to simply think, “oh, Jim-Bob’s a DBA over on the Production team, surely he wouldn’t want to do anything outside of policy…”

What about the audit situation? This can go both ways: on one hand, one wants to help the auditor do their job by getting them the data they’re asking for. On the other hand, you may be wanting to help your team (or yourself!) out by possibly not supplying everything involved in a request. It’s easy to sit here and office chair quarterback the scenario, but that’s the point—it’s easy when you’re not in the situation  yourself, in the same mindset (or lack thereof), staring the same consequences in the face. Thoughts and actions only count when…well…when they actually count.

This is where doubts about ethics statements begin to creep into my head. It’s easy to read through SANS’s Code of Ethics that Chris pointed out on this fine Tuesday and laugh, being like, “yeah, like I’d ever knowingly hurt someone’s reputation or look up the boss’s salary in the HR DB.” The problem is that opportunity or request might not come up on a Tuesday morning while we’re sitting around reading blog posts over our second cup of coffee—it might come up while you’re having an exceptionally bad day, and all you want to do is make at least one person happy. Before you know it, you might have gone off and done something illegal, or at the very least, ethically questionable.

Does having a company, community, or personal code of ethics keep this from happening? The way I interpret the reported study’s results, I would have to say no. Of course, that’s not true for everyone or every situation—it depends! It depends on a lot of things. So many things, in fact, that it’s completely within the realm of possibility that having such a code and reading it regularly to remind ourselves of the covered items could just cause the right synapse to fire in the right situation to keep us from doing something stupid. Does that make it worth the effort? Probably.

I have to say, though, historically, I’ve gotten crabby about things like this that get formalized. I always ask “Really?!”, because I feel like I’m pretty hard-wired in this department and get a little offended by having a code of ethics thrust upon me. I have to say that I’m a a little afraid after hearing the NPR story that there’s a chance I would let things get out of control before I realized what’s going on. At the same time, though, I realize that having that fear and being alert to it is probably about the best way to safeguard against doing unethical things in the first place.

But…

There’s still a problem here. The problem is that we’re not perfect. Insidious things creep in at the corners without us noticing. Even though we’re trained and practiced in recognizing when something abnormal is going on and to see through the glossy surface down to the gritty details, things can still go horribly wrong due to being stuck in those details and missing the big picture.

I don’t know about you guys, but that NPR story freaks me out a little bit. Do I believe what I said above, about DBAs being used to making similar decisions, makes us immune to this type of “sympathy think” (pardon me while I make up words again)? No! I’m worried I go around every day a hair’s breadth away from starting something highly unfortunate just because I wasn’t paying enough attention or thinking the right way about a task.

Sure, talking about a DBA’s ethics is a little bit different than talking about mortgage fraud, but the fundamental decision is the same: Could what I am about to do hurt myself or someone else? It’s hard to think about that question at every turn throughout the course of the day, but apparently we need to, because once again, our animal brains are being a pain in the butt.

T-SQL Tuesday #28: Jack of All Trades Crew, Checking In

T-SQL Tuesday—always a good option for helping to get back on the blogging horse.

TSQL Tuesday #28
T-SQL Tuesday #28

This month is hosted by Argenis Fernandez (blog | @DBArgenis), a SQL Server MCM & a #SQLFamily member that I have yet to meet. His topic of choice is “Jack of All Trades, Master of None?”, which is right up my alley, because for pretty much my entire IT career, that phrase has described me. It still does, right this second, but I’m trying to get over that. More on that coming.

Because I should be able to use them to frame out a good story (and because I’m cheap), I’m going to work with the list of questions Argenis has in his invitation post.

Are you specialized? On something? Or anything at all?

Am I anything at all? No, not really, thanks for asking! 😀

Anyway… it’s not really safe or fair to answer whether or not I’m specialized with anything but a firm “no.” I’ve been this way from day one. I don’t know that it’s been a conscious decision to get to this point more than it just happened as a result of being driven by a desire to know how everything works. Sometimes that leads to depth in weird places, which can come in handy while watching Jeopardy! on TV.

My non-specialization situation at the moment includes the capabilities of a decent SQL Server DBA, being what I’ll call “serviceable” when it comes to data modeling, and could still be a sysadmin if push came to shove, in a day job in which I have become the go-to ETL Developer. It’s a little weird, I admit. But, all of those other things help with the current focus. The ETL job is slow, you say? Well, is the server on the floor? Is the latency over the WAN link 700 ms per round trip? All of my other skills help, and that is what I think is the best part of being a jack-of-all-trades: It’s possible to know just enough to answer a lot of your own questions!

I’ve said it before, but another thing I like about knowing a little bit about a lot is you can make friends/commiserate with almost everyone in the IT department.

Are you the SQL Guy at work? Or the one who does everything?

Due to the size of company that I work for, there are very few “Guys” at work—everyone has a specific job (or sometimes jobs) that they do. Basically…near-insect-grade specialization. There’s not room for a jack-of-all trades at larger organizations, in my experience, with the possible exception of smaller, autonomous groups.

Having spent time in one of those smaller, autonomous groups within a larger organization, I was a little bit of the guy who does everything. My whole team was, actually. We were “Windows System Admins”, who ran just about everything except Exchange and the MSFT monitoring platform du jour, plus Citrix to boot. Although each of us had our strong points, pretty much all of us could get through whatever needed to be done and have things work when we were done. I think that just goes along with being a “sysadmin”—being a jack-of-all-trades is almost a necessity. Need to know hardware? Check. Security theory AND implementation? Yep. IIS (Apache as necessary)? Probably. Networking? You betcha. SQL was just one of the things that I did while there, although I did do a lot of it.

Do you code? And configure wireless routers at work also?

Hell no. I mean… not if I can help it. See, when I started in IT for real, I knew one whole programming language: Visual Basic 6. Two classes in school on it, and that was it. I wrote a little print queue viewer/management app while a student (hey, it was deployed on 2000+ machines!), but no real experience. To this day, VB6 is the only real (“real”) programming language I know. Not having a strong coding background does cause some problems occasionally, especially when talking to Developers who are used to DBAs coming up through those ranks. I definitely don’t know much about software engineering theory, and that’s where it shows up the most.

As part of the afore-mentioned sysadmin gig, I wrote a command-line only VB app as an automated interface between a couple of systems, but I’m not exactly proud of that moment, for a number of reasons. The one that applies here is one of the downfalls of being a jack-of-all-trades: it’s easy to cowboy up and do quick-and-dirty things off to the side, because you can. Perhaps even more dangerous: because no-one else can.What happens as soon as you’re done? Well, if you’re not careful, it winds up in Production, and then it becomes a support nightmare; if not for you, it will be for a coworker or the next guy. Either of which may some day hate you when their phone rings at 0300 because the wrong piece of duct tape fell off your masterpiece. I think being a jack-of-all-trades can be a good thing, as long as one of those trades is holding onto whatever processes and standards are in place…and if there aren’t any of those, hopefully one of said trades is coming up with some good organizational processes and standards!

As for the wireless router configuration bit—I try to keep that at home. Pretty sure the network guys wouldn’t like me messing around with those things. Just because I [used to] know Cisco IOS, doesn’t mean I should use it. That brings us to another good specific skill that a jack-of-all-trades should have: Knowing when to sit quietly. This goes for both wireless routers and writing anything in VB6 that has a prayer of ever seeing real, actual production use.

If you had to pick one thing to specialize on, what would it be?

Yeah, about that… All the above said, I actually am going to try to specialize on something. Of course, it isn’t enough to say I’m going to specialize on SQL Server. There’s too much in the product now. I’m going back to the thing that got me truly interested in the prospects of becoming a Data Pro in the first place: Business Intelligence. Unfortunately, I don’t think it’s safe to make that a goal, either. Just the BI side of the SQL Server platform is becoming too broad and too feature-rich to come to grips with. I’m going to have to be content with possibly not knowing anything at all about Reporting Services to focus on what I really want to do: Analysis Services. I actually want to be able to do most of the architecture work surrounding big BI projects, from start to finish (except for SSRS!), but I’m afraid that even just SSAS, including all of its new related technologies, could turn out to be too much.

That, though, is a journey that I hope we can all share in. Because I’m nice like that.

Other Thoughts

Being mechanically wired more than anything, it’s not quite as easy for me to tear down a piece of T-SQL as it is, say, the battery operated toys I used to take apart…Or a carburetor. But thanks to the Internet, it’s easy for me to read about and learn from someone who is more adept at doing that sort of thing. This shows two more helpful skills for a jack-of-all-trades: Being able to read and learn is a really important one, and being able (and willing) to share back out is another good one. You never what kind of DBA trying to configure Exchange you’re going to help out.

PASS Summit From Home

I know that I have at least a couple people who read this (incidentally, I just realized they have the same first name) who might be interested in watching some of the Keynotes from PASS Summit next week, but aren’t plugged in to the SQL Server Community to notice this on their own 😉

The best place to find out what is being streamed online to watch off-site is going to be Jen’s post here on “attending PASS Summit Virtually.” It’s pretty much where I was going to go, because I know she’s got everything listed in one place that I can get right to, so you guys had just as well go there directly. Plus, it’s a fun post to read, so it’s still worth a couple minutes.

Even if Keynotes aren’t your thing (I understand), at least check out Dr Dewitt’s session on Friday morning. I was able to catch bits & pieces of his last year, and if you think that you know a little bit about databases, this is sure to destroy any self-confidence you may have in knowing what you are doing. It’s awesome.

So, that’s pretty much all I’ve got here. Check out Jen’s page & catch what you can and/or are interested in.

Seattle in October

Next month, something awesome is going down.

PASS 2011

I haz a happy

For the first time since the Two Weeks in Junetrip in 2008, we’ll be going to conferences. For the first time in…well…ever, the conferences we’re going to are the same one at the same time.

Finally, FINALLY, we’re heading to Seattle for the Professional Association for SQL Server’sannual Summit. This conference was first put on my map when it basically replaced the MS BI conference in 2009 (which wound up getting scheduled for every two years). At the time, I was getting deep into my first “real” DBA job, taking the somewhat long and temporarily divergent road towards a career in BI. I came very close to footing the bill myself for the conference that year, and it would have been pretty interesting to see what would have happened since then had I made that move…

Anyway, we’re both going for real this year, and I’m looking forward to just about everything about it. I can’t wait to meet everyone from the SQL Server community that I haven’t yet (which is most everyone), to possibly sing badly (#SQLKaraoke), to try to split myself up into three pieces to go to all of the sessions that I want to go to (although I haven’t run through the schedule yet), and to try to find time to mumble onto the keyboard to get some posts up here about whatever is going on.

There are a couple things different about this one, though. I won’t be attending a precon session for the first time. That’s a little weird for me, as I think of it as part of the conference experience, and I always get a lot of good info out of them. When I’ve gone to conferences before, I haven’t had great reasons to go to BI-related sessions; I’d just check them out because I’d have the time and/or because I was interested in that sort of stuff. This time, pretty much the primary reason I’m attending is to go to every SSAS session I can. This is really awesome for me.

The other big thing that will be different is my attendance in after-hours events. For the TechEds & Connections conferences I went to, I went to very few after-hours events, either official or unofficial. We’re going to be hitting as much as we can this time, spending time with as many of our fellow Data Nerds™ as possible. Hopefully we won’t annoy too many people—we wouldn’t want to get blacklisted or anything 😉

So, in about a week and a half (!), we will get to spend some quality time in the back of a Southwest Boeing, KBNA—>KSEA. This trip will put me both the furthest West & North I’ve ever been (I don’t get out much), and that will be neat, too. We’ll be missing the photowalk on Monday, which is a bummer, but will be in town through the following Monday, so we’ll have plenty of time to spend with the Emerald City.

I know it’s getting close, but there’s technically still time! If you’re a SQL Server Pro, any of DBA, BI Monkey, or Dev, if at all possible, you should be here for this. I don’t explicitly know what we’re all getting into, but from what I’ve heard and read, there is no better place to be.

Did I mention that I’m excited about this? Yeah, I’m excited about this. The lack of sleep that’s going to happen that week, though? Yeah, I like my sleep. A lot. I’m not sure how that’s going to go.

Q1 2011 Goals Update: Career Indecision Ahoy!

I tossed around whether or not I wanted to make update posts like this one throughout the year. I can come up with arguments for both sides, and decided to not make a firm choice one way or the other: Basically, if something big has happened in the last quarter as it relates to the goals, then I’ll talk about it. If I’m bombing terribly, it will get saved for one big “look how much I suck” post at the end of the year. In this case, since things are a lot more muddy than I expected right now, I thought I would talk about it a little bit.

First, for a quick recap, here are the high-level things I’m after in 2011:

  • Pick a career direction
  • SQL-related travel
  • Do more experimentation/work with SQL at home
  • Read more
  • Keep the blog going at a decent rate
  • Ride the bicycle
  • Start flying again (this sort of depends on cash situation)

These were covered in my original Goals post, and the first one, career direction, was followed up with on T-SQL Tuesday #14. Lots of these build on each other, with almost everything being dependent on career direction, because of the way my personality works and related improvements that will (theoretically) bring.

On that note…

On picking a direction and sticking to it: Help, it’s dark and scary

Long story short, I still haven’t made a decision. This fails my goal of getting this done by the end of the first quarter. The BI option is starting to take shape, but it’s not turning out to be quite as cut-and-dried as I had thought it was going to be (of course).

There are a lot of moving parts here, with a lot to consider. I’m trying to work through this logically, but I’m not the best at things like this that don’t have clear answers. I’ve taken the steps of listing out pros and cons of each side, but honestly, neither option really stands out as better than the other one.

Going BI has the leg-up as being “what I’ve wanted to do since I was an Accidental DBA”, but even that is tempered: The only part of the MS BI stack we’ll be using long-term is Analysis Services. Don’t get me wrong, I’ve always been really excited by SSAS and if I had to pick one totally new thing to learn in Data Land, SSAS and MDX would be it (I can count those two as one thing, right?). But that’s all we’re using. Its source Dimensional model will be on Oracle. Most of the source data will come from Oracle, as there’s not very much SQL Server.

I will learn a lot of platform-independent BI stuff, which would be great…Except, at the end of the day, I’m mostly a tool/platform guy, and this isn’t going to be a lot of my desired platform. I’m worried about causing problems for myself over the long-term.

I’m frustrated, which of course doesn’t help at all. I’ll talk more about this when it’s all done and over.

SQL Travel

Wellllll, there hasn’t been any. Should we have gone to SQL Saturday #70? Probably. Would it have been great to hang out with the cool kids at #67 the other weekend? Oh yeah. Is SQL Rally going to happen for us? Questionable.

But there is good news on this front: I think the dog sitter bit is worked out. This opens up the door a lot, and we’ve been eyeballing SQL Sat 77 in Pensacola and 75 in Columbus. I also just noticed that Birmingham’s date has been set & they’re going to be #81. That’s really close, too. Surely one of these three will fit on the schedule & in the budget.

That’s pretty much it. I know, not much progress, and a bit of outright failure. Spring is here, though, and that means a generally better mood; almost guarantees more progress.