From: MikeB on

A colleague has been reading Robert C Martin's "Agile Principles,
Patterns, and Practices in C#". In the "Factory chapter", Robert Martin
uses the term "Volatile Class" but neither me nor my colleague are sure
what he means by that.

Google reveals little. Is it just a class that is likely to be prone to
change or is it something else entirely?

TIA,
MikeB
From: S Perryman on
MikeB wrote:

> A colleague has been reading Robert C Martin's "Agile Principles,
> Patterns, and Practices in C#". In the "Factory chapter", Robert Martin
> uses the term "Volatile Class" but neither me nor my colleague are sure
> what he means by that.

> Google reveals little. Is it just a class that is likely to be prone to
> change or is it something else entirely?

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
From: MikeB on
S Perryman wrote:

> V and I are inversely proportional.

Eh? Where does that assertion come from?
From: MikeB on
MikeB wrote:
> S Perryman wrote:
>
>> 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
From: Daniel Pitts on
MikeB wrote:
> MikeB wrote:
>> S Perryman wrote:
>>
>>> 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".

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/>