{"id":502,"date":"2017-03-09T08:00:37","date_gmt":"2017-03-09T07:00:37","guid":{"rendered":"https:\/\/se-trends.de\/?p=502"},"modified":"2017-03-07T15:42:57","modified_gmt":"2017-03-07T14:42:57","slug":"functional-thinking","status":"publish","type":"post","link":"https:\/\/www.se-trends.de\/en\/funktionales-denken\/","title":{"rendered":"How you can prevent your products from becoming obsolete tomorrow"},"content":{"rendered":"<p>Wir leben in einer unglaublich schnelllebigen Zeit. Wie k\u00f6nnen wir da sicherstellen, dass das hei\u00dfe Produkt von heute am n\u00e4chsten Tag nicht schon v\u00f6llig out ist? Beispiele gibt es daf\u00fcr genug: Tablets und 3D-Fernseher sind schon wieder auf dem absteigenden Ast. Wer wei\u00df, ob VR-Brillen und 3D-Drucker nicht morgen schon wieder out sind? Als Entwickler kann man sich \u2013 zumindest in Ma\u00dfen \u2013 vor der technischen Entwicklung sch\u00fctzen. Neu ist der L\u00f6sungsansatz nicht; aber wie bei vielen anderen Konzepten, die eigentlich &#8222;selbstverst\u00e4ndlich&#8220; sind, lohnt es sich, wiederholt genau hinzuschauen. Gemeint ist hier konkret <strong>funktionales Denken<\/strong>.<!--more--><\/p>\n<p>Die Funktion steht bei der Entwicklung oft weit oben: Nicht ohne Grund liegt der Fokus oft auf den funktionalen Anforderungen, w\u00e4hrend die nicht-funktionalen Anforderungen wohl h\u00e4ufig vernachl\u00e4ssigt werden. Trotzdem geht der Fokus schnell zu den Systemen und Untersystemen \u00fcber, oder direkt zu den Komponenten, die das System sp\u00e4ter realisieren sollen.<\/p>\n<p>Dieses Vorgehen ist durchaus legitim, es hat sich ja in der Vergangenheit bew\u00e4hrt. Um ein System entwickeln zu k\u00f6nnen, muss es heruntergebrochen und in kleinere Teile zerlegt werden. Intuitiv macht es durchaus Sinn, dass dabei die Systemstruktur die f\u00fchrende Struktur ist. Das bedeutet aber auch, dass die Sicht auf die Hauptfunktionen des Systems &#8222;weiter unten&#8220; verloren gehen kann.<\/p>\n<h2>So what?<\/h2>\n<p>Auch hier kann man sich wieder fragen: Was soll&#8217;s? Wir entwickeln ja schon seit Jahrzehnten erfolgreich umfangreiche Systeme. Dieser Aspekt wird genau dann besonders interessant, wenn sich die Technologien, die zur Realisierung der Funktionen eingesetzt werden, rasant \u00e4ndern. und genau das Problem haben wir heute.<\/p>\n<blockquote><p>Funktionales Denken wird interessant, wenn sich die Technologien rasant \u00e4ndern [tweetthis]Funktionales Denken wird interessant, wenn sich die Technologien rasant \u00e4ndern[\/tweetthis]<\/p><\/blockquote>\n<p>Es gibt viele Beispiele f\u00fcr Systeme mit konstanter Funktion, deren Technologie sich \u00fcber die Zeit teilweise dramatisch ge\u00e4ndert hat. Zu den klassischen Beispielen geh\u00f6rt die Bildaufnahme, die sich von Farbe und Pinsel (Auftragsmaler) \u00fcber den klassischen Film und Polariod bis zur digitalen Fotografie entwickelt hat.<\/p>\n<h2>Die Beste L\u00f6sung f\u00fcr den Kunden<\/h2>\n<p>Idealerweise sollte man m\u00f6glichst l\u00f6sungsneutral an ein Problem herangehen. In der Praxis ist das nat\u00fcrlich selten der Fall: Bei einem Automobilhersteller ist nun mal gesetzt, dass es ein Auto wird. Die Entwickler w\u00fcrden sicher nicht auf die Idee kommen, einen Zug oder einen Hubschrauber zu bauen, auch wenn das f\u00fcr eine bestimmte Situation vielleicht doch die &#8222;bessere&#8220; L\u00f6sung w\u00e4re (was &#8222;besser&#8220; bedeutet, h\u00e4ngt \u00fcbrigens oft von den nicht-funktionalen Anforderungen ab).<\/p>\n<h2>Nicht in die eigene Technologie verliebt sein<\/h2>\n<p>Aber um noch beim Auto zu bleiben: Warum musste Tessla auf der Bildfl\u00e4che erscheinen, um das Elektroauto endlich salonf\u00e4hig zu machen? Porsche w\u00e4re eigentlich in einer viel besseren Situation gewesen, eine Elektro-Sportauto zu entwickeln. Vielleicht stand doch nicht die Funktion im Vordergrund (&#8222;sportliches fahren&#8220;), sondern die Technologie (&#8222;Hochleistungs-Verbrennungsmotor&#8220;)?<\/p>\n<p>Es gibt genug andere Beispiele: Nokia h\u00e4tte eigentlich das Smartphone erfinden m\u00fcssen, Microsoft das Cloudgesch\u00e4ft. Diesen Beispielen ist gemein, dass die eigentliche Technologie \u00fcber die Umsetzung der Kernfunktion f\u00fcr den Kunden gestellt wurde.<\/p>\n<h2>Aber wie?<\/h2>\n<p>Die Funktionalit\u00e4t wird heute bei der Produktentwicklung l\u00e4ngst ber\u00fccksichtigt. Was aber fehlt sind zwei Dinge: Erstens wird die Durchg\u00e4ngigkeit der Funktionen nicht immer ber\u00fccksichtigt. Das bedeutet, dass bei der Entwicklung eines Untersystems nicht immer klar ist, zu welcher Hauptfunktion das Untersystem einen Beitrag leistet. Das kann dazu f\u00fchren, dass die Untersysteme nicht optimal ihren Beitrag leisten, oder \u00fcberfl\u00fcssige Elemente enthalten.<\/p>\n<blockquote><p>Funktionales Denken im SE: Die Durchg\u00e4ngigkeit von Funktionen im System ber\u00fccksichtigen, und hin und wieder den Aufbau des Systems in Frage stellen [tweetthis]Funktionales Denken im SE: Durchg\u00e4ngigkeit von Funktionen ber\u00fccksichtigen[\/tweetthis]<\/p><\/blockquote>\n<p>Zweitens sollte regelm\u00e4\u00dfig der Aufbau des Systems in Frage gestellt werden. Das bedeutet nicht, dass man jedes Mal neu anfangen muss. Aber es lohnt sich dar\u00fcber nachzudenken ob die Begr\u00fcndung &#8222;wir haben es schon immer so gemacht&#8220; wirklich die beste ist.<\/p>\n<p>Wer sich mit dem Thema mehr auseinandersetzen m\u00f6chte, dem empfehle ich das Buch <a href=\"https:\/\/se-trends.de\/rezension-model-based-system-architecture\/\">Model-Based System Architecture<\/a>, welches unter anderem ein Kapitel zur FAS-Methode enth\u00e4lt (Functional Architectures for Systems).<\/p>\n<p style=\"text-align: right;\"><span style=\"color: #808080;\"><a style=\"color: #808080;\" href=\"https:\/\/unsplash.com\/photos\/bphc6kyobMg\" target=\"_blank\">Bild: Chester Alvarez \/Unsplash<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We live in incredibly fast-moving times. How can we ensure that today's hot product isn't completely outdated the next day? There are plenty of examples of this: tablets and 3D televisions are already on the wane again. Who knows if VR glasses and 3D printers won't be out tomorrow? As a developer...<\/p>","protected":false},"author":1,"featured_media":1001,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[43,83],"tags":[100,148,151,194,150,89],"class_list":["post-502","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-industrie","category-methoden","tag-anforderungen","tag-fas","tag-funktionale-architektur","tag-funktionales-denken","tag-funktionen","tag-systemdenken"],"_links":{"self":[{"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/posts\/502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/comments?post=502"}],"version-history":[{"count":0,"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/posts\/502\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/media\/1001"}],"wp:attachment":[{"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/media?parent=502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/categories?post=502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.se-trends.de\/en\/wp-json\/wp\/v2\/tags?post=502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}