{"id":152,"date":"2005-12-20T21:20:04","date_gmt":"2005-12-20T19:20:04","guid":{"rendered":"http:\/\/www.puls200.de\/?p=152"},"modified":"2005-12-20T21:21:17","modified_gmt":"2005-12-20T19:21:17","slug":"carpe-diem-ii","status":"publish","type":"post","link":"https:\/\/www.puls200.de\/?p=152","title":{"rendered":"Carpe Diem (II)"},"content":{"rendered":"<p>Es gibt so eine Art Qualit\u00e4tskurve, auf der man Software ansiedeln kann. Am einen Ende findet man Werkzeuge f\u00fcr den Einmalgebrauch, schnell zusammengeschustert ohne R\u00fccksicht auf Stil und Speicherlecks, Hauptsache, die Aufgabe l\u00e4uft irgendwie durch. Danach kommen eigene Tools f\u00fcr den Hausgebrauch, dann vielleicht Software f\u00fcr Einzelkunden oder Unternehmenssoftware, sp\u00e4ter sog. \"Shrinkwrap\", also massentauglicher Kram der im Mediamarkt in den Regalen steht und ganz am Ende Firmware und Konsolenspiele. Wenn man f\u00fcr das jeweilige Produkt einen festen Zeitaufwand zugrunde legt wird man feststellen, da\u00df sich die Aufgabenanteile f\u00fcr unterschiedliche T\u00e4tigkeiten wie Konzeption, Implementierung und Test auch entlang dieser Kurve verschieben. <\/p>\n<div><img decoding=\"async\" src=\"http:\/\/www.puls200.de\/data\/post\/Dez05\/chart.jpg\" name=\"nicht ernst nehmen\" \/><\/div>\n<div style=\"float:left;\"><img decoding=\"async\" src=\"http:\/\/www.puls200.de\/data\/post\/Dez05\/legende.jpg\" name=\"willk\u00fcrliche Kategorien\" \/><\/div>\n<p>Das fiel mir neulich bei einem Gespr\u00e4ch mit einem Kollegen auf, bei dem es darum ging, da\u00df wir nicht sicher wissen, welche Teile des Codes \u00fcberhaupt verwendet werden bzw. welche Teile der Anwendung der Kunde \u00fcberhaupt nutzt. Wenn wir jetzt Computerspiele entwickeln w\u00fcrden, h\u00e4tten wir da ein gro\u00dfes Problem. Tun wir aber nicht. Und das beste: Wir haben nicht einmal Zeit, es herauszufinden. Tests auf dem Niveau von Shrinkwrap w\u00fcrden bei uns Bugs und Inkonsistenzen in enormer Anzahl zutage f\u00f6rdern. Aber es gibt keinen Vorteil, wenn viel Zeit verbraucht wird und der betreffende Bereich der Anwendung nie vom Kunden ausgef\u00fchrt wird. Ein anderes Beispiel ist das Refakturieren. Damit bezeichnet man das Umschreiben von gr\u00f6\u00dferen Programmteilen mit dem Ziel, eine Vereinfachung, Verbesserung und in vielen F\u00e4llen auch quantitative Verringerung des Programmcodes herbeizuf\u00fchren. Die Vorteile bleiben zwar, dennoch bringt eine Refakturierung in unserem Bereich mehrere Nachteile mit sich:<\/p>\n<ul>\n<li>Der refakturierte Code mu\u00df erneut getestet werden<\/li>\n<li>Es ist schwer sicherzustellen, da\u00df durch die \u00c4nderungen keine unerwarteten Nebenwirkungen auftreten<\/li>\n<li>Die \u00c4nderungen m\u00fcssen an die Kollegen kommuniziert werden<\/li>\n<li>Durch die enorme Menge vorhandenen Codes sind i.d.R. fast immer gr\u00f6\u00dfere \u00c4nderungen erforderlich. Der daf\u00fcr ben\u00f6tigte Zeitaufwand kann nicht immer fakturiert werden. Falsch. Kann eigentlich <em>nie<\/em> fakturiert werden.<\/li>\n<\/ul>\n<p>Ein guter Freund von mir ist ein regelrechter Code-\u00c4sthet. Nichts soll redundant sein, alles effektiv und glatt geb\u00fcgelt. Er h\u00e4tte mit dem Kram hier nicht viel Freude.<br \/>\nWorauf ich hinaus will: Man kann zwar denselben Beruf haben, aber seinen Tag trotzdem fast komplett mit andere Dingen verbringen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn ich schreiben k\u00f6nnte wie Max Goldt w\u00e4r der Text auch nicht so langweilig. OK? :-) <a href=\"https:\/\/www.puls200.de\/?p=152\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts\/152"}],"collection":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=152"}],"version-history":[{"count":0,"href":"https:\/\/www.puls200.de\/index.php?rest_route=\/wp\/v2\/posts\/152\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.puls200.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}