<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: scope42</title>
    <description>The latest articles on DEV Community by scope42 (@scope42).</description>
    <link>https://dev.to/scope42</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F6116%2Fd9996d9c-2d13-42e2-9c9f-be8136683eef.png</url>
      <title>DEV Community: scope42</title>
      <link>https://dev.to/scope42</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/scope42"/>
    <language>en</language>
    <item>
      <title>Introducing scope42 - Improve your software architecture with precision! 🎯✨</title>
      <dc:creator>Erik Hofer</dc:creator>
      <pubDate>Tue, 25 Oct 2022 13:00:46 +0000</pubDate>
      <link>https://dev.to/scope42/introducing-scope42-improve-your-software-architecture-with-precision-dk6</link>
      <guid>https://dev.to/scope42/introducing-scope42-improve-your-software-architecture-with-precision-dk6</guid>
      <description>&lt;p&gt;As software architects, we often face legacy systems that have many architectural issues. Also in greenfield projects, the architecture is developed iteratively and needs to be improved on a regular basis.&lt;/p&gt;

&lt;center&gt;_Let's see how architecture improvement can be organized
 and assisted by tooling_ 🚀&lt;/center&gt;

&lt;h2&gt;
  
  
  Table of contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction to aim42&lt;/li&gt;
&lt;li&gt;
The birth of scope42 

&lt;ul&gt;
&lt;li&gt;Management of items&lt;/li&gt;
&lt;li&gt;Relationship graphs&lt;/li&gt;
&lt;li&gt;Docs-as-code &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;State of the project &amp;amp; roadmap &lt;/li&gt;

&lt;li&gt;Tech stack&lt;/li&gt;

&lt;li&gt;Your feedback is welcome ❤ &lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction to aim42
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;aim42&lt;/em&gt;, the Architecture Improvement Method, is an open, community-driven framework for working on software architectures.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;aim42 supports software evolution, maintenance, migration and improvement - in a systematic and pragmatic way&lt;/p&gt;

&lt;p&gt;— &lt;cite&gt;&lt;a href="https://aim42.github.io/#_about_aim42" rel="noopener noreferrer"&gt;About aim42&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It defines a process consisting of three phases&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyze&lt;/li&gt;
&lt;li&gt;Evaluate&lt;/li&gt;
&lt;li&gt;Improve&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;accompanied by cross-cutting concerns. The method reference collects concepts and patterns that can be used to implement the process. It proposes three main types of entities of special interest:&lt;sup id="fnref1"&gt;1&lt;/sup&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Issue&lt;/em&gt; (problem)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Risk&lt;/em&gt; (potential future problem)&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Improvement&lt;/em&gt; (remedy)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instances of these, I'll call them &lt;em&gt;items&lt;/em&gt;, need to be collected, managed, and associated with each other. This is where the question of tooling comes into play.&lt;/p&gt;

&lt;p&gt;aim42 is licensed under Creative Commons Attributions Sharealike. For more information refer to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.aim42.org/" rel="noopener noreferrer"&gt;The official website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aim42.github.io/" rel="noopener noreferrer"&gt;The Method Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aim42/aim42" rel="noopener noreferrer"&gt;The GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The birth of scope42
&lt;/h2&gt;

&lt;p&gt;I came into touch with aim42 in the course of my master's thesis which was concerned with improving the software architecture of a legacy system. I approached this with my standard means of note-taking but realized at some point that a dedicated tool would be beneficial. This birthed the idea of &lt;em&gt;scope42&lt;/em&gt; and I started to work on it after finishing my thesis.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftesn9ssam3ar5e9lxbgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftesn9ssam3ar5e9lxbgg.png" alt="scope42 logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;[github.com/scope42/scope42](https://github.com/scope42/scope42)&lt;/center&gt;

&lt;h3&gt;
  
  
  Management of items
&lt;/h3&gt;

&lt;p&gt;One of the first challenges that arise, as the number of items grows, is managing them. This requires structured metadata (e.g. title, status) as well as a way to filter and sort by it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffwd9zmahkby4qkcywsu5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffwd9zmahkby4qkcywsu5.png" alt="scope42 items table"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the core functionality of scope42. It is similar to a ticket tracker. An existing generic one would require quite some configuration work to get started - scope42 comes with the aim42 domain model out-of-the-box. It even incorporates some content of the aim42 method reference so you can learn it along the way.&lt;/p&gt;

&lt;p&gt;Also, I try to provide a modern and slick UI that is not overloaded but focused on the particular domain. The aim is to make the act of writing documentation as fun as possible. At least in my personal experience, this is already quite successful.&lt;/p&gt;

&lt;p&gt;Another notable feature is the integrated full-text search and quick access to items via the &lt;code&gt;Strg + K&lt;/code&gt; / &lt;code&gt;⌘ + K&lt;/code&gt; shortcut. &lt;/p&gt;

&lt;h3&gt;
  
  
  Relationship graphs
&lt;/h3&gt;

&lt;p&gt;While you can link tickets in classical trackers like JIRA, visualization of these relationships is not a common feature.&lt;sup id="fnref2"&gt;2&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9l6x1p82lk55vot3e4lw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9l6x1p82lk55vot3e4lw.png" alt="scope42 items graph"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The connection of items (e.g. issue is caused by another issue, improvement mitigates risk, etc.) are at the core of the aim42 domain model. It is an important concern and the overview can get lost quickly with a growing number of items.&lt;/p&gt;

&lt;p&gt;Because of this, scope42 features relationship graphs for visualization. On an item's details page, you can quickly see its direct connections. Also, when viewing a list of items (e.g. filtered by specific criteria), a graph displays the relationship between these items.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docs-as-code
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://app.scope42.org" rel="noopener noreferrer"&gt;scope42 web app&lt;/a&gt; runs in your browser - no need to download anything. However, a vital difference to most such applications is how the data is stored. There is no database.&lt;/p&gt;

&lt;p&gt;All items reside as files on your local machine. The app interacts with them via the &lt;a href="https://web.dev/file-system-access/" rel="noopener noreferrer"&gt;File System Access API&lt;/a&gt; (currently sadly does not work in Firefox, only in Chromium-based browsers). This ensures &lt;em&gt;privacy&lt;/em&gt; (data is never sent anywhere) and &lt;em&gt;data ownership&lt;/em&gt; - if scope42 disappears tomorrow, you will not lose your data.&lt;/p&gt;

&lt;p&gt;Another important aspect of data ownership is an open format. You should, at any point, be able to take your data and use it somewhere else. In fact, scope42 is built around the idea of processing the structured data managed with it and e.g. incorporating it into your existing documentation.&lt;/p&gt;

&lt;p&gt;A main driver for the choice of a concrete format is the concept of &lt;em&gt;docs-as-code&lt;/em&gt;. It is based on the idea that documentation is stored in a lightweight text-based format. It can then - similar to or even alongside code - be checked into version control, authored with your editor/IDE, and automatically processed and tested. You can read more about this topic at &lt;a href="https://docs-as-co.de/" rel="noopener noreferrer"&gt;docs-as-co.de&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Applying this approach to more structured data is a bit of a challenge. As a compromise between human-readability and machine-readability, a format based on YAML is used. Example (improvement):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Upgrade Spring Boot version&lt;/span&gt;
&lt;span class="na"&gt;created&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2022-05-02T17:25:16.909Z&lt;/span&gt;
&lt;span class="na"&gt;modified&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2022-05-02T18:09:42.952Z&lt;/span&gt;
&lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;implemented&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;backend&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;urgent&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;security&lt;/span&gt;
&lt;span class="na"&gt;ticket&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://github.com/scope42/scope42/issues/91&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;The current version of Spring Boot upgrades dependencies to secure&lt;/span&gt;
  &lt;span class="s"&gt;versions of Log4j.&lt;/span&gt;
&lt;span class="na"&gt;resolves&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;issue-3&lt;/span&gt;
&lt;span class="na"&gt;modifies&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;risk-1&lt;/span&gt;
&lt;span class="na"&gt;comments&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;author&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Jane Doe&lt;/span&gt;
    &lt;span class="na"&gt;created&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2022-05-02T17:27:17.630Z&lt;/span&gt;
    &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Accepted and placed into the fast lane on the board.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;In many places (for example item descriptions and comments), Markdown is supported for formatting. This includes advanced features like GFM extensions, code syntax highlighting, links to scope42 items, Mermaid diagrams, and more to come. For more information see &lt;a href="https://docs.scope42.org/markdown" rel="noopener noreferrer"&gt;docs.scope42.org/markdown&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For collaboration, you can use your file-syncing technology of choice. It is recommended to check your scope42 data in a Git repository. As for your code, this enables a detailed change history and the ability to merge concurrent modifications.&lt;/p&gt;
&lt;h2&gt;
  
  
  State of the project &amp;amp; roadmap
&lt;/h2&gt;

&lt;p&gt;I already use scope42 for multiple real architecture projects at work. The experience from these - and iterative improvements based upon it - have led to the first stable release being recently published.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1582788370584940544-135" src="https://platform.twitter.com/embed/Tweet.html?id=1582788370584940544"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1582788370584940544-135');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1582788370584940544&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;It is still in a relatively early stage in terms of features that I have in mind. But the release of version 1.0.0 means that there will be no breaking changes to the data format in the foreseeable future. You can safely start to use it and will be provided with automatic migrations if necessary at some point.&lt;/p&gt;

&lt;p&gt;The project is completely open-source and free software. It is published under GPLv3 on GitHub.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/scope42" rel="noopener noreferrer"&gt;
        scope42
      &lt;/a&gt; / &lt;a href="https://github.com/scope42/scope42" rel="noopener noreferrer"&gt;
        scope42
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      🎯 Improve your software architecture with precision!
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/scope42/scope42/main/app/public/logo.svg"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fscope42%2Fscope42%2Fmain%2Fapp%2Fpublic%2Flogo.svg" width="100%" alt="scope42 logo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Improve your software architecture with precision!&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a href="https://github.com/scope42/scope42/actions/workflows/build.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/scope42/scope42/actions/workflows/build.yml/badge.svg" alt="Build"&gt;&lt;/a&gt;
  &lt;a href="http://makeapullrequest.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d88d8d77fa79e828eea397f75a1ebd114d13488aeec4747477ffbd2274de95ed/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e737667" alt="PRs Welcome"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/scope42/scope42/blob/main/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0cd8f39bfbe65dd5c1d51cbac408707f714276ce8347a9e7201e6f07db818d2b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c2d2d332e302d696e666f726d6174696f6e616c2e737667" alt="License: GPL v3"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/scope42/scope42/tree/main/architecture" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/2156c73343b7638a1ec301a4dcf1ae18e7af9c9edd5b28c8a00575f1e78e8d4e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2546302539462539332539362532306172636869746563747572652d73636f706534322d626c7565" alt="Architecture Documentation"&gt;&lt;/a&gt;
  &lt;br&gt;
  &lt;a href="https://matrix.to/#/#scope42:matrix.org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fd21acc439db0f7ef63afbb0cfb4085a696e11e797ad108b5a3e2a097eb9ac09/68747470733a2f2f696d672e736869656c64732e696f2f6d61747269782f73636f706534323a6d61747269782e6f7267" alt="Matrix"&gt;&lt;/a&gt;
  &lt;a href="https://twitter.com/scope42_org" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/ae9b9aa9e31823fa258c7537ce1ea3413061bd54a33c3e23c162dc029ceaba4c/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f666f6c6c6f772f73636f706534325f6f72673f7374796c653d736f6369616c" alt="Twitter Follow"&gt;&lt;/a&gt;
  &lt;a href="https://floss.social/@scope42" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e4f3b7526c435fe76cc4a83081cfc4717df69ddf04b7515956a024c9060b7aca/68747470733a2f2f696d672e736869656c64732e696f2f6d6173746f646f6e2f666f6c6c6f772f3130383230323633363636343235333536313f646f6d61696e3d6874747073253341253246253246666c6f73732e736f6369616c267374796c653d736f6369616c" alt="Mastodon Follow"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This tool helps you to keep track of issues, arising risks and possible improvements of your existing architecture. The terminology and concepts are based on &lt;a href="https://www.aim42.org/" rel="nofollow noopener noreferrer"&gt;aim42, the Architecture Improvement Method&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;scope42 is a Progressive Web App that runs entirely inside your browser. Click the link below to access the app.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🔗 &lt;a href="https://app.scope42.org" rel="nofollow noopener noreferrer"&gt;app.scope42.org&lt;/a&gt;
&lt;/h3&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;✨ Management of items with a fancy UI&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;
  Filtering • Sorting • Full text search • Learn about aim42
&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/scope42/scope42docs/screenshot-table.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fscope42%2Fscope42docs%2Fscreenshot-table.png" alt="Screenshot of item table"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;💑 Graphs for visualizing the relationships between items&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;
  Quick overview • Drag &amp;amp; Drop • Navigate
&lt;/p&gt;

&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/scope42/scope42docs/screenshot-graph.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fscope42%2Fscope42docs%2Fscreenshot-graph.png" alt="Screenshot of item graph"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;📝 Docs-as-Code principle and full data ownership&lt;/h3&gt;

&lt;/div&gt;

&lt;p&gt;
  Human-readable • Check into version control • Process programatically • No vendor lock-in
&lt;/p&gt;



&lt;div class="highlight highlight-source-yaml notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-ent"&gt;title&lt;/span&gt;: &lt;span class="pl-s"&gt;Upgrade Spring Boot version&lt;/span&gt;
&lt;span class="pl-ent"&gt;created&lt;/span&gt;: &lt;span class="pl-s"&gt;2022-05-02T17:25:16.909Z&lt;/span&gt;
&lt;span class="pl-ent"&gt;modified&lt;/span&gt;: &lt;span class="pl-s"&gt;2022-05-02T18:09:42.952Z&lt;/span&gt;
&lt;span class="pl-ent"&gt;status&lt;/span&gt;: &lt;span class="pl-s"&gt;implemented&lt;/span&gt;
&lt;span class="pl-ent"&gt;tags&lt;/span&gt;
  - &lt;span class="pl-s"&gt;backend&lt;/span&gt;
  - &lt;span class="pl-s"&gt;urgent&lt;/span&gt;
  - &lt;span class="pl-s"&gt;security&lt;/span&gt;
&lt;span class="pl-ent"&gt;ticket&lt;/span&gt;: &lt;span class="pl-s"&gt;https://github.com/scope42/scope42/issues/91&lt;/span&gt;
&lt;span class="pl-ent"&gt;description&lt;/span&gt;: &lt;span class="pl-s"&gt;The current version of Spring Boot upgrades&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/scope42/scope42" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;center&gt;**The app is available at [app.scope42.org](https://app.scope42.org).**&lt;/center&gt;



&lt;p&gt;There is a large roadmap of planned features I am eager to implement. These for example include UX improvements like an advanced Markdown editor, more Markdown features, and item management capabilities.&lt;/p&gt;

&lt;p&gt;In the long run, scope42 will be expanded from an architecture improvement tool to a general architecture documentation platform. In most projects, these two concerns will naturally play together. For example, if you use the &lt;a href="https://arc42.org/overview" rel="noopener noreferrer"&gt;arc42&lt;/a&gt; template for your documentation, the aim42 items would be integrated into chapter 11 "risks and technical debt".&lt;/p&gt;

&lt;p&gt;In fact, there is already an additional item type &lt;em&gt;decision&lt;/em&gt; (&lt;a href="https://adr.github.io/" rel="noopener noreferrer"&gt;ADR&lt;/a&gt;). This falls more into the realm of documentation (arc42 chapter 9). However, it quickly became clear that ADRs are also connected to aim42. Often, proposed improvements need to be assessed by architecture decisions, especially if there are multiple options to resolve an issue.&lt;/p&gt;

&lt;p&gt;In addition to this, the focus will be laid on exporting data and integration with other tooling. This includes a convenience library for programmatic processing, static site export, and a set of recipes, e.g. for integrating with things like &lt;a href="https://github.com/doctoolchain/doctoolchain" rel="noopener noreferrer"&gt;docToolchain&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lastly, a great advantage of this application over a static collection of Markdown/AsciiDoc files will be dynamic adaption for specific tasks. It should be possible to view your documentation from different &lt;a href="https://www.viewpoints-and-perspectives.info/home/perspectives/" rel="noopener noreferrer"&gt;architectural perspectives&lt;/a&gt;. This principle is for example implemented for diagrams by &lt;a href="https://www.structurizr.com/help/perspectives" rel="noopener noreferrer"&gt;Structurizr&lt;/a&gt;. It will be applied more universally by scope42. Also, it may be useful to tailor your documentation to different target audiences (e.g. developers, management) as described by arc42.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Code is written in &lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;TypeScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;UI is built with &lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt; and &lt;a href="https://ant.design/" rel="noopener noreferrer"&gt;Ant Design&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Relationship graphs are created using &lt;a href="https://js.cytoscape.org/" rel="noopener noreferrer"&gt;Cytoscape.js&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Code is organized in a monorepo powered by &lt;a href="https://turborepo.org/" rel="noopener noreferrer"&gt;Turborepo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The CI/CD pipeline is based on &lt;a href="https://github.com/features/actions" rel="noopener noreferrer"&gt;GitHub Actions&lt;/a&gt; and &lt;a href="https://github.com/changesets/changesets" rel="noopener noreferrer"&gt;Changesets&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The production version of the app and deployment previews for pull requests are hosted on &lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tech choices and other architecture decisions are documented using scope42 itself &lt;a href="https://github.com/scope42/scope42/tree/main/architecture" rel="noopener noreferrer"&gt;in the repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your feedback is welcome ❤
&lt;/h2&gt;

&lt;p&gt;If you think this app could be useful to you, don't hesitate to &lt;a href="https://app.scope42.org" rel="noopener noreferrer"&gt;try it out&lt;/a&gt; yourself!&lt;/p&gt;

&lt;p&gt;If you have any feedback, feel free to leave a comment here, open an issue/discussion on &lt;a href="https://github.com/scope42/scope42" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; or get in touch with &lt;a href="https://twitter.com/scope42_org" rel="noopener noreferrer"&gt;@scope42_org&lt;/a&gt; on Twitter.&lt;/p&gt;

&lt;p&gt;My dream would be to build a community around this tool that shapes it so we can all profit from each other and make our daily work even more fun and effective 🚀&lt;/p&gt;

&lt;p&gt;Following for updates on any platform is greatly appreciated - as well as sharing this article with people you think may be interested ❤&lt;/p&gt;




&lt;ol&gt;

&lt;li id="fn1"&gt;
&lt;p&gt;In the actual &lt;a href="https://aim42.github.io/#Domain-Model" rel="noopener noreferrer"&gt;aim42 domain model&lt;/a&gt;, risk is not a primary entity type but an extension of issue. In scope42 I decided to make the distinction more sharp. Also, there is another entity type &lt;em&gt;cause&lt;/em&gt; in the method reference. I modeled this as a relationship between issues/risks instead. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn2"&gt;
&lt;p&gt;&lt;a href="https://obsidian.md/" rel="noopener noreferrer"&gt;Obsidian&lt;/a&gt; is good at visualizing relationships and would adhere to docs-as-code. However, it is only free for personal use. Software architecture is often worked on in a commercial setting. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;

</description>
      <category>architecture</category>
      <category>productivity</category>
      <category>news</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
