Refx :: Martin Fowler on MODIFIABILITY (QCon)
- In agile development process, the Design task is still important, we just changed the way we do it to evolutionary design rather than un upfront one. Yet, In some cases we cant defer design decision till the end, and we do need to do them in an upfront style.
Do the simplest thing that works ( Kent Beck )
- Kent Beck commented on this that “The simplest thing is not the most stupid !”
- Software SHOULD have a model, and cant be only tachtical all the time.
- In a Lean Software Development we dont make decisions before we really have to, but we have to do them once! or otherwise we will be taken as not able to make decisions.
- Try different choices on different teams, building different implementations, find that last minute where you can decide.
- The key to modifiability is encapsulation and abstraction.
- The key question is : Do i have to make the decision yet?
- The Domain Model is made! The task is to reflect it well in the software.
- Isolate Domain models from technical ones
- Preparing a ground for Modifiability
- Making a decision of when to make a decision
- Discuss well with business people to reflect the model
- Html is undoable because there is not a ig investement in doing it
- Breaking encapsulation for a decision makes it a bad decision
- redability of code
- Unit testing to guarantee encapsulation
- Software evolves anyway, maintainability IS an issue!
- Encapsulation is about keeping secrets.
- Pair progamming for teaching design, that will raise team’s productivity as a whole
- Lessons can be learnt better through modifiability than through upfront teaching
- Struggle for reversable architecture








