I listened to Scott Ambler's presentation on data(bases) and agile methods this am - there was a lot of good stuff on the issues. Here are my notes:
Scott Ambler - Agile data, Agile databasesMetaphor from this morning - the data (dba) community is packing for Antarctica. Unfortunately, the rest of us are traveling in the desert or the jungle
Data people - want all the info (data model, etc) up front (Antarctica)
- Agile Data Method
- Agile database techniques
Developers - want agility and incremental (Jungle)
Two reactions to the dba
love them - willing to adapt, change
hate them - insists on up front logical data model, paper, validation, slow to change
Same kind of issues between local project teams and the enterprise planners (IT)
The data and developer communities can, in fact, work together
Part of the problem was the early attitude of the OO community towards the data (RDBMS) community
Developers are not working in a vacuum - there is an enterprise architecture that has to be considered
The enterprise staff is theoretically supposed to support, not control, developers
Not them vs. us - only us. have to work together as a team
Need to find the sweet spot - don't fill the backpack to overflowing
Example - Scott's team (Antarctica) died 11 miles from the ship - carrying too much stuff
There is more to modeling than data modeling
Likewise, there's more to software than coding
The Agile DBA Application developers need to understand the basics of Data Models
Likewise, an Agile DBA must understand the basics of programming Otherwise, they cannot communicate effectively. Similar to the translation issue of this presentation - the audience is listening to a Portuguese translation, things might get lost. If we were to work together, we would learn a bit of each other's languages.
There to support the team, not to produce large documents and models. There to help the team implement a vision that fits into the overall scheme. Should roll up their sleeves and get their hands dirty (like a guide on an expedition). One size does not fit all in methodologies and data
Agile Database Techniques for Agile DBA's Database refactoring is, in fact, as necessary as code refactoring but it's much harder What is it?
The act of making a simple change to the database schema The database is highly coupled to your application code, other application code, data import/export routines, reporting tools, persistance frameworks, documentation, etc. Thus, refactoring is hard What do you need?
There actually are testing tools for databases. Use them.
- Strong configuration management system
- Full regression test suite
- Willingness to work together
- Acceptance of your situation