{"id":3347,"date":"2018-08-21T11:42:05","date_gmt":"2018-08-21T09:42:05","guid":{"rendered":"http:\/\/www.ollmetzer.com\/?p=3347"},"modified":"2018-08-21T11:42:05","modified_gmt":"2018-08-21T09:42:05","slug":"gegen-den-strich-dogmen-und-fettleibigkeit-in-der-softwareentwicklung","status":"publish","type":"post","link":"https:\/\/www.ollmetzer.com\/?p=3347","title":{"rendered":"Gegen den Strich &#8211; Dogmen und Fettleibigkeit in der Softwareentwicklung"},"content":{"rendered":"<p>Auf dem <a href=\"\/?p=3174\">diesj\u00e4hrigen eCommerce Camp<\/a> in Jena hatte ich einen Vortrag mit dem Titel &#8222;No KISS \u2013 we\u2019re doing it wrong&#8220; gehalten. Darin hatte ich mich kritisch mit aktuellen Trends in der Entwicklung von Webapplikationen auseinandergesetzt. Die Kernthese ist, dass in der Entwicklung der Trend zu Komplexit\u00e4t und Aufgebl\u00e4htheit geht. Alles was im Entwickler-Mainstream gerade angesagt ist, macht die Anwendungen fett, tr\u00e4ge, angreifbar, schwieriger zu handhaben und aufw\u00e4ndig zu debuggen.<\/p>\n<p>Ich hatte erwartet, mit dem Vortrag auf viel Widerspruch zu sto\u00dfen, aber das Feedback war seinerzeit wohlwollend. Das nehme ich nun zum Anlass, eine kleine Artikelserie mit dem Titel &#8222;Gegen den Strich&#8220; zu diesem Thema zu schreiben.<\/p>\n<p><strong>\u00dcber Professionalit\u00e4t<\/strong><\/p>\n<p>Der Trend zur Komplexit\u00e4t und Fettleibigkeit ist so stark und wird so wenig hinterfragt, dass es mir zur Zeit wirklich die Lust an sogenannter &#8222;professioneller&#8220; Softwareentwicklung verg\u00e4llt.<\/p>\n<p>Das betrifft Ebenen &#8211; angefangen von der Softwarearchitektur, \u00fcber Designpatterns, benutzten Tools und Libraries, Entwicklungsmethoden, Deployment und Infrastruktur.<\/p>\n<p>Ich habe gesehen, dass neue Produkte auf abstrakter Ebene eine hervorragende Architektur mitbringen und auf Codeebene derart akademisch aufgebl\u00e4ht sind, dass es mich bei dem Gedanken gruselt, in solch einem Codemoloch unter Zeitdruck Fehler suchen zu m\u00fcssen.<\/p>\n<p>Ich habe gesehen, dass Software, die bereits seit 10 Jahren erfolgreich eingesetzt wird, so &#8222;modernisiert&#8220; wurde, dass die alten Designschw\u00e4chen beibehalten wurden (&#8222;wir m\u00fcssen abw\u00e4rtskompatibel bleiben&#8220;) und mit v\u00f6llig anderen Architekturans\u00e4tzen \u00fcberformt, so dass am Ende weder der alte, noch der neue Ansatz sauber umgesetzt sind.<\/p>\n<p>Ich hatte Diskussionen \u00fcber den Einsatz von Tools, die ich f\u00fcr den angestrebten Zweck nicht ben\u00f6tigt habe, aber benutzen sollte, weil man das so macht und das angeblich eine saubere Methode sei.<\/p>\n<p>Sp\u00e4testens da klappt bei mir das Visier runter.<\/p>\n<ul>\n<li>Ich soll Tools benutzen, obwohl ich sie aktuell nicht brauche?<\/li>\n<li>Ich soll das &#8222;Framework des Tages&#8220; nutzen, weil das gerade der heisse Scheiss ist?<\/li>\n<li>Ich soll Software immer weiter abstrahieren, bis \u00fcberhaupt nicht mehr erkennbar ist, an welcher Stelle eigentlich was gerade passiert?<\/li>\n<\/ul>\n<blockquote><p>Sorry Babe, ich bin nicht der Meinung, dass so etwas professionell ist.<\/p><\/blockquote>\n<p>Professionell ist, mit m\u00f6glichst geringem Mitteleinsatz das Maximum an Output zu erzielen.<\/p>\n<p>Professionell ist, Dinge so klar zu gliedern, dass im Fehlerfall sehr schnell die Ursache gefunden und behoben werden kann.<\/p>\n<p>Professionell ist, Designs und Abl\u00e4ufe in sich stimmig zu entwerfen.<\/p>\n<p>Professionell ist, unn\u00f6tige Abh\u00e4ngigkeiten zu vermeiden<\/p>\n<p>Professionell ist, Werkzeuge und Verfahren darauf zu \u00fcberpr\u00fcfen, ob sie die Abl\u00e4ufe verbessern, das Setup vereinfachen, Abh\u00e4ngigkeiten reduzieren und den Mitteleinsatz zu verringern oder den Output zu vergr\u00f6\u00dfern.<\/p>\n<p><strong>Vom Anecken bei anderen Entwicklern<\/strong><\/p>\n<p>Ich wurde vor einiger Zeit gefragt, was ich von Symfony als Framework halte und der Fragende war sehr erstaunt, als er von mir die offensichtlich unerwartete Antwort bekam &#8222;sehr wenig&#8220;. Noch schlimmer: Die Frage, welches Framework gut f\u00e4nde habe ich mit &#8222;gar keines&#8220; beantwortet. Und mit meiner Gegenfrage, warum er denn \u00fcberhaupt ein Framework nutzen m\u00f6chte und nicht lieber auf wenige, gut ausgesuchte Libraries setzt konnte er letztlich gar nichts anfangen.<\/p>\n<p>Ich konnte regelrecht sehen, wie in seinem Kopf die Schublade &#8222;Kleiner Hobbyentwickler&#8220; aufging und ich dort reingestopft wurde.<\/p>\n<p><strong>Gegen Gedankenlosigkeit und Dogmen<\/strong><\/p>\n<p>Nat\u00fcrlich ist nicht alles schlecht und es gibt tats\u00e4chlich sehr sinnvolle &#8222;Best Practices&#8220;.<\/p>\n<p>Auf der Suche nach einem einheitlichen Codingstil gab es vor 15 Jahren erbitterte Grabenk\u00e4pfe mit Schwerverletzten. Heute stellt man seine IDE einfach auf &#8222;PSR-&#8222;\/PSR-4&#8220; ein und fertig.<\/p>\n<p>Es macht auch wenig Sinn, lang dar\u00fcber zu diskutieren, wie eine REST Schnittstelle funktioniert und der Einsatz des MVC-Patterns bei normalen Webanwendungen sehe auch ich als gesetzt an.<\/p>\n<p>Was mich wirklich st\u00f6rt, ist nicht das einzelne Tool, sondern das Herangehen.<\/p>\n<p>Wer Symfony nehmen will, soll es tun. Wer mit LESS, SASS, Grunt oder sonstigen Tools arbeiten m\u00f6chte, soll es tun. Wer mit Jenkins seine Container f\u00fcr automatisierte Tests bauen will, der soll es tun.<\/p>\n<p>Aber er sollte vorher ergebnisoffen pr\u00fcfen, ob der Zusatzaufwand gerechtfertigt ist und man die Aufgaben nicht auch auf ganz andere, m\u00f6glicherweise wesentlich schlankere Art l\u00f6sen kann.<\/p>\n<p>Diese Abw\u00e4gung findet momentan einfach nicht statt. Die Diskussionen sind sehr einseitig und von Dogmen durchsetzt. Das kommt daher, dass man allen Ernstes Jobtitel wie &#8222;Software-Evangelist&#8220; schafft.<\/p>\n<p>So etwas tut auf Dauer keiner Branche gut.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auf dem diesj\u00e4hrigen eCommerce Camp in Jena hatte ich einen Vortrag mit dem Titel &#8222;No KISS \u2013 we\u2019re doing it wrong&#8220; gehalten. Darin hatte ich mich kritisch mit aktuellen Trends in der Entwicklung von Webapplikationen auseinandergesetzt. Die Kernthese ist, dass in der Entwicklung der Trend zu Komplexit\u00e4t und Aufgebl\u00e4htheit geht. Alles was im Entwickler-Mainstream gerade [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-3347","post","type-post","status-publish","format-standard","hentry","category-development"],"_links":{"self":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/3347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3347"}],"version-history":[{"count":11,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/3347\/revisions"}],"predecessor-version":[{"id":3358,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/3347\/revisions\/3358"}],"wp:attachment":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}