Speakers
- Dan Allen
- Aaron Bedra
- Tim Berglund
- Rohit Bhardwaj
- David Bock
- Stevie Borne
- Jeff Brown
- James Carr
- Scott Davis
- Jeremy Deane
- Keith Donald
- Michael Easter
- Robert Fischer
- Neal Ford
- Brian Gilstrap
- Andrew Glover
- Brian Goetz
- Stuart Halloway
- David Hussman
- Mark Johnson
- Dave Klein
- Scott Leberknight
- Tiffany Lentz
- Howard Lewis Ship
- Chris Maki
- Matthew McCullough
- Alex Miller
- Ted Neward
- Michael Nygard
- Pratik Patel
- Mark Richards
- Brian Sam-Bodden
- Srivaths Sankaran
- Nathaniel Schutta
- Aleksandar Seovic
- Ken Sipe
- Brian Sletten
- Matt Stine
- Venkat Subramaniam
- Burr Sutter
- Vladimir Vivien
- Mark Volkmann
- Craig Walls
- Richard Worth
Pramod Sadalage
Co-author of "Refactoring Databases:Evolutionary Database Development"
"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
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 »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 »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.
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