June 20, 2008 at 6:39 am
You know, I've just realised how heartening it is to find such a lot of IT pros who're obviously (and rightly) focussed on "customer first". I see so many different attitudes around me in IT, so seeing this many truly professional attitudes in one place has made my day.
Semper in excretia, suus solum profundum variat
June 20, 2008 at 7:47 am
I would add to the list the following:
The ability to say to someone with all sincerity and earnest:
"I do not know at present the cause/resolution of this issue we are currently experiencing. But, I will find out for you and we will get this issue resolved."
RegardsRudy KomacsarSenior Database Administrator"Ave Caesar! - Morituri te salutamus."
June 20, 2008 at 8:02 am
For anyone doing either role, I'd say the zeroeth skill is the ability to wander around in Management Studio/QA+EM, without getting lost.
For an admin, I'd say the first skill is backup and restore, and the second is the ability to set up alerts for various things, and monitor really boring but critical stuff without neglect. Nobody considers monitoring disk space exciting, but a DBA who is easily distrated off of boring things isn't going to do it, and is going to allow problems because of it.
For a developer, I would say the ability to read execution plans and time+io stats is first. I don't care if someone can write a select statement, unless they can write one that doesn't bring the server to its knees. Second is set-based thought.
For an architect, the ability to look at data and normalize it, and translate real-world information into various normal forms. Everything else in the whole database comes from having the right level of normalization, encapsulation, etc., for the data, in the tables, with the right PKs and FKs. No dev can write good queries for a junk database, no admin can keep it running well, etc.
For anyone who does all three (admin, dev, architect), I'd say the ability to translate information into normalized sets, with good PKs and FKs, is first. Everything else will build on that.
After those first steps, I'd say priority depends on the needs of the users, so the second skill should be the ability to deal with other people and to understand their wants and needs. Best if you can do that even if they can't articulate them well for themselves. (I've had a lot of success in software development by just watching people work for a few hours at a time. I've discovered needs that they didn't know they had, but when I provided for those needs, they were very, very happy.) Lots of people don't know what to ask for, or how to ask for it, so skill in that area will be good.
- Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
Property of The Thread
"Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon
June 20, 2008 at 8:19 am
I think in addition to SQL-specifics, general system (not SQL) admin and networking skills are very important. DBAs don't need to be able to replace the system/network admins working down the hall, but I think it helps immensely.
The best DBAs I've worked with over the years, and am working with now, have these skills big time. And I think this is one of the most critical factors that distinguishes them from the rest.
I also think it helps to have a developer kind of mentality, but no requirement to have actually been a developer in the past. I'd happily work with an ex-television actress who had never been one.
June 20, 2008 at 8:21 am
Great comments and while I was thinking of technical skills, I'm glad you ran with the communication and problem solving items. Those are really important and if you were hiring a DBA, you'd want to be sure that they had those.
June 20, 2008 at 9:06 am
Right on Rudy! I like Phil's observations as well.
I'm a developer who has to be a DBA. One of the coding mantras I often quote is, "Do whatever it takes in order to generate the least number of support calls". The other is, "If your $%&# blows up, remember that you have to fix it. If you are not customer first the universe will just turn around and climb up your arse.
Given this brutal take on things you can see why I also side with the "soft side". I also say, "Never memorize anything that you can look up." Phil will likely recall that his ex-cop DBA will verify that eye witness testimony of a single individual is low on the chain. It relies on human memory. Check yourself. Have you ever totally forgotten some valuable tip that you read about because you were in the thick of thick of things? It happens to us all.
The life skills are the ones that experience teaches. Mentoring helps. The hard skills are in the books.
ATBCharles Kincaid
June 20, 2008 at 9:41 am
What skills does a developer who's also the DBA need? How about these? (listed in order of importance)
Skill #1:
How to design a database properly! If you're the DBA *and* the developer you have nobody else to depend on. If the database isn't 3NF it rests on sand, and the problems begin right there.
How often have you seen spreadsheets in database clothing? :crazy:
Skill #2:
Know how to keep it simple. T-SQL is horrific enough as a language, no need to add to the pain.
Skill #3:
Know ahead of time which constructs (such as cursors) are expensive. Be paranoid, think that every query is going to have return its data in under 1 second. No exceptions. 🙂
This means knowing how to use indexes and keys properly. This should be Database 101 stuff, but a lot of developers *don't* know it.
Skill #4:
How to backup and restore the database. I put this 4'th because a developer/dba has no business putting a system into production unless they have the first 3 skills already down pat.
June 20, 2008 at 9:44 am
These posts show the duality of our work. On the one hand, we need to have the specialized technical skills to get the job done. On the other hand, we need soft skills to communicate to our customers. What is most important for a DBA to know is situational.
For people like me in small shops, we need to know the DBA role, the developer role, the project management role, and the human role. It is not enough for me to just know one or the other. I think the most important skills are listening and communicating and the ability and drive to learn. I have a real passion for the industry and for learning. That may be the number one "skill" to have.
I started in this industry as punch cards were being replaced by monitors. Until the 1990's, the only real way to learn new skills was to attend a class or seminar. Thank goodness for the internet. It makes it so much easier to learn the skills as needed. :w00t:
June 20, 2008 at 9:47 am
I agree with Phil's attitude dialogue, but want to expand on it. I would be looking for someone that is a "jack of all trades" and enjoys problem solving. While most of the job is relatively calm (and boring), you need someone that can rise to the occasion when top managment is on your case because the database is down or performing poorly (most of the time not your fault, but you are the one in everyone's sights). People skills are a necessity and seems like most of the time you want someone that can teach without the client/co-developer/boss know that they are being taught.
Mike Byrd
June 20, 2008 at 10:11 am
majorbloodnock-
Point well taken. The ability to understand the business or your clients and employers is actually a fundamental skill for anyone associated with IT. Without that skill, how do you build anything that's really useful to your clients/employers?
___________________________________________________
“Politicians are like diapers. They both need changing regularly and for the same reason.”
June 20, 2008 at 10:40 am
I think you can survive without knowing the business. Window setup, exchange, basic SQL admin, etc. don't need business knowledge. However they're then tactical, utility services.
If you want to be strategic and add value, then you really do need to know the business.
As such, I'm not sure it's a core skill, but one that separates the successful professional from the person doing the job.
June 20, 2008 at 10:42 am
A DBA can find technical facts, rules, methods, etc. in a book. Here is whathe or she needs to have internalized:
1. Work ethic; Stay with it until the problem is solved; No shrugging and saying "I don't know and I don't care"
2. Creativity; You can always think of another possible solution if your previous idea did not work.
3. Empathy; Make it work like you would want it to work if you were the end user. Have it make the user's job a little easier and more error free.
4. Integrity; Treat every database like it were your very own, like your own life (and livelyhood) depends on it's security and accuracy.
Eileen Hess
June 20, 2008 at 11:14 am
GSquared (6/20/2008)
For anyone doing either role, I'd say the zeroeth skill is the ability to wander around in Management Studio/QA+EM, without getting lost.
I agree with that. Most candidates pass this though.
For an admin, I'd say the first skill is backup and restore, and the second is the ability to set up alerts for various things, and monitor really boring but critical stuff without neglect. Nobody considers monitoring disk space exciting, but a DBA who is easily distracted off of boring things isn't going to do it, and is going to allow problems because of it.
My company has a DBA the is great at this, but totally fails the developer segment and is mediocre in the architect segment. I think most DBAs are expected to have some architect and/or developer ability though. I think pure DBAs should have knowledge of clustering and hardware also and be able to do some IT work.
For a developer, I would say the ability to read execution plans and time+io stats is first. I don't care if someone can write a select statement, unless they can write one that doesn't bring the server to its knees. Second is set-based thought.
I fit this well. DB-DEVs (and DBAs) should know about index internals too, particularly on processing how nonclustered indexes inherit the keys of clustered indexes (append as seeks for non-unique; append as includes for unique)
For an architect, the ability to look at data and normalize it, and translate real-world information into various normal forms. Everything else in the whole database comes from having the right level of normalization, encapsulation, etc., for the data, in the tables, with the right PKs and FKs. No dev can write good queries for a junk database, no admin can keep it running well, etc.
I agree with design bit. Our database has 1NF violations in the form of double-delimited data in the security stuff.
My company has an knowledge-interrogation interview style, but if yo make it past first guy you're pretty much hired. Being interrogated by Royce is pretty much just entertainment. If you please him you're generally considered nearly top-of-the-line. Not sure if this will be true in the new Raleigh office though. The interviews tend to focus on the DEV requirements, focusing on the set-based-thinking bit. Cursor-lovers get disqualified no matter how much they know.
I'm Developer 1st, architect 2nd, admin 3rd. I'm a performance fanatic. I don't like DBA tedium but I do like DBA automation.
June 20, 2008 at 1:14 pm
I completely agree!!! a foundational understanding of the structures within SQL Server and then the ability to figure out the rest of what you dont know... I have not seen anyone learn the ability to troubleshoot, but the ones that can should be leveraged...
June 20, 2008 at 1:30 pm
So then Joe Celko would be required reading. His style book has way more than just style.
ATBCharles Kincaid
Viewing 15 posts - 16 through 30 (of 60 total)
You must be logged in to reply to this topic. Login to reply