thesis - Faculty of Information and Communication Technologies ...
thesis - Faculty of Information and Communication Technologies ...
thesis - Faculty of Information and Communication Technologies ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 7. Implications<br />
overall structure <strong>and</strong> shape <strong>of</strong> the distribution. We found no evidence<br />
that developers actively measure the metric distribution <strong>and</strong> aim to fit<br />
within it, as there is no traces <strong>of</strong> this type <strong>of</strong> behaviour in the change<br />
logs, development process documents or release notes that we studied.<br />
The interesting aspect is that developers have no direct knowledge <strong>of</strong><br />
the overall distribution, yet the set <strong>of</strong> choices they make ensure that the<br />
overall pr<strong>of</strong>ile is highly consistent. This suggests that feedback operates<br />
at the local level rather than at the system level. That is, developers notice<br />
that a certain class is too complex <strong>and</strong> take steps to correct that.<br />
Similarly, refactoring efforts [81] in most cases are likely to be choices<br />
made with local information.<br />
This behaviour <strong>of</strong> developers relying on localised feedback is indicative<br />
<strong>of</strong> s<strong>of</strong>tware maintenance being a stochastic process that generates an<br />
emergent pattern when observed at the system level. We define emergence<br />
in this context as a process that drives a system to acquire a<br />
spatial, functional <strong>and</strong> temporal structure without specific directed interference<br />
from outside. By specific, we mean that the structure or<br />
functioning is not the result <strong>of</strong> directed <strong>and</strong> planned actions, rather<br />
the system achieves its structure via a series <strong>of</strong> autonomous actions<br />
that are taken at r<strong>and</strong>om intervals for a range <strong>of</strong> purposes. Interestingly,<br />
s<strong>of</strong>tware is not unique in this emergent behaviour as this pattern<br />
has also been identified in human engineered, social <strong>and</strong> natural systems<br />
[111].<br />
What are the set <strong>of</strong> causal factors that cause this observed phenomenon?<br />
We do not have a direct answer yet <strong>of</strong> the causal factors, but the consistency<br />
<strong>of</strong> the observations gives rise to the speculation that developer<br />
decisions are driven by some form <strong>of</strong> cognitive preference that makes developers<br />
choose solutions with certain typical pr<strong>of</strong>iles. It appears that<br />
there exists an acceptable range <strong>of</strong> complexity for programmers <strong>and</strong> this<br />
range is domain-independent since the Gini coefficients across all analyzed<br />
systems fall within a tightly-bounded interval <strong>and</strong> is independent<br />
<strong>of</strong> the Java language semantics as well as development-environment<br />
neutral. The Java programming language does not, in any way, limit<br />
developers to choose between design alternatives or forces them to construct<br />
s<strong>of</strong>tware with the observed distribution pr<strong>of</strong>iles <strong>and</strong> hence the<br />
184