Episode 186: Martin Fowler and Pramod Sadalage on Agile Database Development

Topics covered
Popular Clips
Questions from this episode
- Asked by 38 people
- Asked by 7 people
Episode Highlights
Migration Techniques
Database migration is a critical aspect of agile development, requiring careful planning and execution to ensure data integrity and application functionality. emphasizes the importance of testing migration scripts in pre-production environments to gauge their duration and optimize them for efficiency 1. This approach helps in identifying potential issues and allows for phased migrations, where initial data is moved, and subsequent changes are applied later 1.
We wrote a probe in our application that actually we pulled out a random document and see if it can parse that. If it can parse that, then it knew that I can actually read this database or else I cannot.
---
This technique ensures that the application can interact with the database without losing data, thus preventing orphan data scenarios 2.
Transition Phases
Handling transition phases during database migrations is crucial for maintaining system compatibility and continuity. discusses using views and triggers to manage changes, allowing both old and new database schemas to coexist 3. This approach is akin to code refactoring, where temporary solutions are implemented to ensure seamless operation until the transition is complete 4.
You apply triggers and then you move data. Like if the new column is not null, that means the new column is being updated by the application.
---
Such techniques are essential in environments where multiple applications interact with the database, ensuring that changes do not disrupt existing functionalities 3.
Migration Strategies
Backward and forward migrations present unique challenges and require strategic planning to avoid data loss and ensure smooth transitions. highlights the importance of small, incremental migrations that change schema and data together, a principle applicable to both SQL and NoSQL databases 5. notes the complexity of backward migrations, particularly when data might be lost if tables are dropped prematurely 6.
You need to realize how you are going to use it. I am not saying you should not drop the table ever, or you should drop the table always. It depends.
---
Advanced techniques, such as introducing new tables before code changes, help in managing rollbacks effectively, preserving data integrity during migrations 7.
Related Episodes


Episode 55: Refactoring Pt. 2
Answers 383 questions

Episode 180: Leading Agile Developers with Jurgen Appelo
Answers 383 questions

Episode 6: Model-Driven Software Development Pt. 2
Answers 383 questions
Episode 103: 10 years of Agile Experiences
Answers 383 questions
Episode 170: Large Agile Software Development with Bas Vodde
Answers 383 questions

Episode 182: Domain-Specific Languages with Martin Fowler and Rebecca Parsons
Answers 383 questions

Episode 171: Scala Update with Martin Odersky
Answers 383 questions

Episode 199: Michael Stonebraker on Current Developments in Databases
Answers 383 questions

Episode 17: Feedback and Roadmap
Answers 383 questions

Episode 31: Agile Documentation
Answers 383 questionsEpisode 147: Software Development Manager
Answers 383 questions

364: Peter Zaitsev on Choosing the Right Open Source Database
Answers 383 questions

Episode 401: Jeremy Miller on Waterfall Versus Agile
Answers 383 questions

Episode 156: Kanban with David Anderson
Answers 383 questions

Episode 188: Requirements in Agile Projects
Answers 383 questions














