Deciding on being Developer or DBA

  • Hi All,

    This is a soft question, and one I've seen asked elsewhere, but differently enough I feel I'd like to add my own spin to it.

    I started out as a SQL Server developer (pretty much exclusively). Over the past few years, I have supplemented that with C#, and to a lesser extend other technologies like JS, Python, R, etc.  But working with SQL has always been both my forte and love. One of our DBAs is leaving the company soon and I have been reached out to by his team to see if I am interested in jumping in to that world. I am confident I have the skills to do it, and reasonably confident the job is mine if I want it.

    Truthfully I think I would enjoy the work too, but I get the impression that I would sort of be kissing my development career goodbye in favor of one in infrastructure, which quite frankly, frightens me.

    I'm interested in anyone's thoughts on this sort of move, although my main question is this: How detatched from the development world do you find being a DBA to be? In a perfect world, I would like this to broaden what I get to do on a day to day basis, rather than have it be something which closes off certain avenues to me.

    Thanks in advance

    Executive Junior Cowboy Developer, Esq.[/url]

  • Xedni - Thursday, February 2, 2017 1:12 PM

    Hi All,

    This is a soft question, and one I've seen asked elsewhere, but differently enough I feel I'd like to add my own spin to it.

    I started out as a SQL Server developer (pretty much exclusively). Over the past few years, I have supplemented that with C#, and to a lesser extend other technologies like JS, Python, R, etc.  But working with SQL has always been both my forte and love. One of our DBAs is leaving the company soon and I have been reached out to by his team to see if I am interested in jumping in to that world. I am confident I have the skills to do it, and reasonably confident the job is mine if I want it.

    Truthfully I think I would enjoy the work too, but I get the impression that I would sort of be kissing my development career goodbye in favor of one in infrastructure, which quite frankly, frightens me.

    I'm interested in anyone's thoughts on this sort of move, although my main question is this: How detatched from the development world do you find being a DBA to be? In a perfect world, I would like this to broaden what I get to do on a day to day basis, rather than have it be something which closes off certain avenues to me.

    Thanks in advance

    I think it depends entirely on the organization.
    Where I work I am the only one with the job title DBA, but one of 3 who have DBA like permissions.  In this position, my primary focus is the databases, but I don't touch any of the actual hardware.  So disk gets low, I talk to our SAN admin.  Server is old or slow, that's the head of IT.  My end is all about "is the database online and is it running optimally?".  If both of those are true, I will either spend time researching things (new technology with respect to SQL server, existing features, new service packs or CU's, etc) OR I'll be working on some developer project.
    When I say developer project, I mean I will be either working with another developer on their project to coach them on better SQL tips OR I will be working on my own developer project as assigned to me by my supervisor.  Generally, if I am getting a project assigned to me, it has a lot of heavy lifting on the SQL side along with some C#.

    In my opinion, if you are looking to keep a broad range of things on your plate, you are going to very quickly become overworked.  The more narrow you can make your scope, the better you can be at that.
    My analogy for it is like comic books (I don't know a lot about comic books, but was the first example that popped into my mind).  Lets say you really like comic books.  If you went to the comic book store and bought every new issue that came out the day it came out of every comic book, you'd never really know what was going on in all of them.  It is too much information for 1 person to consume and understand.  Now, you narrow that scope down to just Marvel, you now have a much better understanding of the Marvel universe and can have generalized discussions about it.  Now narrow that down to just Iron Man.  You can have very informed debates about different aspects of different Iron Man.
    The more narrow you make your scope, the better you can understand that topic.  Same thing applies as a DBA.  Are you going to be the administrator?  If so, you should have pretty good knowledge of optimization techniques and backup/restore methods and be able to build a SQL Server from scratch in your sleep.  But maybe BI is more the area you are jumping into.  In which case you should learn more about SSAS, SSIS and SSRS as well as 3rd party tools that your company may use.  

    I would read the job description and presuming the current DBA is still in house, talk to him/her and find out what they do on an average day and see if that is what you want to jump into.

    The above is all just my opinion on what you should do. 
    As with all advice you find on a random internet forum - you shouldn't blindly follow it.  Always test on a test server to see if there is negative side effects before making changes to live!
    I recommend you NEVER run "random code" you found online on any system you care about UNLESS you understand and can verify the code OR you don't care if the code trashes your system.

  • That's very helpful. Thanks for taking the time to put that together for me.

    Executive Junior Cowboy Developer, Esq.[/url]

  • Xedni - Thursday, February 2, 2017 1:12 PM

    my main question is this: How detatched from the development world do you find being a DBA to be? In a perfect world, I would like this to broaden what I get to do on a day to day basis, rather than have it be something which closes off certain avenues to me.

    I started my career as a developer too, so I understand the transition.  I suppose a question to ask is what type of DBA job is this?  There's really not just one set of job functions that make up being a DBA:
    https://www.brentozar.com/sql/picking-a-dba-career-path/
    Where I'm at now, I interact with the developers on a regular basis, on such things as:
    -  doing code reviews of stored procs / views / functions, recommending best practices and optimizations
    -  designing schema changes
    -  planning and designing processes to be more "set based"

  • Chris Harshman - Thursday, February 2, 2017 2:02 PM

    Xedni - Thursday, February 2, 2017 1:12 PM

    my main question is this: How detatched from the development world do you find being a DBA to be? In a perfect world, I would like this to broaden what I get to do on a day to day basis, rather than have it be something which closes off certain avenues to me.

    I started my career as a developer too, so I understand the transition.  I suppose a question to ask is what type of DBA job is this?  There's really not just one set of job functions that make up being a DBA:
    https://www.brentozar.com/sql/picking-a-dba-career-path/
    Where I'm at now, I interact with the developers on a regular basis, on such things as:
    -  doing code reviews of stored procs / views / functions, recommending best practices and optimizations
    -  designing schema changes
    -  planning and designing processes to be more "set based"

    Thanks Chris, and thanks for the link. When I go in to meet with them, I'll try to get a feel for what "flavor" of DBA it would be. I do know we have a reasonably broad core of good SQL developers (years back, we had a dedicated team, of which I was a member). So it'll be interesting to see where the division is.

    Executive Junior Cowboy Developer, Esq.[/url]

  • Xedni - Thursday, February 2, 2017 1:12 PM

    I'm interested in anyone's thoughts on this sort of move, although my main question is this: How detatched from the development world do you find being a DBA to be? In a perfect world, I would like this to broaden what I get to do on a day to day basis, rather than have it be something which closes off certain avenues to me.

    I can't speak for anyone else but being a DBA doesn't necessarily remove you from "development".  I sit with the Developers and work with them a lot.  I do code reviews with the Developers and use the time to mentor as well as doing the review.  They aren't afraid to ask for help on performance issues or needed technique trickery.  Then, there's the joy of writing your own T-SQL tools to help you with daily system reporting, monitoring, etc, etc, ad infinitum.  A part of the monitoring is looking for code (no matter the source) that is performance challenged especially for the largest users of CPU because those are the ones that run very fast individually but also run thousands of times per hour.  Tricking out a 100ms bit of code so it runs sub millisecond can and does actually have an huge impact on such queries.  And then there' logical reads, which is memory IO really. Over time, I've been able to remove literally several CPU days of time each day and have removed nearly 200 TERA bytes of logical reads each day.  CPU has fallen from an average of 40-50% (accompanied by multiple timeouts each day) to usually 4-8%.  And the Developers had a lot to do with it because they knew how to fix things thanks to the mentoring done during code reviews.  They actually take great pride in writing high performance and resource efficient code.

    You could sit in a "DBA Silo" but it's much more interesting to have a foot on the system side, a foot on the application side, and understand that the two interplay a lot.  You just need some patience (never forget what Developers. folks in QA, and their managers have to go through) and you need to sharpen your own skills a lot.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • I agree with Jeff. I've had DBA jobs that were horrifically boring and siloed (think: big banks) and dev-aligned DBA jobs that were (are) amazing and varied, with access to leading edge technologies. Ask the guy who's leaving.

  • Jeff Moden - Thursday, February 2, 2017 9:28 PM

    Xedni - Thursday, February 2, 2017 1:12 PM

    I'm interested in anyone's thoughts on this sort of move, although my main question is this: How detatched from the development world do you find being a DBA to be? In a perfect world, I would like this to broaden what I get to do on a day to day basis, rather than have it be something which closes off certain avenues to me.

    I can't speak for anyone else but being a DBA doesn't necessarily remove you from "development".  I sit with the Developers and work with them a lot.  I do code reviews with the Developers and use the time to mentor as well as doing the review.  They aren't afraid to ask for help on performance issues or needed technique trickery.  Then, there's the joy of writing your own T-SQL tools to help you with daily system reporting, monitoring, etc, etc, ad infinitum.  A part of the monitoring is looking for code (no matter the source) that is performance challenged especially for the largest users of CPU because those are the ones that run very fast individually but also run thousands of times per hour.  Tricking out a 100ms bit of code so it runs sub millisecond can and does actually have an huge impact on such queries.  And then there' logical reads, which is memory IO really. Over time, I've been able to remove literally several CPU days of time each day and have removed nearly 200 TERA bytes of logical reads each day.  CPU has fallen from an average of 40-50% (accompanied by multiple timeouts each day) to usually 4-8%.  And the Developers had a lot to do with it because they knew how to fix things thanks to the mentoring done during code reviews.  They actually take great pride in writing high performance and resource efficient code.

    You could sit in a "DBA Silo" but it's much more interesting to have a foot on the system side, a foot on the application side, and understand that the two interplay a lot.  You just need some patience (never forget what Developers. folks in QA, and their managers have to go through) and you need to sharpen your own skills a lot.

    Thanks Jeff, that's good to know. It sounds like the typical "it depends" answer is relevant here. But it's good to see that there is a lot more to it than what my knee jerk reaction might have been.

    Executive Junior Cowboy Developer, Esq.[/url]

  • Also, check out the salaries in your area. In mine (City of London), DBAs tend to be paid quite a bit more than developers at the same sort of level. It may vary by region though.

  • Beatrix Kiddo - Monday, February 6, 2017 8:19 AM

    Also, check out the salaries in your area. In mine (City of London), DBAs tend to be paid quite a bit more than developers at the same sort of level. It may vary by region though.

    Oh believe me, that's part of the consideration 🙂

    Executive Junior Cowboy Developer, Esq.[/url]

Viewing 10 posts - 1 through 9 (of 9 total)

You must be logged in to reply to this topic. Login to reply