Google reveals little. Is it just a class that is likely to be prone to
change or is it something else entirely?
TIA,
MikeB
Volatility (V) is a statement of the likelihood of change in a given time
period.
Its converse property is impact (I) , the likelihood that of change
propagating to a dependent.
V and I are inversely proportional.
For any entity E, the greater the value of I(E) (the likelihood that a
change to E will cause change propagation to the dependents of E) , the
lower the tolerable value of V(E) .
A good measure of entity 'stability' is : 1 - ( I(E) * V(E) )
Impact is a *structural* property (based on the nature of dependencies) .
Volatility is a *temporal* property (based on the period of observed
change : product release, development iteration etc) .
Regards,
Steven Perryman
> V and I are inversely proportional.
Eh? Where does that assertion come from?
Steven,
the reason I questioned what looked like an assertion was that I've been
exposed to codebases where both V and I are high. Those systems
invariably exhibited poor design.
Taking this further, I'd venture that for a given volatility, impact is
a purely function of the quality of the design.
I wonder whether I misunderstood you and you meant that "in a good
design, V and I are inversely proportional".
Regards,
MikeB
It could be that Steven meant that there is a lower bounds on V*I, but
that is only my guess, I have nothing to back that up.
--
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>
> the reason I questioned what looked like an assertion was that I've been
> exposed to codebases where both V and I are high. Those systems
> invariably exhibited poor design.
By "invariably" , I would expect to be shown a strong objective statistical
correlation between V(E) , I(E) , and other canonical 'quality' measures
(coupling, cohesion etc) .
> Taking this further, I'd venture that for a given volatility, impact is
> a purely function of the quality of the design.
When E has a high value for :
1. I(E) , we are informed about the potential effects of change
throughout a system.
2. V(E) , we are informed about the amount of change occuring for E.
#1 allows us to ask what will happen (rework, re-testing etc) if E
changes, and the justification thereof.
#2 allows us to ask why is E changing so often.
The reasons for either are often nothing to do with poor
design (good design is actually often the cause) .
For example, something that is very useful will have a very high I(E)
value. Think of things like I/O, container functionality etc.
> I wonder whether I misunderstood you and you meant that "in a good
> design, V and I are inversely proportional".
Over time, entities with high V(E) will exhibit I(E)
values tending to the relationship (high impact entities tend to become
less volatile - they 'stabilise' as their desired/essential purpose
becomes clear etc) .
Regards,
Steven Perryman
> MikeB wrote:
>> I wonder whether I misunderstood you and you meant that "in a good
>> design, V and I are inversely proportional".
> It could be that Steven meant that there is a lower bounds on V*I, but
> that is only my guess, I have nothing to back that up.
V(E) and I(E) are in the range [0,1] .
The product can be 1 at worst (impacts everything, changes continually) .
And tends to 0 at best (inversely proportional, the implications of one
property is tempered by that of the other) .
Regards,
Steven Perryman