• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 392
  • Last Modified:

Developer vs DBA role

I would like to know where the fine line normaly goes between a developer and a DB admin.

The situation is that we (the developers) have been asked to do some traditionaly DBA stuff like account management, back-up job's, system supervision, set up new SQL Server instances and so on.

As it is now I do the database design and implement it with sp's, udf and DTS packages after that I code the desktop application/web application.

So what is normal where do DBA end and where do DEV begin ?
  • 2
2 Solutions
That is a good question, and it depends on the size of your organization, and whether or not you already have a DBA.  DBA's typically do anything related to the modification of the production database system, the grey area being in setting up test db structures for applications in development.  A lot of smaller companies that don't have a DBA will simply pass on the DBA-related tasks to programmers, though, especially tasks like setting up back-up jobs.  I would say from your question that you don't have a DBA -- if you do, they should definitely be doing the SQL Server instances, account management, and system supervision from a DB standpoint.  As a developer, it is not your responsibility to decide whether or not people are messing up the database, unless the DBA comes and says "your application is inserting junk into my database."  However, I can understand if you are developing an application, that you might be required to set up testing DB elements, like test accounts, but on a TEST system, not on the live system, if there is an existing DBA.  I get asked to do stuff like that all the time at smaller clients.  The larger clients have a DBA to go through, who I only go to if it's time to add functionality/features into the production system.
SNilssonAuthor Commented:
Well it is a VERY large company and we have plenty of DBA's but due to a re-organization we are supposed to do more with less manpower and the discussion right now is where the natural line should be, and yes i'm talking about production systems not test enviroments those we(developers) can handle ourself.

As I see it everything that is related to development in SQL Server is our territory, like database design, complex stored procedures, user defined functions and tricky data transformation.

Responsibility for the DBA should be to maintain the backups, handle accounts, supervision and perhaps installing scripted databases made by us.

But thats what I think, maybe there is a lot of programmers who do server side administration when the organisation is cut down, but I dont see how I can possibly have time to do this also :)

More input and thought's please.
I don't think a large organization would find it financially sensible to have programmers in the production systems.  For security and stability reasons alone, it makes sense to not have the people coding also in the live database -- not saying that you'd do anything, but it invites the possibility of unauthorized changes in order to allow certain functionalities to work.  Those changes might break other things, etc.  
You are 100% correct IMHO.  You should not be doing production database changes & maintenance at a large biz, if you are an app developer.  The company should pick one role for you (preferably based on your stronger skills) and stick with it.  
I would agree for the most part.

May last job was at a place with 100+ staff in IT, and we all had specific roles in the different systems.  We had a couple of DBAs (usually 1 for each type Oracle, SQL, etc), and the Web/App developers pretty much stayed with file share permissions, letting the DBAs do most of the DB work.  If we needed a new database, we'd get a DBA to make the DB for us, and then would give us permissions for that database so we could create all the procedures, tables, etc.

Now, I'm at a much smaller place with only 22 or so in IT, and the 2 developers have pretty much act as DBAs for the systems we write/need.  There are vendor systems that the Admins/DBAs handle the SQL parts, but anything we are pretty much expected to help keep our own DBs cleaned up and working.  I guess it's feasible since we (developers) know what to do in SQL, plus it helps take the load off our Network Admins/DBAs since they have multiple jobs as well.

In essence, it probably depends on the size of your IT shop.  In the large scheme of things, it's probably better to split up as much responsability as you can, but that's not always a valid solution for the given situation...
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now