<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Software Project Perspective on the Fitness and Evolvability of Personal Learning Environments</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sankt Augustin</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Germany christian.prause@fit.fraunhofer.de</string-name>
        </contrib>
      </contrib-group>
      <fpage>49</fpage>
      <lpage>50</lpage>
      <abstract>
        <p>This position paper deals with the exploration of tness and evolvability of personal learning environments (PLEs). Taking a software engineer's perspective, PLE evolution is a software project. Software quality characteristics like Functionality and Usability map to the PLE's tness, while Maintainability is important for evolvability. Only adaptation can secure future tness. But for this, the software project has to be a good PLE for its developers in its on right.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>Common wisdom of software development | going back
to Edward V. Berard | says: \Walking on water and
developing software from a speci cation are easy if both are
frozen." The success of Personal Learning Environments
(PLEs) not only depends on their tness for a certain
purpose or environment, but no less than this depends on their
ability to evolve, i.e. to adapt to changes. In the world of
software, the continuous change of requirements is as sure
as death and taxes. A PLE that fails to catch up with new
requirements, ages and eventually becomes useless.</p>
      <p>
        Bear with me, while I relate to the workshop's natural
evolution metaphor: The extinction of dinosaurs is attributed to
their failure to adapt to a changing environment. Their races
showed only few diversi cation and innovativeness in
behavioral strategies. When their world changed, only two species
attempted an adaptation to new foods [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The dinosaurs'
seemingly unbreakable predominance abruptly ended,
making room for mammals that had waited in a niche.
Mammals instantly lled the gap, and diversi ed into a plethora
of species. Today, they emboss the planet's face as successful
predators. If dinosaurs had not failed to adapt, they would
have remained invincible competitors for any other species.
      </p>
      <p>Predominance and wide spread were limited predictors of
tness and evolvability. Predominance can suppress
competitors, but for how long? It is no disgrace to wait for
a chance like the early mammals. To avoid extinction and
eventually prevail, PLEs must evolve. Di erent from nature,
where mutation of organisms occurs by accident and
without the intent to optimize a creature's tness, adaptation
happens through conscious decision and human developers.</p>
      <p>I take on a software engineer's view in the discussion on
tness and evolvability of PLEs. In this view, evolvability E
is understood as a PLE's ability to embrace natural change,
i.e. evolution E0. Fitness F does not imply evolvability, nor
does evolvability imply tness. Yet both are prerequisites
of successful evolution F ^ E ( E0. New clades of PLEs
often start from research. While tness is usually tested
thoroughly there, evolvability is often neglected.</p>
      <p>The easier developers perform changes, the higher the
chance that a PLE will cope with emerging requirements.
Only this can make a PLE remain t. Section 2 addresses
the ease of change in software projects. This leads to the
nding that learning is essential, and to the dualism that
evolution is a PLE itself (Section 3). As long as a PLE's
tness su ces to safe it from extinction, evolvability is most
important. A more evolvable PLE will adapt to changing
environmental demands faster and easier. In conclusion, this
is not least a matter of how easy PLE developers can obtain
the necessary knowledge to make change happen.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>EMBRACING THE CHANGE</title>
      <p>
        Evolvability means to be prepared for changing
environments and the unknown. It cannot be said in an
across-theboard fashion what that practically means. It would imply
to summarize the achievements of software engineering in a
few sentences. In the Iron Triangle, the prime resource is
people supported by processes and technology [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. A full
discussion of all three factors would be way out of scope of this
paper. Instead, here are some fundamental considerations:
      </p>
      <p>
        Whenever a software system grows larger, its
complexity increases to a level that is no longer easily handable.
Any successful software will eventually grow to that size.
Abstraction and structuring that organize it into an
understandable architecture become necessary. A good
architecture means that developers can change parts without having
to understand everything. But for the individual developer,
having to adhere to architecture rules can be cumbersome.
In a multi-tier Web-Service project, developers of front-end
components bypassed the middle layer, and directly accessed
back-end layers. This sped up development at rst, but
degraded architecture to a costly mess. Evolvability
assessment should take into account how an architecture is
protected, and how technical debt (see also [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) is dealt with.
      </p>
      <p>
        The term architecture should not be confused with
integration platform. An integration platform can be something
like UNIX's toolbox concept with its many small programs.
It can be Web-Services, or a single program based on OSGi.
The di erent platforms have di erent strengths and
weaknesses that in uence PLE tness. Yet from an evolvability
point of view, they are similar, all allowing fast adaptation
through reuse of components. Do not think that a
technology has reuse built in; instead, reuse is a discipline [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
Here, it is more important to look at the processes.
      </p>
      <p>
        Even with the best architecture, building a software
architect's knowledge costs a hundred million. The combination
of deep domain knowledge and system engineering
capabilities is invaluable [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Will the architect stay with the PLE
project? What endeavors are made to train new architects?
      </p>
      <p>Is the business model associated with the PLE project
sustainable? While a potent company may be able to
handle closed-source evolution on its own, also the openness of
open source | mind the license | has advantages for
evolvability: open standards, interoperability, cost e ectiveness,
attractiveness for users, possibly unlimited branching and
experimentation, and a higher number of potential
developers. However, a major road block to becoming a productive
executor of PLE evolution, is knowledge about the software.</p>
      <p>
        The Maintainability quality characteristic describes a
software's capability to be modi ed and evolve [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. By being
analyzable, easy and predictable to change, and allowing to
test changes, software developers can gain a deep
understanding of the software through practical experimentation.
      </p>
      <p>All of the aspects in the paragraphs above, help
developers to understand the software by being few
(complexityreducing architecture), simple (with reuse in mind),
supervised (senior architect guidance), open (open source), and
practical (support experimentation) to learn. Knowledge
about the software project, i.e. about how to evolve the
PLE, is at the center of evolvability. Not only is the process
of PLE evolution a software project, but a software project
is a PLE itself. This duality is addressed next, when we look
at internal documentation, which can be considered as the
learning material that supports learning a software system.</p>
    </sec>
    <sec id="sec-3">
      <title>THE SOFTWARE PROJECT AS A PLE</title>
      <p>
        Modern software systems are too complex to fully
understand them. But a certain understanding is necessary
for performing changes. Working on a computer system is
therefore a continuous learning process. The learning
materials are process artifacts like source code, requirements,
bug history, etc.; a developer's PLE consists of his individual
selection of source code pieces, requirements, searchable bug
records and so on that are delivered to him through tools
like an IDE or an issue tracker. Developers do not like to
create such learning material because it has few value for
them [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. But it is needed to persist collaborative long-term
e orts like developing and maintaining a software.
      </p>
      <p>
        Consider the example of source code (see also [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]): Source
code is mostly learning material for us humans. There is
an in nite number of ways of writing a same-purpose
computer program. Neither does it matter for a computer what
programming language one uses, nor does a parser care how
functions and methods are named. The instructions that the
computer needs are intertwined with the human-readable
lines of source code. Functions, data types, objects,
comments, macros, etc. and their respective names are just
abstractions that make the design appear more clearly from
code by masking unneeded implementation details [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. This
way we humans better understand what the computer will
do. Programming languages exist so that we can better
explain to our fellow developers what the computer will do.
      </p>
      <p>
        In a small, one-person, throw-away-prototype project it
may be su cient to just code, but any other project will
eventually need documentation [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The actual way of how
code is documented is less important, as long as all the
necessary information is conveyed. The di erence that matters
is that between hacking code quick and dirty, or being nice
to fellow developers by making code easier to understand
by investing a little more e ort. Source code | originally
a medium of communication between man and machine |
has become a medium of communication among humans [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Documentation (as learning material) communicates
background, context, and trial-and-error information. This
information is extremely valuable [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], but will get lost if not
preserved. Motivating developers to create good learning
material is a key to evolvability and survival of PLEs.
4.
      </p>
    </sec>
    <sec id="sec-4">
      <title>CONCLUSION</title>
      <p>Evolvability is important for the success of a PLE, because
it allows to adapt it to new environments, and thus stay t.
PLE evolution happens through a software project.
Developers, who realize the change of evolution, require a certain
knowledge of the software for this. Evolvability then is the
availability and ease of obtaining the necessary knowledge.</p>
      <p>After all, a PLE's evolution, i.e. its software project, is a
PLE in its own right. This duality between software projects
and PLEs is the key to evolvability, and future tness. Does
the software project make a good PLE for its developers? If
yes, then a big obstacle to survival is cleared out of the way.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgment</title>
      <p>This paper was invited by the EFEPLE workshop and
supported by the CAPLE project.
5.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>W.</given-names>
            <surname>Cunningham</surname>
          </string-name>
          .
          <article-title>The wycash portfolio management system</article-title>
          .
          <source>In OOPSLA Addendum. ACM</source>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>B.</given-names>
            <surname>Curtis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Krasner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Iscoe</surname>
          </string-name>
          .
          <article-title>A eld study of the software design process for large systems</article-title>
          .
          <source>Comm. of the ACM</source>
          ,
          <volume>31</volume>
          :
          <fpage>1268</fpage>
          {
          <fpage>1287</fpage>
          ,
          <string-name>
            <surname>November</surname>
          </string-name>
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Dubochet.</surname>
          </string-name>
          <article-title>Computer code as a medium for human communication: Are programming languages improving?</article-title>
          <source>In 21st Annual PPIG Workshop</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <source>[4] ISO/IEC 9126-1: Software engineering { product quality: Part</source>
          <volume>1</volume>
          :
          <string-name>
            <surname>Quality</surname>
            <given-names>model</given-names>
          </string-name>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Koch</surname>
          </string-name>
          .
          <article-title>The people premium</article-title>
          . online: http://www. projectsatwork.com/content/articles/227504.cfm,
          <year>October 2005</year>
          . Projects@Work Journal.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G. T.</given-names>
            <surname>Lloyd</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. E.</given-names>
            <surname>Davis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Pisani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Tarver</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ruta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sakamoto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. W. E.</given-names>
            <surname>Hone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jennings</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Benton</surname>
          </string-name>
          .
          <article-title>Dinosaurs and the cretaceous terrestrial revolution</article-title>
          .
          <source>R. Soc. B</source>
          ,
          <volume>275</volume>
          :
          <fpage>2483</fpage>
          {
          <fpage>2490</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C. R.</given-names>
            <surname>Prause</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Reiners</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dencheva</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          .
          <article-title>Incentives for maintaining high-quality source code</article-title>
          .
          <source>In PPIG-WIP</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Raskin</surname>
          </string-name>
          .
          <article-title>Comments are more important than code</article-title>
          .
          <source>ACM Queue</source>
          ,
          <volume>3</volume>
          (
          <issue>2</issue>
          ):
          <volume>64</volume>
          {62 (sic!),
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          . Agile documentation,
          <source>anyone? IEEE Software</source>
          ,
          <volume>26</volume>
          (
          <issue>6</issue>
          ):
          <volume>11</volume>
          {
          <fpage>12</fpage>
          , Nov/Dec
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Spinellis</surname>
          </string-name>
          .
          <article-title>Code documentation</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>27</volume>
          :
          <fpage>18</fpage>
          {
          <fpage>19</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Tilley</surname>
          </string-name>
          .
          <article-title>Documenting-in-the-large vs. documenting-in-the-small</article-title>
          .
          <source>In CASCON. IBM Press</source>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wasmund</surname>
          </string-name>
          .
          <article-title>Reuse facts and myths</article-title>
          .
          <source>In ICSE</source>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>