Master

Refactoring databases


Very few techniques have the power to improve the way software evolves as those centered on refactoring. For many, improving database design should be part of this evolution but doing so safely, with tests, without losing data, has been daunting. Here's where database refactoring comes in. Based on knowledge accumulated over the years, this book provides a practical guide to refactoring databases effectively.

Evolve database design without changing semantics


Refactoring has proven its value in a wide range of development projects ― helping software professionals improve system designs, maintainability, extensibility, and performance. 


In this book, leading agile methodologist Scott Ambler and renowned consultant Pramod Sadalage introduce powerful refactoring techniques specifically designed for database systems. Using start-to-finish examples, the authors walk you through refactoring simple standalone database applications as well as sophisticated multi-application scenarios. 


Use it as a comprehensive guide and reference to learn how to overcome the practical obstacles you might face when refactoring real-world databases. 


[Podcast] Refactoring databases — or evolutionary database design

Our hosts Rebecca Parsons and Neal Ford caught up with Pramod and Martin Fowler to hear about the genesis of the book and explore how the principles of refactoring work in a world of NoSQL databases.


Please note: owing to a technical issue, the sound quality for one of our speakers is not ideal. We hope this doesn't detract from your enjoyment of this episode.

If you...


  • are interested in improving your productivity as a team
  • wish to bring effective database development practices into your team
  • or want to introduce agile data management practices and evolutionary database design into your organization...

then this book is for you!

Read more and explore

What is Database Refactoring?


A collection of database refactoring patterns and database development practices to enable evolutionary database development & Continuous Delivery

Data Management Guide


Data management includes a whole host of aspects: storing data in data bases or other data storage mechanisms, moving data between applications, and many more.


Read more from martinfowler.com about data management.

Evolutionary Database Design


How agile methods, in particular extreme programming (XP), with a number of practices that make this evolutionary architecture practical ?

Behavior Driven Database Development


Here we are going to see how the BDD techniques can be applied to database development and how these techniques can be used to develop and design databases, in an iterative and incremental way.

About the authors

Pramod Sadalage

Director


At Thoughtworks, Pramod enjoys the rare role of bridging the divide between database professionals and application developers. He works with clients with particularly challenging data needs, which require new technologies and techniques. In the early 2000s, he developed techniques to allow relational databases to be designed in an evolutionary manner based on version-controlled schema migrations. He is a contributing author for Building Evolutionary Architectures - Support Constant Change, co-author of Refactoring Databases, co-author of NoSQL Distilled, author of Recipes for Continuous Database Integration and continues to speak and write about the insights he garners.

Scott W. Ambler


Scott is the co-founder of Disciplined Agile (DA), which was acquired by Project Management Institute in August 2019. He is the creator of the Agile Modeling (AM) and Agile Data (AD) methods. He has co-authored several books, including Choose Your WoW!, An Executive's Guide to Disciplined Agile, Disciplined Agile Delivery, Refactoring Databases, Agile Modeling, and The Elements of UML 2.0 Style. 

Explore the latest volume of the Technology Radar