Like many of my fellow application developers, I’ve done everything from writing functional requirements to application coding to data modeling and everything in between. I thoroughly enjoy the variety and challenges.
However, we sometimes need to consider when acting as a jack-of-all-trades is not in the best interests of our employers or customers. Given the depth of knowledge required for nearly every aspect of our jobs, we have to be cognizant of the fact that there are only so many hours in a day. If there’s anything to the “master-of-none” expression, then we might be doing our employers a disservice when we don’t seek to delegate important functions to a specialist.
I’m primarily concerned with responsibilities that would typically fall to a production database administrator. There’s a rule of risk management that applies to investing, gambling, and yes, application development: Don’t risk more than you can afford to lose! I fear that some of us are doing exactly that when we take on the responsibility for backup and recovery, database security, database configuration, and related duties.
Are you risking more than your employer or customers can afford to lose? Here are some questions that you might ask yourself:
- Do I regularly check my databases for corruption?
- If my database server’s hard drive dies with no hope of recovery, do I have database backups on a separate server, file share, or device?
- If my database server’s hard drive dies with no hope of recovery, do I know how much data would be lost? One hour? 24 hours? One week? More?
- Do my applications connect to my databases using the ‘sa’ account? If not, do I know what permissions my applications have?
If you’re not comfortable with the answers to some of these questions or if you don’t know the answers to some of these questions, then you could be setting yourself up for a very bad day. For those of us who are one-stop-shop developers, there’s nothing more fundamental to the services we provide than protecting and recovering our employers’ data. When we don’t have the proper level of skills and experience, then we should recognize our limitations and explore finding somebody who does.
As one who recently inherited responsibility for protecting our data, I resolved to approach management with the question of whether we were risking more than we could afford to lose by not accessing the right expertise. Since a data loss would cripple our operations, the decision was made to outsource specific production DBA functions to a specialist. We engaged an independent consultant for an initial analysis and configuration. When the initial work was completed, we negotiated a long-term database maintenance agreement. I can now focus on my development work, which includes database development, and my managers and I sleep better knowing that our data is relatively secure.