Fundamentals of Agile Database Development

Level: Introductory

Agility has not found database development to be particularly fertile soil. This is due, in large part, to the fact that people tend to focus on the practices of agility rather than the principles.

This talk covers the fundamental disciplines required to truly develop a database with agility. It covers real techniques that represent the principles of aglity as they apply to the database world. This includes the following:

  • Minimal/emergent design
  • Dealing with the deployment problem
  • Autonomating database builds
  • Managing coupling
  • Wrangling with legacy databases
Process/Mechanics

The talk will be broken into six segments with a “bonus” segment pertaining to legacy databases if we finish the main talk a little early. With the exception of the overview, the demo, and the conclusion, each segment will have a theoretical component, an example, and a conclusion. Questions and answers throughout.

The six segments will be as follows:

  1. Overview
  2. Dealing with the deployment problem
  3. How TDD applies
  4. How design applies
  5. Comprehensive demonstration
  6. Conclusion
  7. How legacy databases can be interned (time permitting)

Overview
I will cover the real problem that stands in the way of agile database development.

Dealing with the Deployment Problem
I will establish a way of building databases that always works no matter whether you are building a new database or upgrading an existing one and that lays the foundation for traditional agile practices.

How TDD applies
I will show how TDD can be applied so that it gives every bit as much confidence to a database developer as a middle-tier developer would get.

How design applies
I will discuss the role of design in an agile database development environment. That is: how it can help, how it can hurt, and what the major things to look out for are.

Comprehensive demonstration
I will show each of the techniques discussed up to this point in action, working together. This will be a demo using real code.

Conclusion/recap
I will revisit the fundamentals one more time and open the floor for some Q&A.

How legacy databases can be interned
If there is time after the main talk, I will go through some techniques to help bring databases that have not previously had the benefits of agile database development practices into the fold.

Learning outcomes
  • The list of disciplines required to develop data with agility
  • How to properly deploy database designs in agile environments
  • How TDD applies to database development
  • How to keep database designs minimal
  • How to manage coupling to/from databases
  • How to intern legacy database systems into an agile process rather than simply write them off
Featured participants
Reviews
Subscribe to an RSS feed of reviews of this proposal Syndicate content