<!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>Generalized Markdown Architectural Decision Records: Capturing the Essence of Decisions</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>IAAS, University of Stuttgart</institution>
        </aff>
      </contrib-group>
      <fpage>55</fpage>
      <lpage>57</lpage>
      <abstract>
        <p>Documenting design decisions in a project fosters understanding while developing and maintaining the software. For that, Markdown Architectural Decision Records (MADR) have been proposed. When setting up a new project, certain decisions have to be done again. With the current MADR approach, how to reuse the knowledge of already taken decisions. This paper proposes Generalized Architectural Decision Records, where knowledge of concrete decisions is stored in a general format to capture “templates” for new decisions fostering reusability.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The remainder of the paper starts with a presentation of GADR (Sect. 2). It
is followed by a conclusion and an outlook on future work (Sect. 3).
2</p>
    </sec>
    <sec id="sec-2">
      <title>GADR</title>
      <p>The initial concept is to store the generalized ADRs in a central repository.
When a concrete architectural decision has to be taken in a project, that repository
is searched for. When a generalized ADR exists, it is copied into the repository of
the project. Then, it is extended with pros and cons being valid for the concrete
project. When a MADR has to be updated due to new facts or other reasons,
a new MADR has to be created, the status of the old one set to “superseded”,
and a link to the new one added. History of GADRs and MADRs needs to be
tracked with version control. There is no intention to add history to MADR or
GADR itself.</p>
      <p>We created an initial repository for GADRs in the context of Java on GitHub
at https://github.com/adr/gadr-java. We used the GADR for java build
tools in JabRef1 and Eclipse Winery2. When creating each ADR, we did not
1
https://github.com/JabRef/jabref/blob/master/docs/adr/0003-use-gradleas-build-tool.md
2
https://github.com/eclipse/winery/blob/master/docs/adr/0023-use-mavenas-build-tool.md
need to add new pros and cons of each option. We weighted the pros and cons
diferently leading to a diferent decision outcome (Gradle for JabRef, Maven for
Eclipse Winery) and the respective justification. A main reason for not modifying
the pros and cons is the fact that the decision record was created after the build
system was chosen. Nevertheless, this usage of GADR shows that MADRs can
be created based on GADRs in real-life projects.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Conclusion and Outlook</title>
      <p>
        This paper presented GADR as first idea to store the general aspects of concrete
architectural decisions using Markdown. The format was extracted from MADR
to enable simple reuse of collected pros and cons. We described one usage of
GADR in the context of JabRef and Eclipse Winery. The next step is to come
up with a well-described development workflow comparable to the work by
Zimmermann et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and Thurimella et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In parallel, we aim for collecting
more generalized architectural decision records to ease knowledge transfer.
      </p>
      <p>It is an open topic to structure the collection of generalized architectural
decision records. Our current approach is to ofer an index to the GADR
repositories at https://adr.github.io/gadr/. Possibly, an updated index of all
available GADRs will be added there to ease search for GADRs. Developing
a graphical tool presenting all MADRs an their relation to GADRs and thus
enabling governance is foreseen.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Büchler</surname>
            ,
            <given-names>A.O.: Software</given-names>
          </string-name>
          <string-name>
            <surname>Engineering Repository (SE-Repo) Gesamtkonzept</surname>
          </string-name>
          , Umsetzung mit Git und Validierung (
          <year>2017</year>
          ),
          <source>Master Thesis</source>
          , HSR Hochschule für Technik Rapperswil
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Kopp</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Armbruster</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zimmermann</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Markdown Architectural Decision Records: Format and Tool Support</article-title>
          .
          <source>In: ZEUS. CEUR Workshop Proceedings</source>
          , vol.
          <year>2072</year>
          .
          <article-title>CEUR-WS.org (</article-title>
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Thurimella</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schubanz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pleuss</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Botterweck</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Guidelines for Managing Requirements Rationales</article-title>
          .
          <source>IEEE Software 34(1)</source>
          ,
          <fpage>82</fpage>
          -
          <lpage>90</lpage>
          (
          <year>Jan 2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Zdun</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Capilla</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tran</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zimmermann</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Sustainable Architectural Design Decisions</article-title>
          .
          <source>IEEE Software 30(6)</source>
          ,
          <fpage>46</fpage>
          -
          <lpage>53</lpage>
          (
          <year>Nov 2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Zimmermann</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wegmann</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koziolek</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goldschmidt</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Architectural Decision Guidance Across Projects - Problem Space Modeling, Decision Backlog Management and Cloud Computing Knowledge</article-title>
          .
          <source>In: Working IEEE/IFIP Conference on Software Architecture</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Zimmermann</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miksovic</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Decisions required vs. decisions made</article-title>
          .
          <source>In: Aligning Enterprise, System, and Software Architectures. IGI Global</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>