I was talking to my team this morning and we were wondering about some design decisions. One of the things that came out of the discussion was: Database professionals think differently.
A little story: Before I was a database person I did web development. That's a little misleading because I wrote very little that made it onto the big web. Most of my work ran on enterprise intranets.
Back then, I started using Access first (and I admit it). After I crashed Access one weekend, I learned about SQL Server 6.5 and started working with it. After a year or so I started playing with SQL Server 7.0. About six months later I considered myself a DBA.
Were You a DBA?
But You Considered Yourself a DBA?
When Did You Learn You Weren't a DBA?
I learned I was not a DBA when I started working on my first Very Large Database (VLDB) project. I started doing database work and realized how little I actually knew. The gaps in my knowledge were readily identifiable, but that was nothing compared to my thinking. I didn't think like a database person.
I'm not going to mislead you: Sometimes, the ability to think differently than a database person adds value. But right then, it was a major liability.
Thinking about parallelism and thinking in sets is different. It's way different from the way I thought about web development. I don't think I'm alone in any of my experiences. I think lots of people have trouble thinking in sets, about parallelism; and quite a few developers think they're DBAs.
It's important to note that there are some developers who are DBAs. I believe they represent a subset of all the developers who think they are. Maybe I'm just biased because of my experience, I'm not sure.
One Last Thing
The most important thing I learned working with that VLDB: I was not a DBA when I started, and I really wasn't a DBA when I finished. I knew a lot more about SQL Server database administration, but that doesn't make a DBA - in my opinion. I learned I'm a database developer, which is a different animal from an application developer and from a DBA.
I can hear you thinking: "What makes a DBA, Andy?" I'm glad you asked. I don't think there's a formula, really. I know some really good DBAs (a couple of them are also really good developers), and they share some traits. One thing they all have in common is they're detail-oriented.
What do you think? What are the differences between the thinking of database professionals and other technology professionals?