Part 1 describes the fundamental skills and knowledge that everyone on an agile project team should have. This includes the basics of object orientation, relational databases, the object-relational impedance mismatch, data modeling, and how to deal with legacy data issues. Without this common base of knowledge it is very difficult for application developers and data professionals to work together effectively. A significant problem in the IT industry is that most data books do not cover object-oriented development issues and most object books seem to ignore data issues. This needs to stop. Part 2 focuses on how to take an evolutionary approach to data. This section sets the foundation for a model-driven development (MDD) approach, or more accurately an agile model-driven development (AMDD) approach where your application code and database schemas are based on agile models. This isn't the only way to work, you may decide to take a test-driven development (TDD) approach instead or better yet combine it with AMDD. Both methods support evolutionary development but because MDD is very common within the data community and I suspect that they will gravitate more towards an AMDD approach rather than a TDD approach. However, some agile developers, particularly extreme programmers, prefer TDD over AMDD. Luckily the two approaches work very well together so it really doesn't matter. The implication is that TDD will become more important to data professionals in the coming years. This section also describes database refactoring, an evolutionary technique that enables you to improve your database design in small steps. In many ways database refactoring is normalization after the fact. Chapters describing mapping objects to relational databases, performance tuning, database encapsulation, and supporting tools are included in this part because they enable evolutionary development Part 3 focuses on implementation techniques and strategies such as concurrency control, security access control, finding objects in relational databases, referential integrity, and the effective use of XML. An important observation is that many of these topics are traditionally thought of as data issues, but as you'll see there is far more to them than this � it isn't a black and white world. Part 4 describes strategies for adopting agile database techniques. These chapter provides advice for individuals who want to become agile software developers and for organizations that want to adopt agile techniques.
|