- #1: Build Classes, Not Individual Databases
- #2: Don't Ignore History
- #3: Automate All Changes to Every Database Instance
- #4: Test Every Change to Database Design
- #5: Force Clients to Break Fast When Interfaces Change
- #6: Encapsulate Database Behavior
- #7: Drive Behavior from Information
- #8: Keep a Complete Unit Test Suite
- #9: Build Only What You Need
- #10: DON'T PANIC
There are two major efforts in making any environment agile. One path of transformation is organizational practices and social interactions. The other path of transformation is the technical practices.
While the technical challenges tend to be basically the same from environment to environment, the social ones seem to be different everywhere I go. There are patterns in those problems as well, but they are a topic for another article.
I tend to focus on the technical part because it’s what I’m good at and also because my icy gaze puts a chill in most people’s hearts. I think I’ve got those pretty well locked down and, if you follow my advice, you too can overcome the technical challenges involved in building an agile database development environment.