Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


Developer vs DBA role

Posted on 2004-03-24
Medium Priority
Last Modified: 2010-04-17
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 ?
Question by:SNilsson
  • 2

Assisted Solution

sir_flexalot earned 600 total points
ID: 10669496
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.

Author Comment

ID: 10669977
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.

Expert Comment

ID: 10670463
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.  

Accepted Solution

pillbug22 earned 600 total points
ID: 10670667
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...

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn different types of Android Layout and some basics of an Android App.
We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
Starting up a Project

577 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question