Re: [AM] Database "refactoring" effort question
Scott Ambler <[email protected]>
| Newsgroups | gmane.comp.programming.modeling.agile |
|---|---|
| Message-ID | <[email protected]> |
At 11:12 PM 2/1/2004 +0000, Graham wrote: >Here is a question for you > >END OF LAST ITERATION >We have a database system for processing tax statements and revenue from tax >papers. >The database well encapsulated, hidden from applications behind "views". >We have a test database containing data for 1,000 taxpayers >We have a regression test suite that will, at the push of a button >- push each table through its life cycle from creation through state changes >to archive >- navigate each relationship. >We have a production database containing data for 10 million taxpayers, > >CHANGE REQUEST TO BE PROCESSED IN NEXT ITERATION >In the kernel entity - the Taxpayer table. >Please replace the column Taxpayer Name (40 characters) >by two columns Taxpayer ForeName (25 characters) and Taxpayer Surname (25 >characters). > >THE QUESTION >How long will it take make this small change >- to the test database? >- to the production database? Consultant answer: It depends. ;-) You not only need to refactor the databases, but anything that touches the databases. As I point out at http://www.agiledata.org/essays/databaseRefactoring.html#WhyDatabaseRefactoringIsHard this could be a fair bit of stuff. The amount of coupling will determine the effort. Not a lot of coupling, pretty easy to do. A lot of coupling, you'd better do something to reduce it, such as encapsulate access to your DB (http://www.agiledata.org/essays/implementationStrategies.html). You may also need to worry about this refactoring in other sand boxes (individual developer's workstation, team integration environment, ...). The fundamental steps for doing a refactoring such as you suggest are presented at http://www.agiledata.org/essays/databaseRefactoring.html#Step1StartInYourDevelopmentSandbox. Unfortunately you'd need to invest about 15 minutes and actually read this material, far less time than you seem to be investing in writing up these questions. See http://www.agiledata.org/essays/databaseRefactoring.html#Step2ImplementInIntegration for your test environment, which I assume that this is some sort of pre-production environment which simulates production as close to possible. You'll need to refactor the things that touch the database schema and retest them accordingly. This includes test scripts, extraction scripts, persistence framework meta data, application code, ... These things will then be rolled into production, along with the new database schema as well as the deprecated schema, throughout the deprecation period. Deploying into production ==> http://www.agiledata.org/essays/databaseRefactoring.html#Step3InstallIntoProduction - Scott ==================================================== Scott W. Ambler Senior Consultant, Ronin International, Inc. www.ronin-intl.com/company/scottAmbler.html www.agiledata.org www.agilemodeling.com www.ambysoft.com www.enterpriseunifiedprocess.info www.modelingstyle.info www.ronin-intl.com For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com --^---------------------------------------------------------------- This email was sent to: [email protected] EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h Or send an email to: [email protected] TOPICA - Start your own email discussion group. FREE! http://www.topica.com/partner/tag02/create/index2.html --^----------------------------------------------------------------