20.01.2014 Views

thesis - Faculty of Information and Communication Technologies ...

thesis - Faculty of Information and Communication Technologies ...

thesis - Faculty of Information and Communication Technologies ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!