- Database Refactoring
- Evolutionary Data Modeling
- Database Regression Testing
- Configuration Management of Database Artifacts
- Developer Sandboxes
- Impediments to Evolutionary Database Development Techniques
- What You Have Learned
1.6 Impediments to Evolutionary Database Development Techniques
We would be remiss if we did not discuss the common impediments to adopting the techniques described in this book. The first impediment, and the hardest one to overcome, is cultural. Many of today’s data professionals began their careers in the 1970s and early 1980s when "code-and-fix" approaches to development were common. The IT community recognized that this approach resulted in low-quality, difficult-to-maintain code and adopted the heavy, structured development techniques that many still follow today. Because of these experiences, the majority of data professionals believed that the evolutionary techniques introduced by the object technology revolution of the 1990s were just a rehash of the code-and-fix approaches of the 1970s; to be fair, many object practitioners did in fact choose to work that way. They have chosen to equate evolutionary approaches with low quality; but as the agile community has shown, this does not have to be the case. The end result is that the majority of data-oriented literature appears to be mired in the traditional, serial thought processes of the past and has mostly missed agile approaches. The data community has a lot of catching up to do, and that is going to take time.
The second impediment is a lack of tooling, although open source efforts (at least within the Java community) are quickly filling in the gaps. Although a lot of effort has been put into the development of object/relational (O/R) mapping tools, and some into database testing tools, there is still a lot of work to be done. Just like it took several years for programming tool vendors to implement refactoring functionality within their tools—in fact, now you would be hard pressed to find a modern integrated development environment (IDE) that does not offer such features—it will take several years for database tool vendors to do the same. Clearly, a need exists for usable, flexible tools that enable evolutionary development of a database schema—the open source community is clearly starting to fill that gap, and we suspect that the commercial tool vendors will eventually do the same.