This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
We've started a large project which involves i18ning our codebase and databases.
We have dozens of C batch programs and a significant java web app that must work with a new database schema as well as the old. To make matters worse, we have 25 databases (and counting, as we add customers.) We also have two database and hardware platforms, DB2 on AIX and a Tandem database which is quite primitive and at this time, necessary. The DB2 database schemas we currently have weren't built with unicode support. The Tandem doesn't support unicode at all. A large part of our effort involves finding ways to expand our use of DB2 by migrating as much functionality from the Tandem as possible.
For functional testing, we'd want an automated way to: 1) specify a configuration ID which will pull a subset of data from a 'gold standard' database and populate a DB2 database and two Tandem databases (one is for client data, one is for information common to all clients.) This mimics our current situation. 2) ER/ETL/migrate data from the 'legacy' schemas to new i18n'ed DB2 and Tandem schemas. 3) Run the current programs and tests against the legacy databases 4) Run the new programs and tests against the i18n'ed databases 5) Compare the results. 6a) For web code, also run the new code against the old schemas. 6b) Compare the results.
The above would have to be possible on a per-developer basis. That is, we could each fetch a configuration and work independently without stepping on each other. Further, a single developer could have multiple copies of the same test running if need be.
This looks like a tremendous amount of work. I doubt our ability to get this done and hit our dates.
I am thinking that there must be some configuration management software out there to reduce the brunt of this. I invite any and all opinions and alternative ideas.