<!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>Kompetenzverteilung in langlebigen Softwareentwicklungsprojekten</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Volker Gruhn</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christoph Hannebauer</string-name>
          <email>christoph.hannebauerg@paluno.uni-due.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sebastian Stu¨nkel</string-name>
          <email>sebastian.stuenkel@stud.uni-due.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>paluno - The Ruhr Institute for Software Technology Universita ̈t Duisburg-Essen Gerlingstr.</institution>
          <addr-line>16 45127 Essen</addr-line>
        </aff>
      </contrib-group>
      <fpage>4</fpage>
      <lpage>5</lpage>
      <abstract>
        <p>In langlebigen Softwareentwicklungsprojekten werden einige Programmteile weiterverwendet, wa¨hrend ihre urspru¨nglichen Entwickler das Projektteam bereits verlassen haben. Im Laufe der Zeit kann sich die Zusammensetzung des Projektteams daher so vera¨ndern, dass die Kenntnisse des Projektteams u¨ber bestimmte Programmteile sinken. Schlimmstenfalls entstehen verwaiste Programmteile, die kaum noch angepasst oder ersetzt werden ko¨nnen, weil niemand im Projektteam die Anforderungen oder gar die Funktionsweise dieser Programmteile kennt. Daraus ergeben sich zwei Forschungsprobleme: Wie ko¨nnen verwaiste Programmteile erkannt werden? Wie kann durch Kompetenzstreuung diese Verwaisung verhindert werden? Je gro¨ßer das Entwicklerteam eines Softwareprojekts ist, desto kleiner ist der Anteil der Module, mit denen sich jeder einzelne Entwickler auskennt. Bei großen Entwicklerteams besitzt daher gar kein Entwickler detailliertes Wissen u¨ber alle Komponenten. Durch den erforderlichen Entwicklungsaufwand sind solche großen Softwareprojekte auch teuer, so dass sich die resultierende Software mo¨glicherweise erst dann amortisiert, wenn sie u¨ber einen ausgedehnten Zeitraum eingesetzt wird. Diese beiden Punkte zusammengenommen ko¨nnen dazu fu¨hren, dass bei Vera¨nderungen der Teamzusammensetzung wichtige Kompetenz zu Programmteilen verloren geht. Ein Programmteil, zu dem das Projektteam nur niedrige Kompetenz hat, wird verwaistes Programmteil genannt. A¨nderungen dieser verwaisten Programmteile sind teurer als A¨ nderungen anderer Programmteile. Durch diese Verwaisung kann sich die Architektur verschlechtern, weil A¨nderungen nicht am optimalen, jedoch verwaisten Programmteil vorgenommen werden, sondern als Behelfslo¨sung andere Programmteile angepasst werden. Außerdem ko¨nnen beispielsweise dringliche Anforderungen, etwa weil sie sicherheitskritisch sind, nicht mehr schnell umgesetzt werden, wenn sie A¨ nderungen der verwaisten Programmteile erfordern.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Nicht nur die Ho¨he, sondern auch die Art der Kompetenz unterscheidet sich zwischen den
Projektmitgliedern. Die Kenntnis der Funktionsweise eines bestimmten Programmteils ist
ein Beispiel fu¨r eine Kompetenzform. Die allgemeine Erfahrung mit der eingesetzten
Programmiersprache oder Technologie ist eine andere Kompetenzform.</p>
      <p>Eine Kompetenzmessung erkennt verwaiste Programmteile oder Programmteile, deren
Verwaisung mo¨glich ist. Die Kompetenzstreuung verhindert pra¨ventiv die Verwaisung von
Programmteilen.</p>
      <p>Die Kompetenzmessung quantifiziert die Kompetenz der Teammitglieder zu den einzelnen
Programmteilen. Mit diesem Wissen kann auf mo¨gliche Vera¨nderungen der
Teamzusammensetzung und den damit verbundenen Kompetenzverlust reagiert werden. Wie kann man
die Kompetenzverteilung im Team messen und welche Auswirkungen haben A¨ nderungen
des Teams? Gibt es bereits verwaiste Programmteile, die nicht mehr ohne großen
Schulungsaufwand modifiziert werden ko¨nnen? Mit welchen Methoden lassen sich diese
identifizieren? Welchen Einfluss hat die Nichtinteraktion mit Programmteilen u¨ber die Zeit auf
die Programmkompetenz der identifizierten Experten fu¨r diesen Bereich? Beispielsweise
Fritz et al., Schuler und Zimmermann und Nguyen et al. zeigen Methoden, um Kompetenz
zu messen [FMH07, SZ08, NND+12].</p>
      <p>Bei einer Kompetenzstreuung wird die Kompetenz zu jedem Programmteil u¨ber mehrere
Teammitglieder gestreut. Dies verhindert Wissensverluste durch Teamvera¨nderungen.
Eine Mo¨glichkeit der Kompetenzstreuung sind Schulungen. Wie ko¨nnen diese Schulungen
gesteuert werden? Bei langlebigen Projekten kommt es nicht selten zum Einsatz a¨lterer
Technologien fu¨r die es im Zweifelsfall nur noch wenige und daher teure Experten auf
dem Arbeitsmarkt gibt. Eine weitere Mo¨glichkeit der Kompetenzstreuung ist daher die
Ersetzung von Programmteilen, die auf solchen a¨lteren Technologien beruhen. Wie
lassen sich die Programmteile einer Software identifizieren, sodass eine gezielte Ersetzung
der Technologie vorgenommen werden kann, noch bevor der Kompetenztra¨ger das Team
verla¨sst?
Literatur
[FMH07]</p>
      <p>Thomas Fritz, Gail C. Murphy und Emily Hill. Does a programmer’s activity indicate
knowledge of code? In Proceedings of the the 6th joint meeting of the European
software engineering conference and the ACM SIGSOFT symposium on The foundations
of software engineering, ESEC-FSE ’07, Seiten 341–350, New York, NY, USA, 2007.</p>
      <p>ACM.
[SZ08]</p>
      <p>David Schuler und Thomas Zimmermann. Mining usage expertise from version
archives. In Proceedings of the 2008 international working conference on Mining software
repositories, MSR ’08, Seiten 121–124, New York, NY, USA, 2008. ACM.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>