At the last meeting of the TLV Software Architecture Meetup, Rotem Hermon, VP Architecture at Gigya, gave a very interesting talk about “Change Driven Design”.
Title: Coding Changes
Abstract: Every developer knows that the only constant thing is change, and every developer has the scars to prove it. When we come to designing and writing software, we should make handling change one of our main concerns. We all pretty much do it, even if we don’t usually call it that. In this talk we’ll discuss the four principles of Change Driven Design. We’ll also explore some software architecture methodologies that position handling change as a core concept and design principle.
Change Driven Design
In particular I like very much Rotem’s definition of the four principles of Change Driven Design:
- Areas of change should be contained.
- Things that are more likely to change should be easier to change.
- Things that are less likely to change should not depend on things that are likely to change.
- Change should entail extending the system rather than refactoring.
I believe my proposal of Adaptable Design Up Front (ADUF) is a good example of the application of these principles to high-level design.
These are the original slides of Rotem’s presentation:
Here is the video of the talk (in Hebrew):
Please share your comments below.