Project Management

Please login or join to subscribe to this thread

Role of DBA's on an Agile team?

linkedin twitter facebook  
avatar
Peter Gausden IT Director Corporate Applications| Cooperators Insurance Guelph, Ontario, Canada
What are people's experience with the role a DBA plays on an agile development team as it relates to database design and changes in the development environment?

Do DBA's do the database changes themselves or do the developers have the ability to do the changes in Dev and the DBA's role is to review to assure proper design before deployment into test and prod?

Currently we are finding the DBA's to be a bottleneck for changes in Dev. because everything must go through them. Often the turn-around for small changes is days. This doesn't seem very agile. My preference is to have the developers making the database changes in Dev with the DBA's reviewing anything before it get's promoted.
Sort By:
avatar
Josh Nankivel Engineering Project Manager| Apple Sioux Falls, Sd, United States
On my teams we have developers make changes as needed in the development environment, but the database builds in the code repository is managed by the DBA. So it's more of a review and if there are questions the team gets with the DBA in real time beforehand for help when they need it.

The DBA does all the builds in our formal test environments, and is the book boss for all of the database builds and related code.

Josh Nankivel
pmStudent.com
avatar
Leam Hall PM Apprentice| Smartronix/DoD Pulaski, Va, United States
In larger organizations there seems to be a different team between DEV and PROD. We tend to get better results when the teams are caught up on what's going on for the other side. I have not seen too many DB teams that are Agile in production environments; most of the places seem to be more ITIL constrained.
avatar
Anonymous
Unless a project is database heavy, it is not practical to have a DBA dedicated to the team. I have seen your preference work, as that is more in line with the generalizing specialist concept. However, if you are truly using a disciplined approach to agile (e.g. Scrum/XP), and have a Release Plan, you should know far in advance about when a particular sprint is coming up that needs a DBA. I’ve found tha, if you ask for the DBA several sprints in advance, their management is shocked that you gave them a heads up and will bend over backwards to make sure you get the DBA when you need them.
avatar
Wayne Mack Retired| Retired South Riding, Va, United States
I think one needs to make this choice on a project by project and team by team basis. The DBA could be on the team full time, serve as a readily available consultant, or serve as a final reviewer. One needs to look at the technical needs of the project or task and evaluate both the technical and cross-system knowledge of the other team members to be able to determine what level of involvement is required from a dedicated DBA.
avatar
Zaffer Khan, CISM, CISA, ISO31000 RM Sr. Systems Analyst| The Public Authority for Civil Information Kuwait, Kuwait
@Peter: "Currently we are finding the DBA's to be a bottleneck for changes in Dev. because everything must go through them. Often the turn-around for small changes is days."

Can't figure out why there should be so much turn-around time, when the DBA has to review the code or deploy it via CMS in various environments!!!

If you could elaborate more on this point, we could find out some root causes of delays from your DBA team, and then mold the processes accordingly or try to optimize the work flow, if necessary.
avatar
Josh Nankivel Engineering Project Manager| Apple Sioux Falls, Sd, United States
What I've seen with shared resources like DBAs or SAs is they get pulled in lots of different directions many times per day.

Turnaround time ends up getting longer because they are trying to please everyone, and stop working on a task to take up another 'urgent' task immediately.

The result is long waits for everyone, and a stressed out DBA or SA who is just trying to do the best they can and help everyone who needs help.

And guess what? A kanban system solves this problem. When someone wants something done, put it on the kanban board. The DBA or SA focuses on one thing at a time. Cycle time goes way down.

You have to train everyone to use the kanban though, instead of interrupting your team every five minutes with a new task. As the project manager and lead, part of my role is to protect my team from disruptions as much as possible, and this is one tool that works extremely well.

-Josh, pmStudent.com
avatar
chandra pathivada San Ramon, Ca, United States
It depends.

Most of the applications has the bottlenecks at the application database layer than the hardware., where most of the times increasing hardware doesnt solve the performance problems permanently, so the DBA has to work with the application development team starts from the design phase , through coding and release phases.

But in realtime, DBA cant spend his whole time to work with the development team .but as per Agile definition : its a team . so , he has to find ways to make sure that he is bringing value-add to the end users. in terms of application performance through working with the development team. one such way to educate the development team on database design,coding best practices and assisting them on building a common-code ,etc.

Please login or join to reply

Content ID:
ADVERTISEMENTS

"I never thought much of the courage of a lion-tamer. Inside the cage he is at least safe from people."

- George Bernard Shaw

ADVERTISEMENT

Sponsors