CREATE ROLE DATABASE_ENGINEER;April 16th, 2007 — ddelmoli
Doug Burns has written an article here that talks about what he is calling a Development DBA. Further commentary here by Tom Kyte. I’ve talked about this role in the past (including a paper on the subject at the 2006 Hotsos conference).
Doug makes some excellent points in his article, describing the triangular relationship between application developers, production DBAs and the development DBAs. In my paper, I suggest that one of the main challenges with defining the necessary role is the ambiguity of the title. Tom often calls the role a development DBA or DBA developer. Personally I like the term Database Engineer, as I think that developers responsible for the databases during development should exercise engineering-based skills.
Doug observes that many of the more experienced DBAs tend to be Production DBAs — and that’s a shame. I like to say that the skill sets of Database Engineers and DBAs overlap — but that Production DBAs focus on High Availability, Backup / Recovery and Space / System Management, while Database Engineers focus on Schema Design / Development and Database Coding. Experts are required in both areas.
About the only thing I disagree with in Doug’s article is the discussion about database ownership and responsibility. In my opinion, a database engineer should retain ownership and responsibility for the availability and performance of the development database. That doesn’t mean you prevent developers from accessing it, but it does mean that you have the responsibility to make sure that developers don’t shoot themselves in the foot or prevent other developers from getting their work done. Doug is right about being helpful — try to understand what the developer is trying to do and work together to figure out a solution — don’t be a “scowling brick wall” :-) Take pride in the ownership and be part of the solution.