192 symposiums and 29,850 attendees since 2001

Pramod Sadalage

Co-author of "Refactoring Databases:Evolutionary Database Development"

Pramod Sadalage
Pramod Sadalage is the co-author of the 2007 Jolt Productivity Award winning
"Refactoring Databases: Evolutionary Database Development", a Martin Fowler
signature series book and author of "Recipes for Continuous Database
Integration". Pramod works as a DBA and developer at ThoughtWorks. He works on
large custom-developed applications that use agile methodologies. While on these
projects, he pioneered the practices and processes of agility in the database.
Pramod writes and speaks about these concepts and practices to help those
interested in using agile practices on databases. He has written and presented
about database administration on XP projects, the adoption of agile processes
with databases, and the impact of agile practices on database administration and
design. Pramod is the owner and founder of the agiledatabases Yahoo! group; he
moderates group discussions and helps group members learn about agile databases.
When he is not working, you can find him spending time with his wife Rupali and
daughter Arula, and trying to improve his running.

Blog

Hibernate weirdness with property names

Posted Friday, October 24, 2008

C more »

Using Explicit Order By in your SQL Statements

Posted Tuesday, September 30, 2008

Recently when our test databases where upgraded new version of Oracle, we started noticing that the order in which some drop down lists were being displayed was not correct. It turns out that the SELECT statement we had, did not have a OR more »

Moved to a Mac

Posted Monday, September 1, 2008

Couple of weeks back I was given a choice to upgrade my work Laptop to a Mac Book Pro or a Windows Laptop. I choose Mac ( I know everyone is into macs nowadays). The transition was pretty good, with the exception of moving my oracle databa more »
Read More Blog Entries »

Presentations

Database Refactoring

Evolve an existing database schema a small bit at a time to improve the quality of its design without changing its semantics. more »

Recipies for Continuous Database Integration

is your database being tested and integrated like your application code? do you have a database integration strategy? do you have a process to upgrade your database as you make subsequent releases? more »

Database Refactoring

close

Pramod Sadalage By Pramod Sadalage

Evolve an existing database schema a small bit at a time to improve the quality of its design without changing its semantics.



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. The predominance of evolutionary development methodologies such as Extreme Programming (XP), Feature Driven Development (FDD) make it clear that the two groups need to work in the same manner to be productive as a team.

Pramod will present material from the 2007 Jolt Productivity Award winning book "Refactoring Databases : Evolutionary Database Design" on how to go about doing evolutionary database development, how to apply all the agile practices to 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.

Continous Integtration: Why not test you database creation and migration scripts as part of Continous Integration and apply the same rigor to the database artifacts that you apply to the application code. You should fail the build when the developer/dba makes a mistake doing a database change

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 assets: Your data models, database tests, test data, and so on are important project artifacts which should be managed just like any other artifact.

Database Schema Deployment: Ensure that the scripts used to build development environments are the exact same as the used in QA, UAT and production. Ensure deployment to production is not a surprise and not a project in itself.


Recipies for Continuous Database Integration

close

Pramod Sadalage By Pramod Sadalage

is your database being tested and integrated like your application code? do you have a database integration strategy? do you have a process to upgrade your database as you make subsequent releases? Make the database part of your Continuous Integration cycle and benefit from it.



It?s considered very difficult to integrate the database, the way application developers integrate their code frequently. Pramod will describe a proven way to integrate the database with the application code and show a way to make it part of the same application code repository. The practice of "Continuous Integration" changed the way software is written, then why not extend the practice to include database in the Continuous Integration cycle, so that you can see integrated results of your application and database work.

Every time a new release of the application is deployed, invariably there are problems with the upgrade/migration of the database. Pramod will show how to create a process where you can upgrade your production databases using upgrade scripts created during development time and how these upgrade scripts can be tested so that you will save time and sleep when deploying applications into production.

As a series of recipes, Pramod will show how DBAs can be effective members of evolutionary teams, delivering value and expertise to the team, how your team can still be distributed across continents and be successful while evolving the database. The recipes are

Continuously Integrating Extracting your database in scripts Using Version control for your database Automating database or schema creation Creating objects in your database Removing database objects Removing your database Using the build.properties files Re-Creating your application database for any build Making it easy for new developers to join the team Integrating on every check-in Strategy for naming Upgrade scripts BuildNumber Timestamp UniqueIdentifier Release Automating Database change script creation Implementing database version checking Sending database upgrades to customers