Database Development - Keep It Agile, Not Fragile

08 October 2011

On October 8, 2011, I presented a session on agile database development at SQL Saturday 92. The goal was to help people understand that_ agile database development makes your business more successful, if you adopt best practices and handle the different risks._

My presentation materials are below. Please note that the demo scripts are designed to work with the AdventureWorks database. Some of them (the design demos) will work in almost any database. Others (the unit test demos) are schema specific.

Slide Deck


This includes several useful integrity checks, such as identifying the following:

  • Possible missing foreign keys
  • Foreign keys with datatype mismatches
  • Foreign keys without indexes
  • Tables without primary keys
  • The number of stored procedures, views, and functions per table


This includes several deployment best practices, including:

  • Re-runnable alter-table scripts
  • Re-runnable index scripts
  • Best practices for changing stored procedures, views, functions, and triggers
  • Example versioning of a database
  • Doing quick verification tests of deployed DB code
  • Examples of how to deprecate tables, and then undo your work if you need to roll back


This includes several examples of how to unit test database objects, including:

  • Unit Testing a Stored Procedure
  • Unit Testing a table schema

Speaking at SQL Saturday 92 - Agile Database Development!

26 September 2011

I have just been accepted to do a 90-minute presentation at SQL Saturday 92, in Portland, Oregon. The topic? Database Development: Keep it Agile, Not Fragile.

The world of software development is accelerating. The time between a project idea and its release date is shrinking. That means developers, business staff, and IT personnel need to do iterative (a.k.a. agile) design and development. Agile development for most types of systems is a known quantity. Agile development for databases is harder, and the best practices are more obscure.

Having done a few hundred database releases in an agile fashion, I’ll be presenting best practices, anti practices, tips, tricks, demos, and scripts you can use. Don’t miss out!