Isolating and Integrating Cost
There are two activities going on when creating a system: isolation and integration.
ISOLATION is about creating building blocks: anything from data, code, UI and people:
INTEGRATION is about putting things together…
…and enabling them to communicate with each other:
What you need to do when designing systems is to find how to split up your system in building blocks (isolation) and make them usable and stable by separating things by change rate. The parts in the system that are used to glue (integrate) the building blocks together need to be changeable because they change more often than the (isolated) building blocks:
How changeable and usable/stable different parts of the system need to be, depends on the rate of change and the rate of use.
The design cost can be calculated by the formula:
When isolating or integrating building blocks, the total cost of use can be calculated by multiplying the cost of use with the rate of use: Uc * Ur. The time is almost the greatest cost so Uc can for example be how long it takes to perform a task (to use something).
When isolating or integrating building blocks, the total cost of change can be calculated by multiplying the cost of change with the rate of change: Cc * Cr. The cost of change depends on a number of things like: if it’s understandable, the number of integrations or if you own the right to change (or need to make a copy or wait for someone else to do the change).
If something is never changed (Cr = 0) then it does not matter if the cost of change (Cc) of that thing is high. The total cost of change (Cc * Cr) will be zero anyway.
LEARNING AND PRACTISING
The cost is relative and depends on how much you have learned and practised:
So the cost of using or changing something is relative and can be decreased by training and practising (things can be done faster and more correctly), and increased by stopping learning and practising (you start to forget if you don’t practice).
Here are the notes from the conference:
I have worked with these ideas for several years and will publish them as a website sometime during 2015.
Thanks for a very good conference!