My first Publication Agile-Data-Warehouse-Design-eBook | Page 38

How to Model a Data Warehouse 17 By avoiding the BDUF and instead doing ‘Just Enough Design Upfront’ (JEDUF) in the initial iterations and ‘Just-In-Time’ (JIT) detailed design within each itera- tion, agile development concentrates on the early and frequent delivery of working software that adds value, rather than the production of exhaustive requirements and design documentation that describes what will be done in the future to add value. Agile focuses on the For agile DW/BI, the working software that adds value is a combination of query- able database schemas, ETL processes and BI reports/dashboards. The minimum set of valuable working software that can be delivered per iteration is a star schema, the ETL processes that populates it and a BI tool or application configured to access it. The minimum amount of design is a star. For DW design, the To design any type of significant database schema to match the early and frequent delivery schedule of an agile timeline requires an equally agile alternative to the traditionally serial tasks of data requirements analysis and data modeling. Agile database early and frequent delivery of working software that adds value minimum valuable working software is a star schema development needs agile data modeling Agile Data Modeling Scott Ambler, author of several books on agile modeling and agile database tech- niques (www.agiledata.org) defines agile data modeling as follows: “Data modeling is the act of exploring data-oriented structures. Evolutionary data modeling is data modeling performed in an iterative and incremental manner. Agile data modeling is evolutionary data modeling done in a collaborative manner.” Agile data modeling Iterative, incremental and collaborative all have very specific meanings in an agile development context that bring with them significant benefits: Collaborative is collaborative and evolutionary modeling combines analysis and design Collaborative data modeling obtains data requirements by modeling directly and actively with stakeholders. It effectively combines analysis and design and ‘cuts to the chase’ of producing a data model (working software and documentation) rather than ‘the establishing shot’ of recording data requirements (only docu- mentation). involves Incremental data modeling gives you more data requirements when they are Evolutionary better understood/needed by stakeholders, and when you are ready to imple- ment them. Incremental modeling and development are scheduling strategies that support early and frequent software delivery. stakeholders modeling supports incremental development by capturing Iterative data modeling helps you to understand existing data requirements better and improve existing database schemas through refactoring: correcting mistakes and adding missing attributes which have now become available or important. Iterative modeling and development are rework strategies that in- crease software value. requirements when they grow and change