{"id":44,"date":"2018-01-16T16:44:33","date_gmt":"2018-01-16T15:44:33","guid":{"rendered":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/?p=44"},"modified":"2022-11-30T16:46:57","modified_gmt":"2022-11-30T15:46:57","slug":"werkzeuge-zur-erhaltung-der-softwarearchitektur-messen-und-prozesse-qs-teil-3","status":"publish","type":"post","link":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/?p=44","title":{"rendered":"Werkzeuge zur Erhaltung der Softwarearchitektur &#8211; Messen und Prozesse \/ QS &#8211; Teil 3"},"content":{"rendered":"\n<p>Ziel dieser Serie von Posts, ist es darzustellen, wie technische Schulden erkannt werden k\u00f6nnen. Nach der Erkennung kann man sich h\u00e4ufig an Mustern orientieren, um die Schulden abzubauen. Einige Werkzeuge geben uns Entwicklern auch direkt L\u00f6sungen an die Hand. Aber auch bei der Erkennung von technischen Schulden gilt &#8222;You get what you measure&#8220; &#8211; wie in allen Teilbereichen des Managements. Wir brauchen also einen m\u00f6glichst automatischen Prozesse, der uns regelm\u00e4\u00dfig an unsere Schulden erinnert, so dass<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bekannte technische Schulden nicht in \u201eBacklog-Vergessenheit\u201c geraten und<\/li>\n\n\n\n<li>neue technische Schulden erkannt werden.<\/li>\n<\/ul>\n\n\n\n<p>Hierbei m\u00fcssen in unseren Projekt Prozesse etabliert werden. Diese gliedern sich in Prozesse<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ohne Werkzeugunterst\u00fctzung<\/li>\n\n\n\n<li>mit Werkzeugunterst\u00fctzung\n<ul class=\"wp-block-list\">\n<li>Build brechend &#8211; automatisch<\/li>\n\n\n\n<li>Warnung &#8211; manuell<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Das manuelle Vorgehen ohne Hilfsmittel (z.B. sporadische Code-Reviews) ist nicht Thema dieser Blog-Serie. In den folgenden Posts werden Werkzeuge f\u00fcr Prozesse mit Werkzeugunterst\u00fctzung dargestellt. Die Prozesse teilen sich in einen &#8222;Build brechenden&#8220; Prozess, bei dem Regelverst\u00f6\u00dfe den Build der Software unterbinden, und einen Prozess, der lediglich Warnungen erzeugt, die im Anschluss manuell bearbeitet werden m\u00fcssen. Der Verlauf von technischen Schulden in Verbindung mit den verschiedenen Prozessen ist in der folgenden Grafik dargestellt<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"733\" height=\"403\" src=\"https:\/\/www.schoenberg-solutions.de\/arndtblog\/wp-content\/uploads\/2022\/11\/TechnischeSchulden.png\" alt=\"\" class=\"wp-image-46\" srcset=\"https:\/\/www.schoenberg-solutions.de\/arndtblog\/wp-content\/uploads\/2022\/11\/TechnischeSchulden.png 733w, https:\/\/www.schoenberg-solutions.de\/arndtblog\/wp-content\/uploads\/2022\/11\/TechnischeSchulden-300x165.png 300w\" sizes=\"auto, (max-width: 733px) 100vw, 733px\" \/><\/figure>\n\n\n\n<p>Bei der Planung der QS Anforderungen ist es im Allgemeinen das Ziel, einen m\u00f6glichst kleinen \u201eKorridor\u201c von technischen Schulden und damit Abweichungen der Architektur zuzulassen (hier gelb markiert). Die rote Linie zeigt den Verlauf, wenn keine QS implementiert wird. Es kann hier maximal zu \u201eZufallsrefactorings\u201c kommen, die die Situation verbessern. Zufallsrefactorings sind Reduzierungen der technischen Schulden bei der Bearbeitung einer Anforderung. Findet sich dort eine Schuld wird Sie h\u00e4ufig im Zuge der Umsetzung der Anforderung behoben. Es gibt aber keinen geordneten Prozess f\u00fcr den Abbau der Schulden. Die Kurve wird \u00fcber die Zeit permanent ansteigen. Die schwarze Linie zeigt den Verlauf bei einem automatischen &#8222;Build brechenden&#8220; Prozess. Er schafft einen guten Grundstock bei der Bek\u00e4mpfung technischer Schulden, da harte Regeln neue Schulden verbieten und nach und nach auch alte Schulden abgebaut werden. Aber auch hier werden die Schulden \u00fcber die Zeit ansteigen, wenn auch weniger stark. Grund hierf\u00fcr ist, dass nicht alle Schulden in dem betrachteten Prozess ber\u00fccksichtigt werden k\u00f6nnen, da sonst beispielsweise zu viele False\/Positives entstehen und die Entwicklungsarbeit behindern. Ein Projekt kann nur innerhalb des gew\u00fcnschten Korridors verbleiben, wenn neben dem automatischen Prozess auch ein manueller etabliert wird.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ziel dieser Serie von Posts, ist es darzustellen, wie technische Schulden erkannt werden k\u00f6nnen. Nach der Erkennung kann man sich h\u00e4ufig an Mustern orientieren, um die Schulden abzubauen. Einige Werkzeuge geben uns Entwicklern auch direkt L\u00f6sungen an die Hand. Aber auch bei der Erkennung von technischen Schulden gilt &#8222;You get what you measure&#8220; &#8211; wie [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-44","post","type-post","status-publish","format-standard","hentry","category-softwarearchitektur"],"_links":{"self":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/44","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=44"}],"version-history":[{"count":2,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/44\/revisions"}],"predecessor-version":[{"id":47,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=\/wp\/v2\/posts\/44\/revisions\/47"}],"wp:attachment":[{"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=44"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=44"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.schoenberg-solutions.de\/arndtblog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=44"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}