Agile Data Modeling is collaborative and evolutionary

0 Flares 0 Flares ×

Agile data modelling is an extensive topic and there have been many books written on the subject. Scott Ambler, an expert on agile database techniques ( defines agile data modelling as follows:

Data modelling is the act of exploring data oriented structures. Evolutionary data modelling is data modelling performed in an iterative and incremental manner. Agile data modelling is evolutionary data modelling done in a collaborative manner.

The key here are the terms COLLABORATIVE, INCREMENTAL and ITERATIVE. All of these terms have very specific meanings in agile development context which bring with them special benefits:

  • Collaborative Data Modelling – The term “Collaborative” in this context emphasizes on modelling directly with stakeholders so they are actively involved. It effectively combines analysis and design and ‘cuts to the chase of producing a data model which means working software and documentations rather than ‘the establishing shot’ of recording data requirements (only documentation).
  • Incremental Data Modelling – The term “Incremental” in this context means getting the data requirements when they are better understood or needed by the stakeholders and when you are ready to implement them. Incremental modelling and development are scheduling strategies that support early and frequent software delivery.
  • Iterative Data Modelling – The term “Iterative” in this context emphasizes on understanding data requirements better and improve existing databases schemas through re-factoring, correcting mistakes and adding missing attributes which have now become available or important. Iterative modelling and development are rework strategies that increase software value.

Like I said, this is a vast subject but I hope this brief summary provides an understanding of what Agile Data Modelling fundamentally means. It’s not replacing the traditional data modelling, it is adding regular breaks to the process to measure progress, to re-evaluate and adjust the design to take changing and new requirements into account.

So what’s been your experience? Do you think it is a better approach? Do you have any success stories? I would love to hear your thoughts.

If you enjoyed this post, please help me out by sharing it using one of the share buttons below this post.