<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A Software Project Perspective on the Fitness and Evolvability of Personal Learning Environments</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Christian</forename><forename type="middle">R</forename><surname>Prause</surname></persName>
							<email>christian.prause@fit.fraunhofer.de</email>
							<affiliation key="aff0">
								<orgName type="institution">Fraunhofer FIT Schloss Birlinghoven</orgName>
								<address>
									<settlement>Sankt Augustin</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Software Project Perspective on the Fitness and Evolvability of Personal Learning Environments</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">15F42963765710586CC841D901C22389</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T17:57+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This position paper deals with the exploration of fitness 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 fitness, while Maintainability is important for evolvability. Only adaptation can secure future fitness. But for this, the software project has to be a good PLE for its developers in its on right.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">INTRODUCTION</head><p>Common wisdom of software development -going back to Edward V. Berard -says: "Walking on water and developing software from a specification are easy if both are frozen." The success of Personal Learning Environments (PLEs) not only depends on their fitness 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 diversification and innovativeness in behavioral strategies. When their world changed, only two species attempted an adaptation to new foods <ref type="bibr" target="#b5">[6]</ref>. The dinosaurs' seemingly unbreakable predominance abruptly ended, making room for mammals that had waited in a niche. Mammals instantly filled the gap, and diversified 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 fitness 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. Different from nature, where mutation of organisms occurs by accident and without the intent to optimize a creature's fitness, adaptation happens through conscious decision and human developers.</p><p>I take on a software engineer's view in the discussion on fitness and evolvability of PLEs. In this view, evolvability E is understood as a PLE's ability to embrace natural change, i.e. evolution E . Fitness F does not imply evolvability, nor does evolvability imply fitness. Yet both are prerequisites of successful evolution F ∧ E ⇐ E . New clades of PLEs often start from research. While fitness 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 fit. Section 2 addresses the ease of change in software projects. This leads to the finding that learning is essential, and to the dualism that evolution is a PLE itself (Section 3). As long as a PLE's fitness suffices 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">EMBRACING THE CHANGE</head><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 <ref type="bibr" target="#b4">[5]</ref>. A full discussion of all three factors would be way out of scope of this paper. Instead, here are some fundamental considerations: 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 first, but degraded architecture to a costly mess. Evolvability assessment should take into account how an architecture is protected, and how technical debt (see also <ref type="bibr" target="#b0">[1]</ref>) 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 different platforms have different strengths and weaknesses that influence PLE fitness. 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 <ref type="bibr" target="#b11">[12]</ref>. 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 <ref type="bibr" target="#b1">[2]</ref>. 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 effectiveness, 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 modified and evolve <ref type="bibr" target="#b3">[4]</ref>. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">THE SOFTWARE PROJECT AS A PLE</head><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 <ref type="bibr" target="#b8">[9]</ref>. But it is needed to persist collaborative long-term efforts like developing and maintaining a software.</p><p>Consider the example of source code (see also <ref type="bibr" target="#b6">[7]</ref>): Source code is mostly learning material for us humans. There is an infinite 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 <ref type="bibr" target="#b9">[10]</ref>. 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 sufficient to just code, but any other project will eventually need documentation <ref type="bibr" target="#b10">[11]</ref>. The actual way of how code is documented is less important, as long as all the necessary information is conveyed. The difference 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 effort. Source code -originally a medium of communication between man and machinehas become a medium of communication among humans <ref type="bibr" target="#b2">[3]</ref>. Documentation (as learning material) communicates background, context, and trial-and-error information. This information is extremely valuable <ref type="bibr" target="#b7">[8]</ref>, but will get lost if not preserved. Motivating developers to create good learning material is a key to evolvability and survival of PLEs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">CONCLUSION</head><p>Evolvability is important for the success of a PLE, because it allows to adapt it to new environments, and thus stay fit. 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 fitness. 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></div>		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgment</head><p>This paper was invited by the EFEPLE workshop and supported by the CAPLE project.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">The wycash portfolio management system</title>
		<author>
			<persName><forename type="first">W</forename><surname>Cunningham</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">OOPSLA Addendum. ACM</title>
				<imprint>
			<date type="published" when="1992">1992</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">A field study of the software design process for large systems</title>
		<author>
			<persName><forename type="first">B</forename><surname>Curtis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Krasner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Iscoe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Comm. of the ACM</title>
		<imprint>
			<biblScope unit="volume">31</biblScope>
			<biblScope unit="page" from="1268" to="1287" />
			<date type="published" when="1988-11">November 1988</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Computer code as a medium for human communication: Are programming languages improving?</title>
		<author>
			<persName><forename type="first">G</forename><surname>Dubochet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">21st Annual PPIG Workshop</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<idno>ISO/IEC 9126-1</idno>
		<title level="m">Software engineering -product quality: Part 1: Quality model</title>
				<imprint>
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">The people premium</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">S</forename><surname>Koch</surname></persName>
		</author>
		<ptr target="Projects@WorkJournal" />
		<imprint>
			<date type="published" when="2005-10">October 2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Dinosaurs and the cretaceous terrestrial revolution</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">T</forename><surname>Lloyd</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">E</forename><surname>Davis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pisani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E</forename><surname>Tarver</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ruta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Sakamoto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">W E</forename><surname>Hone</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Jennings</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>Benton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">R. Soc. B</title>
		<imprint>
			<biblScope unit="volume">275</biblScope>
			<biblScope unit="page" from="2483" to="2490" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Incentives for maintaining high-quality source code</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">R</forename><surname>Prause</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Reiners</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Dencheva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Zimmermann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">PPIG-WIP</title>
				<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Comments are more important than code</title>
		<author>
			<persName><forename type="first">J</forename><surname>Raskin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Queue</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="64" to="62" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
	<note>sic!</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Agile documentation, anyone?</title>
		<author>
			<persName><forename type="first">B</forename><surname>Selic</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="11" to="12" />
			<date type="published" when="2009-12">Nov/Dec 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Code documentation</title>
		<author>
			<persName><forename type="first">D</forename><surname>Spinellis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">27</biblScope>
			<biblScope unit="page" from="18" to="19" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">Documenting-in-the-large vs. documenting-in-the-small</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">R</forename><surname>Tilley</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1993">1993</date>
			<publisher>CASCON. IBM Press</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m" type="main">Reuse facts and myths</title>
		<author>
			<persName><forename type="first">M</forename><surname>Wasmund</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1994">1994</date>
			<publisher>ICSE</publisher>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
