T25: Refactoring Databases: Evolutionary Database Design
Monday, Oct 23, from 08:30 to 12:00, D133
For years the norm for object developers was to work in an evolutionary (iterative and incremental) manner but for database developers to work in a more serial manner it is clear that the two groups need to work in the same manner to be productive as a team. Scott and Pramod will present material from their book "Refactoring Databases : Evolutionary Database Design" on how to go about doing evolutionary database development and will talk about the following techniques:
- Database refactoring. Evolve an existing database schema a small bit at a time to improve the quality of its design without changing its semantics.
- Evolutionary data modeling. Model the data aspects of a system iteratively and incrementally, just like all other aspects of a system, to ensure that the database schema evolves in step with the application code.
- Database regression testing. Ensure that the database schema actually works.
- Configuration management of database artifacts. Your data models, database tests, test data, and so on are important project artifacts which should be managed just like any other artifact.
- Developer sandboxes. Developers need their own working environments where they can modify the portion of the system which they are building and get it working before they integrate their work with that of their teammates.
Intermediate: Developers, DBAs, Change Managers, Build Masters, Deployment Managers, and Project Managers.
Goals: Tutorial participants will gain in depth knowledge about different ways to refactor their database. Detailed instructions on refactorings will be provided. This will include systematic instructions along with application and database code examples with UML diagrams.
Format: Presentation slides with examples (on slides and real live examples with Oracle, ANT, Java)
Pramod Sadalage, Thoughtworks Inc: Pramod Sadalage is a Consultant for ThoughtWorks, an enterprise application development and integration company. He first pioneered the practices and processes of evolutionary database design and database refactoring in 1999 while working on a large J2EE application using the Extreme Programming (XP) methodology. Pramod writes and speaks about database administration on evolutionary projects, the adoption of evolutionary processes with regard to databases, and evolutionary practices impact upon database administration, in order to make it easy for everyone to use evolutionary design in regards to databases. When he is not working, you can find him spending time with his family and trying to improve his running.
Scott Ambler, IBM: Scott W. Ambler is the Practice Leader for Agile Development within IBM's methods group. He is founder and thought leader of the Agile Modeling (AM) (www.agilemodeling.com), Agile Data (AD) (www.agiledata.org), Enterprise Unified Process (EUP) (www.enterpriseunifiedprocess.com), and Agile Unified Process (AUP) (www.ambysoft.com/unifiedprocess) methodologies. Scott is the (co-)author of several books, including Refactoring Databases, Agile Modeling, Agile Database Techniques, The Object Primer 3rd Edition, and The Elements of UML 2.0 Style. Scott is a contributing editor with Dr. Dobb's Journal (www.ddj.com) and has spoken and keynoted at a wide variety of international conferences including Software Development, UML World, Object Expo, Java Expo, and Application Development. Scott graduated from the University of Toronto with a Master of Information Science. In his spare time Scott studies the Goju Ryu and Kobudo styles of karate.