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