{"id":26263,"date":"2020-04-15T07:56:00","date_gmt":"2020-04-15T07:56:00","guid":{"rendered":"https:\/\/barc.com\/?p=26263"},"modified":"2023-10-25T10:17:45","modified_gmt":"2023-10-25T10:17:45","slug":"technical-debt-der-langsame-tod-fuer-jedes-data-warehouse","status":"publish","type":"post","link":"https:\/\/barc.com\/de\/technical-debt-der-langsame-tod-fuer-jedes-data-warehouse\/","title":{"rendered":"Technical Debt \u2013 der langsame Tod f\u00fcr jedes Data Warehouse"},"content":{"rendered":"\n<p>Bei der Entwicklung von IT-Systemen, so auch Data Warehouse-L\u00f6sungen, werden manchmal Kompromisse eingegangen, die nicht den Architektur-Vorgaben oder Design Pattern entsprechen. Diese bewussten oder unbewussten Abweichungen werden als technische Schuld (engl. \u00abtechnical debt\u00bb) bezeichnet.<\/p>\n\n\n\n<p>Im Gegensatz zu Fehlern l\u00e4uft das System zwar korrekt. Wie bei allen Schulden entstehen dadurch Zinsen. Jedoch wurden Abh\u00e4ngigkeiten geschaffen, die einen sp\u00e4teren Ausbau erschweren oder zu einem aufw\u00e4ndigeren Betrieb f\u00fchren.<\/p>\n\n\n\n<p>Diese Abh\u00e4ngigkeiten werden als technische Schulden bezeichnet. Schulden m\u00fcssen irgendwann mit Zinsen zur\u00fcckbezahlt werden. Zinsen sind zuk\u00fcnftige Mehraufw\u00e4nde. Werden diese Schulden nicht vermieden oder schnellstens eliminiert, ist irgendwann eine effiziente Weiterentwicklung der DWH-Plattform nicht mehr m\u00f6glich.<\/p>\n\n\n\n<p>Martin Fowler, ein bekannter englischer Autor und Dozent zu Softwarearchitektur, unterscheidet folgende Arten von technischen Schulden:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>R\u00fccksichtslos<\/td><td>Umsichtig<\/td><\/tr><tr><td>Vors\u00e4tzlich, bewusst<\/td><td>\u201eWir haben keine Zeit f\u00fcr das Design.\u201c<\/td><td>\u201eWir m\u00fcssen jetzt ausliefern und (sp\u00e4ter) mit den Konsequenzen umgehen.\u201c<\/td><\/tr><tr><td>Ungewollt, ohne Absicht<\/td><td>\u201eWas ist ein Schichtenmodell?\u201c<\/td><td>\u201eJetzt wissen wir, wie wir es h\u00e4tten tun sollen.\u201c<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Arten von technischen Schulden nach Martin Fowler<\/figcaption><\/figure>\n\n\n\n<p>Bewusste Schulden entstehen h\u00e4ufig unter Zeitdruck. Denn der angestrebte Meilenstein muss unbedingt erreicht werden. Unwissentliche Schulden entstehen eher durch unpr\u00e4zise Anforderungen, die falsch interpretiert und umgesetzt werden. Ein weiterer Grund ist die Unkenntnis von Design Pattern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was sind Ursachen von technischen Schulden?<\/h2>\n\n\n\n<p>Leider ist man sich der Auswirkungen von technischen Schulden lange nicht bewusst, manchmal werden sie nicht gleich erkannt. Die Effektivit\u00e4t nimmt langsam ab. Es dauert immer l\u00e4nger, bis Erweiterungen umgesetzt werden k\u00f6nnen.<\/p>\n\n\n\n<p>Technical Debts sind \u00f6fters auch die Ursache f\u00fcr sp\u00e4tere Fehler, was zu Korrekturen und einer weiteren Ressourcenbindung f\u00fchrt. Das hei\u00dft, dass die Liste nicht erf\u00fcllter Changes immer l\u00e4nger wird. Die Kosten f\u00fcr die Umsetzung kleinerer Anforderungen steigen. Die Unzufriedenheit auf Business-Seite w\u00e4chst und das Vertrauen in das <a href=\"https:\/\/barc.com\/de\/data-warehouse\/\">Data Warehouse<\/a> beginnt zu erodieren. Letztendlich kann es dazu f\u00fchren, dass das System gestoppt wird.<\/p>\n\n\n\n<p>Doch was sind die eigentlichen Ursachen? Es gibt mehrere Hauptgr\u00fcnde:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Architekturprinzipien werden nicht eingehalten, beispielsweise das Abweichen vom Schichtenmodell.<\/li>\n\n\n\n<li>Mangelhafte technische Infrastruktur, wie das Erstellen und Pflegen von Testf\u00e4llen in Excel.<\/li>\n\n\n\n<li>Fehlende Entwicklungsstandards und Design Pattern.<\/li>\n\n\n\n<li>Unpr\u00e4zise Business-Anforderungen, die falsch verstanden und umgesetzt werden. Nachtr\u00e4glich werden sie durch Workarounds korrigiert.<\/li>\n\n\n\n<li>Zeitdruck: Um Lieferergebnisse rechtzeitig bereit zu stellen, werden \u00abAbk\u00fcrzungen\u00bb genommen. Das hei\u00dft, es kommt bewusst zu Verletzungen der Architektur- und Designvorgaben.<\/li>\n\n\n\n<li>St\u00e4ndig wechselnde Anforderungen oder zus\u00e4tzliche Anforderungen (moving targets). Wenn dabei nicht jeweils der Projektplan angepasst wird, ist die Erf\u00fcllung nur noch mit Kompromissen m\u00f6glich.<\/li>\n<\/ul>\n\n\n\n<p>Dies sind nur einige Gr\u00fcnde. In vielen F\u00e4llen kommt es noch zu einer Vermischung mit sogenannten Anti-Pattern. Dies sind ung\u00fcnstige oder sch\u00e4dliche Muster in der L\u00f6sungsentwicklung, die in diesem Artikel nicht weiter behandelt werden.<\/p>\n\n\n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"63995\" class=\"elementor elementor-63995\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t\t<section class=\"ob-is-breaking-bad elementor-section elementor-top-section elementor-element elementor-element-a596d88 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a596d88\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ob_bbad_use_it&quot;:&quot;yes&quot;,&quot;_ob_bbad_sssic_use&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-085abfc\" data-id=\"085abfc\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"ob-is-breaking-bad ob-bb-inner elementor-section elementor-inner-section elementor-element elementor-element-3e136f2 elementor-section-height-min-height elementor-section-content-middle shadow1nohover elementor-section-boxed elementor-section-height-default\" data-dce-background-overlay-image-url=\"https:\/\/barc.com\/wp-content\/uploads\/2022\/06\/header-test-v2.svg\" data-id=\"3e136f2\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;_ob_bbad_use_it&quot;:&quot;yes&quot;,&quot;_ob_bbad_sssic_use&quot;:&quot;no&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-cf52f9f elementor-hidden-phone\" data-id=\"cf52f9f\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c3e8cc6 elementor-widget elementor-widget-image\" data-id=\"c3e8cc6\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"80\" height=\"80\" src=\"https:\/\/barc.com\/wp-content\/uploads\/2023\/01\/Icon-white_Webinar-02.png\" class=\"attachment-full size-full wp-image-147797\" alt=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-6fa2c4c\" data-id=\"6fa2c4c\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;_ob_bbad_is_stalker&quot;:&quot;no&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-95d6747 elementor-widget elementor-widget-heading\" data-id=\"95d6747\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">H\u00e4lt Ihr Data Warehouse Sie zur\u00fcck?<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c201747 elementor-widget elementor-widget-heading\" data-id=\"c201747\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">BARC Webinar (on demand)<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50044c5 bullet elementor-widget elementor-widget-text-editor\" data-id=\"50044c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_postman_use&quot;:&quot;no&quot;,&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Das muss nicht so bleiben. Data Fabric verbindet Datenumgebungen \u00fcber eine gemeinsame logische Schicht. Zugriff auf Daten dort, wo sie liegen. Keine Migration, kein Integrationsaufwand.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1406db0 elementor-align-left elementor-widget elementor-widget-button\" data-id=\"1406db0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_ob_widget_stalker_use&quot;:&quot;no&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/barc.com\/webinare\/data-fabric-forget-warehousing\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Jetzt ansehen!<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n\n\n\n<h2 class=\"wp-block-heading\">Was sind Technical Debts in einem Data Warehouse?<\/h2>\n\n\n\n<p>In der Praxis habe ich bereits mehrere Beispiele von Technical Debts gesehen, die zu einer kompletten Ineffizienz f\u00fchrten. In wenigen F\u00e4llen f\u00fchrte dies dazu, dass Data Warehouses gestoppt wurden. Dazu ein paar Beispiele von Technical Debts aus meiner Praxis:&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Verwendung des Data Warehouses als Data Hub<\/h3>\n\n\n\n<p>Die meisten Data Warehouses verf\u00fcgen \u00fcber eine effiziente Datentransformation in Ladeprozessen, in Form von <a href=\"https:\/\/barc.com\/de\/reviews\/etl\/\">ETL-Tools<\/a>. Jedoch fehlt in mehreren IT-Infrastrukturen eine zentrale L\u00f6sung zum Automatisieren von Datenfl\u00fcssen und f\u00fcr das Schnittstellen-Management. Dadurch wird immer wieder die ETL-Infrastruktur eines Data Warehouses als Data Hub zwischen operativen Systemen missbraucht.<\/p>\n\n\n\n<p>Das bedeutet, dass das Data-Warehousing-Team nun auch f\u00fcr operative Datenfl\u00fcsse verantwortlich wird. Diese kriegen jeweils die h\u00f6here Priorit\u00e4t. Somit fehlen Ressourcen f\u00fcr den Betrieb und die Weiterentwicklung des Data Warehouses.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Das Data Warehouse oder das BI Tool wird zur Datenpumpe<\/h3>\n\n\n\n<p>Anstelle von Analysen ab der \u00aboffiziellen\u00bb Infrastruktur, werden die Tools nur f\u00fcr Datenextrakte verwendet. \u00dcblicherweise werden nur verschiedene Queries gebaut und anschlie\u00dfend nach Excel exportiert, anstelle von Dashboards und Analysen. Das eigentliche Analysetool ist dann Excel.<\/p>\n\n\n\n<p>In einem anderen Fall wurde das Data Warehouse offiziell zum Bef\u00fcllen von verschiedenen individuellen Analysel\u00f6sungen in den Fachbereichen verwendet. Dies waren Schatten-Data-Warehouses im eigentlichen Sinne und es gab \u00fcber 60 davon. Das Data-Warehousing-Team war in der Pflicht entsprechende Schnittstellen zu bauen und zu betreiben. Obwohl diese Aufgaben nichts mit dem eigentlichen Zweck des Data Warehouses zu tun hatten, wurden daf\u00fcr die gesamten Ressourcen absorbiert. Das Data-Warehousing-Team beklagte sich sogar, dass sie nicht einmal gen\u00fcgend Kapazit\u00e4t hatten um&nbsp;diese abweichenden Aufgaben zu erf\u00fcllen. In diesem Extremfall wurde das Data Warehouse tats\u00e4chlich gestoppt und mit einer Neuentwicklung begonnen. Auch zuk\u00fcnftig waren individuelle L\u00f6sungen erlaubt, jedoch lag die Erstellung in der Pflicht der Fachbereiche.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Verwendung des Data Warehouses als Archiv<\/h3>\n\n\n\n<p>Zur Einhaltung der rechtlichen Aufbewahrungsfristen&nbsp;werden Daten l\u00e4nger in einem Data Warehouse gespeichert als notwendig. In einem Fall sollte ein Altsystem abgel\u00f6st werden, dessen Daten bisher nicht im Data Warehouse gespeichert wurden. Das Data Warehouse hatte bisher nur den Zweck, operative Auswertungen f\u00fcr einen r\u00fcckwirkenden Zeitraum von maximal einem Jahr zu erstellen. Da kein Datenarchiv existiert, entstand die Idee die Detaildaten des Altsystems f\u00fcr einen Zeitraum von mehr als 15 Jahren ins Data Warehouse zu speichern. Dadurch w\u00fcrde das Datenmodell um das zehnfache aufgebl\u00e4ht, obwohl die Daten f\u00fcr keine Analysen ben\u00f6tigt werden. Trotz anderweitiger Empfehlung wurde dies leider umgesetzt. Als Konsequenz ging die Performance deutlich herunter und Entwicklungsaufw\u00e4nde nahmen zu, weil auch das Datenmodell der archivierten und nicht genutzten Daten mitgepflegt werden musste.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sourcing \u00fcber Altsysteme<\/h3>\n\n\n\n<p>Bei der Abl\u00f6sung eines alten Data Warehouses besteht h\u00e4ufig ein gro\u00dfer Zeitdruck, das neue System rechtzeitig bereitzustellen. Daher ist es naheliegend, bereits korrekte Ladestrecken zu nutzen und aus dem alten Data Warehouse zu \u00fcbernehmen, anstatt neue Sourcings zu bauen. Dies wird damit begr\u00fcndet, dass die neuen Ladestrecken sp\u00e4ter gebaut werden. In der Praxis habe ich diese Begr\u00fcndung schon mehrfach geh\u00f6rt, jedoch habe ich noch nie erlebt, dass sp\u00e4ter die Ladestrecken neu gebaut wurden. Somit wurde eine Abh\u00e4ngigkeit zum Altsystem geschaffen, die zu einem unbefristeten Weiterbetrieb beider Systeme zwingt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Abweichungen vom Schichtenmodell<\/h3>\n\n\n\n<p>Die Daten werden jeweils nur vom Datenakquisitions-Layer, also vom Quellsystem in eine h\u00f6here Schicht transportiert. Leider wird immer wieder davon abgewichen und es gibt bidirektionale Datenfl\u00fcsse zwischen den Schichten&nbsp;oder zwischen operativen Systemen und dem Data Warehouse.<\/p>\n\n\n\n<p>Das Schichtmodell hat einen bestimmten, definierten Zweck. Dies sind nur wenige Grunds\u00e4tze: Daten werden nur \u00fcber die unterste, die Data-Akquisition-Schicht geladen und gepr\u00fcft. Es gibt keine direkte Datenintegration in eine andere Schicht. Daten werden immer von unten nach oben transferiert und nie in die Gegenrichtung. Datenextrakte sind nur aus einer definierten Schicht erlaubt f\u00fcr regulatorische Bereitstellung und nie f\u00fcr operative Systeme. Der Userzugriff ist limitiert auf die oberste oder die obersten Schichten. Ansonsten m\u00fcssen f\u00fcr alle Schichten Berechtigungsmodelle erstellt und verwaltet werden. Das gleiche gilt f\u00fcr ein Business-Glossar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Das Fehlen oder Nichteinhalten von Entwicklungsgrunds\u00e4tzen<\/h3>\n\n\n\n<p>Dazu gibt es die unterschiedlichsten Formen von Abweichungen, wie das Nichteinhalten von Namenskonventionen oder Schritten in der Datentransformation. Ich habe auch schon gesehen, dass Testsysteme teilweise f\u00fcr produktive Analysen verwendet wurden. Das hei\u00dft, dass es im eigentlichen Sinn zwei produktive Systeme gibt: ein offizielles und ein inoffizielles. Somit waren nur noch eingeschr\u00e4nkt Tests m\u00f6glich, was dazu f\u00fchrte, dass nicht alle Fehler entdeckt wurden und es regelm\u00e4\u00dfig zu Produktionsst\u00f6rungen nach Release-Terminen kam.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Unvollst\u00e4ndige Infrastruktur<\/h3>\n\n\n\n<p>Es gibt zwar Tools f\u00fcr die Datenintegration, -speicherung und -analyse. Jedoch kein vollst\u00e4ndiges Toolset f\u00fcr die Entwicklung und Verwaltung der Systeme, wie ein Repository f\u00fcr Anforderungen, Code-Repositories und Versionierung, Testf\u00e4lle, geschweige denn eine automatisierte Regressionstest-Library.<\/p>\n\n\n\n<p>Die Entwickler behelfen sich mit manuellen organisatorischen L\u00f6sungen, wie Ordnerstrukturen auf einem Fileserver und diversen Excel-Listen. Unter Zeitdruck kommt es dabei immer wieder zu Fehlern, weil nicht alles nachgef\u00fchrt wurde.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ungen\u00fcgendes Patch- und Release-Management<\/h3>\n\n\n\n<p>Business-Anforderungen werden h\u00e4ufig h\u00f6her priorisiert als technische Anforderungen. Das bedeutet, dass h\u00e4ufig keine Zeit mehr besteht, die neusten Patches einzuspielen und Sicherheitsl\u00fccken zu schlie\u00dfen. Vereinzelt geschieht dies auch aus einem falschen Verst\u00e4ndnis von Stabilit\u00e4t.<\/p>\n\n\n\n<p>So hat mir schon einmal ein BI-Manager voller Stolz erkl\u00e4rt, dass sie seit knapp einem Jahr keinen einzigen Patch mehr eingespielt haben, nach dem irrigen Prinzip \u00abnever change a running system\u00bb.<\/p>\n\n\n\n<p>In einer anderen Situation war der Kunde mit seiner Dashboard-L\u00f6sung nicht mehr zufrieden und wollte ein neues Tool evaluieren. Es hat sich dann herausgestellt, dass der Hersteller bereits zwei Release-Nummern weiter war, also nicht mehr Release 6.x, sondern 8.x. Der Kunde musste nur noch die neuen Releases einspielen, f\u00fcr die er mit seiner j\u00e4hrlichen Maintenance-Geb\u00fchr berechtigt war, zu einem Bruchteil der Gesamtkosten, wie eine Neubeschaffung.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Datenpflege oder Datenbereinigung im Data Warehouse<\/h3>\n\n\n\n<p>Nicht erlaubt ist die transaktionale Datenpflege in einem Data Warehouse, insbesondere nicht von Stammdaten. Eine Fehlerfassung kann die Richtigkeit s\u00e4mtlicher Auswertungen zerst\u00f6ren. Datenpflege hat in separaten Applikationen zu erfolgen, die \u00fcber den normalen Sourcing Prozess ins Data Warehouse geladen werden.<\/p>\n\n\n\n<p>Dasselbe gilt f\u00fcr die Bereinigung von Datenqualit\u00e4tsproblemen. Cleansing ist zwar ein \u00fcblicher Vorgehensschritt beim Laden von Daten. Jedoch ist es nicht Zweck eines Data Warehouses, Daten zu bereinigen und anschliessend korrigiert ins operative System zur\u00fcckzuschreiben.<\/p>\n\n\n\n<p>Schon gar nicht erlaubt sind Datenmanipulationen direkt in den Tabellen \u00fcber ein Administratoren-Tool. Der Audittrail wird dadurch unterbrochen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Feature coding<\/h3>\n\n\n\n<p>Manchmal werden Anforderungen formuliert, die nicht zu den Standardfunktionen eines eingesetzten Tools geh\u00f6ren. Nun werden Zusatzfunktionen mittels Macros, Stored Procedures oder sonstige Programmierfunktionen nachgebaut. Nur selten sind diese Codes dokumentiert.<\/p>\n\n\n\n<p>Regelm\u00e4\u00dfig f\u00fchren genau diese selbstprogrammierten Erweiterungen zu Schwierigkeiten bei einem Major-Release-Wechsel der eingesetzten Software. Die meisten dieser Features, die ich gesehen habe, wurden einzig mit dem Zweck gebaut, marginale Layout-Anpassungen an Reports oder Dashboards vorzunehmen. Ist es das wirklich wert?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wie k\u00f6nnen Technical Debt\u2019s vermieden werden?<\/h2>\n\n\n\n<p>Wie schon einleitend beschrieben, entstehen viele dieser Probleme aus Zeitdruck oder Unwissenheit. Die Vermeidung und Eliminierung von Technical Debts beginnt meistens bei einer schriftlich dokumentierten Governance&nbsp;wie der Beschreibung des Entwicklungsprozesses, einer definierten Architektur, Entwicklungsgrunds\u00e4tzen und Design Patterns, Betriebshandb\u00fccher, usw.<\/p>\n\n\n\n<p>Das Definieren von Handlungsanweisungen allein gen\u00fcgt nicht. Damit die Regeln gelebt und eingehalten werden sind Schulungen notwendig, beispielsweise f\u00fcr neueintretende Mitarbeiter. Weiter ben\u00f6tigt es eine regelm\u00e4\u00dfige \u00dcberpr\u00fcfung der Regeleinhaltung, wie Audits.<\/p>\n\n\n\n<p>Ebenfalls hilfreich sind integrierte Tools, um einen m\u00f6glichst hohen Automatisierungsgrad zu erreichen. Tools verhindern auch die Regelabweichung. Fachliche Anforderungen werden zu technischen Komponenten mit dazugeh\u00f6renden Testf\u00e4llen. Wird eine integrierte Toollandschaft gew\u00e4hlt, k\u00f6nnen Mehrfacherfassungen vermieden werden. Bei unabh\u00e4ngigen Tools besteht zus\u00e4tzlich das Risiko, dass darin ein unterschiedlicher Stand abgebildet ist, weil noch nicht alle Informationen nachgef\u00fchrt sind.<\/p>\n\n\n\n<p>BARC kann Sie bei der Identifikation und schrittweisen Eliminierung bestehender Technical Debts unterst\u00fctzen. Unsere Beratungsleistungen umfassen auch den Entwurf einer zweckm\u00e4\u00dfigen Systemarchitektur, einer Governance, beispielsweise eines \u00abBook of Standards\u00bb oder Evaluierung der ben\u00f6tigten Tools. Kontaktieren Sie uns und vereinbaren Sie ein erstes unverbindliches Gespr\u00e4ch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Was sind technische Schulden \u2013 oder auch Technical Debts in einem Data Warehouse? Wo liegen deren Ursachen und wie k\u00f6nnen sie vermieden werden? <\/p>\n","protected":false},"author":5,"featured_media":47284,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[48,150],"tags":[],"plus":[],"content_typ":[209],"layoutvorlage":[],"class_list":["post-26263","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-datenmanagement","category-data-driven-enterprise","content_typ-artikel"],"acf":[],"_links":{"self":[{"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/posts\/26263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/comments?post=26263"}],"version-history":[{"count":0,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/posts\/26263\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/media\/47284"}],"wp:attachment":[{"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/media?parent=26263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/categories?post=26263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/tags?post=26263"},{"taxonomy":"plus","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/plus?post=26263"},{"taxonomy":"content_typ","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/content_typ?post=26263"},{"taxonomy":"layoutvorlage","embeddable":true,"href":"https:\/\/barc.com\/de\/wp-json\/wp\/v2\/layoutvorlage?post=26263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}