am 20. Juni 2011
Data (as opposed to application) migration is an often neglected topic in the context of change in software. Much effort is spent on software renewal projects but the migration of data from old data sources to new data bases is mostly considered to be an upleasant task which in planning is often sidelined. With sometimes disastrous consequences: Failure to transfer data into the new applications will lead to failure of the renewal project. Research has shown that only about 16% of all migration projects succeed within time an budget. The top reasons for failure are unrealistic scoping and lack of methodology or experience. Given these facts it is surprising that there should be few papers or books on the market addressing the question of data migration. The present book is the rare exception and it does a very good job explaining the elements of a data migration project and how such a project is to be organized. Its target readership are project managers or architects who either need to run a migration project themselves or in whose project portfolio migration plays a subsidiary role (such as application migration). Given the rather nontechnical account of the subject database experts or similar technical roles will not find much material to chew on.
The book comes in two parts: Part one explains the key principles behind data migration. This part shows in what ways data migration is different from other data transfer projects, and it explains the particular challenges involved. The second part is a guideline on how to set up and carry through a data migration project from an organisational perspective. Both chapters are as specific as a general book on the topic can be.
On reading the book I found that a few topics are not adequatly covered, however. There is fairly little material on testing. Also pragmatic issues are mostly left out. For instance, I have often found that migration projects which involve databases should use a coding style which avoids large (and thus mostly unmanageable) SQL statements and instead employs fine grained, simple rules only. Such (engineering) questions do not feature in the book. Omissions include the absence of a discussion of what good documentation might look like. The book goes as far as to say what documents should be written and with what intention, but the reader will find little guidance on how these documents should be written. Again, expressing transformation rules and describing legacy data models takes more, in practice, than ERM-tools. These omissions weigh lightly when compared with the obvious strengths of the book. The chief strength being the fact that this is a rare book on a neglected topic.
I enjoyed reading the book because, apart from the very relevant contents, it is lucidly, even entertainingly written and yet well structured. It serves both as an introductory text and as a reference to the field. The author has succeeded in condensing the relevant knowledge into 200 pages, whis is little as compared to many other books in computing. But most importantly, the author has had a long career in data migration projects himself, and his experience shows through almost every line of the text and the many anecdotes he relates (but which mercifully he keeps isolated from the main text so as not to blur the argument with anecdotal sidelines). This is a most recomendable book which I hope will find wide distribution given its important theme.