As a SQL Server DBA I tend to keep my servers as fast as possible and try to find performance issues when they comeup. A had a situation where the responsibilities of a database developer were clear for all parties..
A couple of weeks ago I got into a discussion with a software developer stating that the developer didn’t keep it’s end of the bargain.
In last few years we’ve been having performance issues with Microsoft Dynamics 2009 with the calculation of the invoices.
Because the developer couldn’t give a clear solution to the problem, I started my own investigation.
I came to the conclusion that we were missing some indexes due to some standard functionality of Dynamics AX 2009 which includes an extra column in an index called the DATAAREAID. SQL Server doesn’t want that for the query so the query creates a lot of table scans.
There were three queries that caused a lot of I/O which could easily be fixed adding a few indexes. Due to the new indexes created the process went from 8 hours to 1!
This raised a lot of questions from our side because in my opinion creating indexes is a developer’s responsibility.
In my opinion the responisbilities of a database developer are the following:
- Develop ER diagrams
- Create tables, views, indexes, stored procedures, triggers etc
- Create custom functionality
- Make sure code doesn’t create blocking and deadlocking
- Develop reports
- Develop SSIS packages
I’m sure there are a lot more responsibilities for a developer but this is my shortlist.
As it came out, the developer showed no intention to help and take responsibility for the development of the database. The reason for this was because they could only create indexes through the application.
I can understand that companies want to hold on to a certain way of developing but there is a time and place when you should look back and see if you’re still on the right road.
In my opinion a software developer is responsible for the their product from A to Z which includes development on the database level. This is besides their responsibility also their prerogative from which customers are not allowed to make changes to the software without the software developer knowing about it.
In many cases you’re not even allowed to make a change in a database because support or warrenty will void and you’ll be in a pickle when things go wrong.
I’ve worked with a lot of software developers and unfortunately there are companies that don’t take responsibility for the database development and only delivered the code.
In the end we decided to make the neccesary changes to the database and contacted the software developer that we made the changes.
The people from the business were happy and the developer had not made a response.