{"id":389,"date":"2023-02-12T00:08:33","date_gmt":"2023-02-12T00:08:33","guid":{"rendered":"https:\/\/business-ronin.com\/?p=389"},"modified":"2023-02-12T00:08:33","modified_gmt":"2023-02-12T00:08:33","slug":"refactoring-in-der-agilen-softwareentwicklung-aufraeumen-muss-sein","status":"publish","type":"post","link":"https:\/\/business-ronin.com\/?p=389","title":{"rendered":"Refactoring in der agilen Softwareentwicklung &#8211; Aufr\u00e4umen muss sein!"},"content":{"rendered":"\n<p>In der agilen Softwareentwicklung leiden viele Programme unter der Quick&amp;Dirty Methode. Ein Stakeholder schreit und das gew\u00fcnschte Programm oder Funktion muss schnellstm\u00f6glich umgesetzt werden. Oft bleiben diese Programme&nbsp; oder Funktionen l\u00e4nger im Einsatz als gedacht und eine sp\u00e4tere Pflege wird erschwert oder ist unm\u00f6glich. Zus\u00e4tzlich leiden solche Programme unter verschiedensten Symptomen, wie Geschwindigkeitsprobleme oder unerkl\u00e4rliche Ergebnisse.&nbsp; Somit bleibt ein Refactoring, also eine Strukturverbesserung und eine klare Kommentierung des Programms oder Algorithmus, unter Beibehaltung der gew\u00fcnschten Funktion, nicht aus, um ein zukunftssicheres Produkt zu erstellen.<br>Refactoring gibt es in zwei Varianten. Einmal kann man die grundlegende Architektur eines Programmes \u00fcberdenken und zum anderen kann man den Quellcode optimieren.<br>Beim Architektur Refactoring stellt man sich grundlegend die Fragen, ob man die richtige Struktur f\u00fcr ein Programm oder Funktion gew\u00e4hlt hat, um die Anforderungen bestm\u00f6glich zu erf\u00fcllen. Hier sollten Dinge besprochen werden, wie Schnittstellenm\u00f6glichkeit, Technologie und Interoperabilit\u00e4t. Erstelle ich eine Anwendung als RichClient oder unter dem Paradigma von SOA. Je nach Bedarfsfall und Anwendung kann sich dies auch im Laufe der Zeit \u00e4ndern. Somit ist f\u00fcr ein Programm mit l\u00e4ngerem Lebenszyklus ein Architectur Refactoring zu empfehlen.<br>Das Code Refactoring sollte im agilen Prozess stetiger Begleiter sein, weswegen man auch meist von einem kontinuierlichen Refactoring spricht. Am Ende jedes Sprints steht ein potenziell auslieferbares Inkrement mit festgelegten Funktionen. Diese Funktionen m\u00fcssen w\u00e4hrend des Sprints auch den Prozess des Code Refactoring durchlaufen. Dabei wird der Code auf Lesbarkeit, \u00dcbersichtlichkeit, Verst\u00e4ndlichkeit, Erweiterbarkeit, Testbarkeit und Vermeidung&nbsp;&nbsp; von Redundanz gepr\u00fcft.<br>Die Vorteile eines kontinuierlichen Refactorings spiegeln sich im Gesetzt der gro\u00dfen Zahlen wieder. In jedem Sprint ein wenig Zeit daf\u00fcr zu verwenden ist wesentlich einfacher und zeitlich weniger aufwendig als im nach hinein tausende Codezeilen zu bearbeiten.<br>Refactoring ist somit ein wichtiger Bestandteil eines Entwicklungsprozesses, um ein zukunftsicheres und pflegbares Softwareprodukt herszustellen.<\/p>\n\n\n\n<p>Weiterf\u00fchrende Links zum Thema:<br>Martin Fowler: Refactoring. Wie Sie das Design vorhandener Software verbessern. Addison-Wesley Verlag, ISBN 3-8273-1630-8<br>heise developer Podcast Architektur Refactoring <a href=\"http:\/\/www.heise.de\/developer\/artikel\/Episode-8-Architektur-Refactoring-353295.html\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/www.heise.de\/developer\/artikel\/Episode-8-Architektur-Refactoring-353295.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In der agilen Softwareentwicklung leiden viele Programme unter der Quick&amp;Dirty Methode. Ein Stakeholder schreit und das gew\u00fcnschte Programm oder Funktion muss schnellstm\u00f6glich umgesetzt werden. Oft bleiben diese Programme&nbsp; oder Funktionen l\u00e4nger im Einsatz als gedacht und eine sp\u00e4tere Pflege wird erschwert oder ist unm\u00f6glich. Zus\u00e4tzlich leiden solche Programme unter verschiedensten Symptomen, wie Geschwindigkeitsprobleme oder unerkl\u00e4rliche [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":390,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[19],"_links":{"self":[{"href":"https:\/\/business-ronin.com\/index.php?rest_route=\/wp\/v2\/posts\/389"}],"collection":[{"href":"https:\/\/business-ronin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/business-ronin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/business-ronin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/business-ronin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=389"}],"version-history":[{"count":0,"href":"https:\/\/business-ronin.com\/index.php?rest_route=\/wp\/v2\/posts\/389\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/business-ronin.com\/index.php?rest_route=\/wp\/v2\/media\/390"}],"wp:attachment":[{"href":"https:\/\/business-ronin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/business-ronin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/business-ronin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}