<!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>How to Improve Decision Documentation in Software Evolution?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tom-Michael Hesse</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Barbara Paech</string-name>
          <email>paechg@informatik.uni-heidelberg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tobias Roehm</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bernd Bruegge</string-name>
          <email>brueggeg@in.tum.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Technische Universita ̈t M u ̈nchen Munich</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Heidelberg Heidelberg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>14</fpage>
      <lpage>15</lpage>
      <abstract>
        <p>This problem statement describes the lack of effective methodologies and tool support for documenting decision knowledge during software evolution. After a brief description and definition of decisions in software evolution, we outline the current mismatch between the need for decision documentation and the effort required for documentation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Many decisions are made during the entire lifecycle of complex software systems. Those
decisions can concern the project or the system and give direction to all areas of
development. For instance, it is decided which requirements to realize, which architecture
to implement or which milestones and work items to plan. Decisions at least comprise a
set of alternatives and criteria to evaluate each alternative [NR05]. But they often become
much more complex, as alternatives and criteria are related to particular project and system
context aspects. Examples are constraints from requirements or assumptions made when
analyzing the decision problem. Moreover, similar decision problems can be decided in
different ways leading to different outcomes. They depend on the experience and
personality of the involved stakeholders and the available time and resources. For instance, a
decision can be made naturalistic. This means matching the given situation to former ones
and apply a solution that already succeeded before. Another way is deciding by rational
choice and evaluate all available alternatives in detail. Due to these differences, decisions
are usually intertwined with rationales justifying them.</p>
      <p>The underlying project and system context of decisions is likely to evolve over time.
Within this evolution process, former decisions are challenged. They need to be reviewed,
adapted or even withdrawn, because the system shall be kept aligned with the changing
context. In order to reconsider those previous decisions, developers must retrieve and
understand the related knowledge such as assumptions, alternatives or outcomes. Therefore,
decisions should be captured and documented in a structured way.
However, capture and documentation of decision knowledge often is not performed at a
satisfying level. A major reason was identified by a survey by Tang et al., who asked 127
practitioners for their experience with design decision documentation [TBGH06]. They
found that designers agree in the benefits from documented decisions and their rationales,
but miss methodologies and tool support for documentation. This is particularly true for
context knowledge like possible decision downsides. Whereas 61.7% of all study
participants agree in the importance of this knowledge, only 35.8% document it.
While documentation of decision knowledge is appreciated by project staff during
evolution, it is not performed sufficiently during development. So, decision knowledge erodes
over time and can even vaporize completely, if it remains implicit [JB05]. In consequence,
understanding and reflecting previous decisions is hindered, what is a fundamental
problem for the quality of future decisions. This fundamental problem can be subdivided into
three questions regarding capture, structure and usage of decision knowledge (given on
first list level) and their detailed contents (given on second list level):
1. How can decision knowledge be captured with as minimal effort for developers as
possible?</p>
      <p>How can documentation support for naturalistic decisions in software
development be realized? How can this knowledge be transformed into rational
decision making models? For instance, which parts of decision knowledge
require manual or automatic capture?
2. Which entities, relations and attributes are best suited to structure and represent
decisions in project and system knowledge?</p>
      <p>Which future uses require which entities or relations? For instance, does risk
assessment for decisions require documented assumptions?
3. How can captured decision knowledge be exploited in order to support the systems’
evolution?</p>
      <p>What kind of knowledge presentation or aggregation is useful to support which
activity? For instance, which knowledge aggregation of decisions can support
change impact analysis, project risk management or software maintenance?
[JB05]
[NR05]</p>
      <p>A. Jansen and J. Bosch. Software Architecture as a Set of Archtectural Design
Decisions. In 5th Working IEEE/IFIP Conference on Software Architecture (WICSA’05),
pages 109 – 120, 2005.</p>
      <p>T. Ngo and G. Ruhe. Engineering and Managing Software Requirements, chapter
Decision Support in Requirements Engineering. Springer, 2005.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [TBGH06]
          <string-name>
            <given-names>A.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Babar</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Gorton</surname>
          </string-name>
          , and J. Han.
          <article-title>Survey of Architecture Design Rationale</article-title>
          .
          <source>Journal of Systems and Software</source>
          ,
          <volume>79</volume>
          (
          <issue>12</issue>
          ):
          <fpage>1792</fpage>
          -
          <lpage>1804</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>