Why VSTS:DB Best Practices?

Hi everyone! My name is Barclay Hill and I am a Program Manager on the Visual Studio Team System Database Edition Product Development Team. Yep, it's a mouthful! I will refer to the product as just "VSTSDB" in my posts. 

I have been working on a whitepaper regarding best practices for using VSTSDB for the last couple of months.  It tends to be something I work on during the off hours and when I get a chance during the week, which is not too often, but a topic I am passionate about nonetheless.  In regards to best practices, I tend to discover things on my own, learn new things from our development team and pick things up from customers; then spread the best practice around contextually in my frequent encounters with customers. It's my trickle-down and around best practices process. Sitting down and writing it up in whitepaper fashion tends to always get pushed out to Friday afternoons and...well, we all know how writing a whitepaper on Friday afternoon is exactly how we like to fnish out the work week.

Recently it occurred to me that blogging sections of the whitepaper,  in little chunks at a time, may be a better approach and more collaborative.  It would probably get read more also. This will give other folks interested in these topics a chance to comment on and contribute to what will be published in the best practices whitepaper. After all, you don't identify and refine best practices in a vacuum. They have to be socialized, refined and elaborated. This will also give purpose to my blog and will help me resist the frequent urges I have of blogging about every cute thing my kids do! ;)

The Best Practices I am focusing on are about using VSTSDB within the Application Life Cycle (ALC). Specifically, how VSTSDB supports the Database Development Life Cycle (DDLC), brings database development into the ALC and thereby contributes to a more holistic Application Lifecycle Management (ALM) strategy.  Sounds a bit buzzy right?  So in short, I am focused on the practices of using VSTSDB to manage your database development, not necessarily how to do database development, but how to integrate your database development processes into your larger application development processes and maximize the value the product provides. 

I have worked as database application developer for many years in the past, so you might also find a posting on how-to's sprinkled in here and there as well.  

These are the topics I plan to write about in the best practices series:

  • Offline Schema Development and Declarative Database Development
  • Managing Data Motion
  • Database Schema Versioning
  • Integrating changes occurring outside your DDLC/ALC process
  • Database Source Code Control
  • Database Code Branching and Code Merging
  • Database Code Promotion and Quality Gates
  • Build Automation and Build Management
  • Deployment Automation and Continuous Integration
  • Targeting Multiple Database Environments
  • Database Project Organization
  • Verifying Database Deployments and Rolling Back Deployments

Not necessarily in that order, but the first is necessary to set the stage for future postings.  So, the next best practices post will be on Declarative Database Development.

Until then, drop me a line regarding the best practice you are most interested in, missing from the list above, or a specific issue your are struggling with.

Barclay Hill

Program Manager | Visual Studio Team System Database Edition | Microsoft Corporation