{"id":25607,"date":"2023-08-15T23:23:07","date_gmt":"2023-08-15T21:23:07","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=25607"},"modified":"2023-08-15T23:25:05","modified_gmt":"2023-08-15T21:25:05","slug":"usability-in-code-an-overview-from-ide-to-ai","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/08\/15\/usability-in-code-an-overview-from-ide-to-ai\/","title":{"rendered":"Usability in Code an Overview from IDE to AI"},"content":{"rendered":"\n<p>Wenn man \u00fcber Usability Kontext von IT redet, wird ein integraler Part gerne komplett \u00fcbersehen: Den Entwickler.<br>Wie soll Usability richtig umgesetzt werden wenn, der der Beides umsetzten, muss von beiden Themen w\u00e4hrend seiner Arbeit nichts mitbekommt?<br>Warum h\u00f6rt Usability immer dort auf, wo der Entwickler auf sein Handwerkszeug schaut?<\/p>\n\n\n\n<p>Die Fragen oben sind nat\u00fcrlich etwas \u00fcberspitzt, dennoch stellt sich die Frage warum Usablity f\u00fcr den Entwickler beim Entwickeln kein gro\u00dfes Thema ist.<br>Oder ist es das vielleicht doch?<\/p>\n\n\n\n<p>Wir gehen jetzt dem Mythos von unzul\u00e4nglicher Usability als Entwickler auf den Grund, welche Probleme es weiterhin gibt und wohin die Reise vielleicht hingeht.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">IDE<\/h2>\n\n\n\n<p>IDEs oder Integrated Development Enviroments z\u00e4hlen heute zu den absoluten Standards, mit denen effektiv jeder Entwickler heute arbeitet. Sie erlauben Syntax-Highlighting, automatisierte Code Completion, automatisches Refactorn und Style Checks. All diese Dinge vereinfachen die Arbeit mit Code und das Entwickeln an sich, zus\u00e4tzlich erm\u00f6glichen sie das Integrieren von Compiler und Build-Routinen alles in einem. All das streamligned den Entwicklungsprozess und unterst\u00fctzt den Entwickler dabei effektiv und sauber zu arbeiten.<\/p>\n\n\n\n<p>Bevor IDEs oder Terminals verwendet wurden, gab es viel interessante Wege Code zu schreiben und zu kompilieren. Zum Beispiel wurden die Instruktionen dem Compiler in Form von Lochkarten \u00fcbergeben. Die Instruktionen wurden mithilfe von Flowcharts konstruiert.<\/p>\n\n\n\n<p>Allerdings mussten IDEs auch damals mehrere H\u00fcrden \u00fcberwinden, bis sie gro\u00dffl\u00e4chig angenommen wurden.<br>Die erste IDE wurde f\u00fcr die Sprache Dartmouth BASIC 1964 entwickelt. Dartmouth BASIC war die Vorg\u00e4ngersprache zum bekannten BASIC und wurde zusammen mit einer IDE entwickelt. Allerdings stie\u00df das Konzept des Vereinfachens und die Idee dem Entwickler High-Level Probleme vorzusetzen statt sich mit dem Buildprozess des Compilers herumzuschlagen auf negative Reaktionen unter den damaligen Entwicklern. Diese f\u00fchlten sich von der IDE in ihrer Kreativit\u00e4t eingeschr\u00e4nkt und lehnten die Verwendung von IDEs gro\u00dffl\u00e4chig ab. Selbst bis 1995 waren IDEs nicht gerne unter Entwicklern gesehen, mit den gleichen Argumenten wie 30 Jahre zuvor.<\/p>\n\n\n\n<p>Dies hat sich nun aber ge\u00e4ndert und die Verwendung von IDEs ist vermutlich der gr\u00f6\u00dfte Schritt in Richtung Usability f\u00fcr Entwickler, den es gab. Sie vereinfachen den Einstieg in Programmiersprachen, in dem sie Syntax Fehler dem Entwickler direkt darstellen, ohne lange auf das Compiler Log zu schauen und erm\u00f6glichen es im besten Fall, dass man sich beim Lernen einer neuen Programmiersprache vollst\u00e4ndig auf die Sprache und Syntax selbst einstellen kann, ohne lange das \u00d6kosystem um Compiler, Build Prozeduren und \u00e4hnliches erforschen zu m\u00fcssen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"539\" data-attachment-id=\"25617\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/08\/15\/usability-in-code-an-overview-from-ide-to-ai\/download-3\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download.webp\" data-orig-size=\"1840,969\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"download\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download-1024x539.webp\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download-1024x539.webp\" alt=\"\" class=\"wp-image-25617\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download-1024x539.webp 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download-300x158.webp 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download-768x404.webp 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download-1536x809.webp 1536w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/download.webp 1840w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Beispiel einer IDE (InteliJ) [1]<\/figcaption><\/figure>\n\n\n\n<p>W\u00e4hrend die ersten IDEs speziell mit einer Programmiersprache mit entwickelt wurden, gibt es heute IDEs von verschiedenen Anbietern zu nahezu jeder Programmiersprache. Diese lassen sich heute auch mit Plugins versehen, um z.B. Libary-Funktionen besser zu unterst\u00fctzen oder die IDE an die eigenen W\u00fcnsche und Vorz\u00fcge anzupassen.<\/p>\n\n\n\n<p>Wo stehen wir also mit IDEs?<br>IDEs sind wahrscheinlich die sinnvollste Usability Option f\u00fcr jeden Entwickler, v\u00f6llig losgel\u00f6st von Bereich und Sprache, mit der man arbeitet. Das Verwenden einer IDE hat keinerlei Nachteile und die Auswahl an IDEs sowohl kostenpflichtig als auch kostenlos f\u00fcr quasi jede Programmiersprache erm\u00f6glicht einen sehr einfachen Einstieg. Sie helfen einfache Fehler direkt zu l\u00f6sen und k\u00f6nnen eine Basis f\u00fcr andere Tool wie Bug-Finder und Formatierungswerkzeuge bilden. Es gibt in 2023 keinen guten Grund mehr ohne eine IDE zu entwickeln.<\/p>\n\n\n\n<p>Beispiele von IDEs sind:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eclipse f\u00fcr Java (mittlerweile durch Erweiterbarkeit auch f\u00fcr andere Sprachen nutzbar)<\/li>\n\n\n\n<li>InteliJ f\u00fcr Java<\/li>\n\n\n\n<li>Visual Studio f\u00fcr C++<\/li>\n\n\n\n<li>PHPStorm f\u00fcr PHP, JavaScript und HTML<\/li>\n\n\n\n<li>PyCharm f\u00fcr Python<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Low-Code\/No-Code<\/h2>\n\n\n\n<p>W\u00e4hrend eine IDE den Entwickler beim Scheiben von Code unterst\u00fctzt und es vereinfacht Code zu schreiben, gehen LC\/NC-Plattformen (Low-Code\/No-Code) noch einen Schritt weiter und versuchen das Schreiben von Code selbst abzunehmen oder zu minimieren.<\/p>\n\n\n\n<p>LC\/NC hat zwar noch keine klare Definition, aber im Umfang dieses Artikels sprechen wir von Plattformen, die es erm\u00f6glichen Programme per visuellen Werkzeugen zu erstellen und es auch Nicht-Entwicklern erm\u00f6glichen sollen Programme zu erstellen.<\/p>\n\n\n\n<p>Low-Code als Begriff wurde stark von dem 2014 erschienen Forrester Research Trend Bericht gepr\u00e4gt. Die Idee statt textbasierten, visuelle Coding-Systeme zu verwenden gibt es allerdings schon l\u00e4nger. Low-Code Plattformen zeichnen sich aber dadurch aus, dass sie nicht nur zum Anwendungserstellen verwendet werden, sondern auch alle anderen Aspekte eines IT-Produkt Lebenszyklus abdecken, also Planung, Deployment, Wartung etc. Aufgrund dessen ist die Flexibilit\u00e4t und Anbindbarkeit von Low-Code-Systemen h\u00e4ufig auf Cloud-Systeme beschr\u00e4nkt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"25612\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/08\/15\/usability-in-code-an-overview-from-ide-to-ai\/lowcodeexample\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample.jpg\" data-orig-size=\"1840,1082\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"LowCodeExample\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample-1024x602.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample-1024x602.jpg\" alt=\"\" class=\"wp-image-25612\" width=\"1001\" height=\"588\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample-1024x602.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample-300x176.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample-768x452.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample-1536x903.jpg 1536w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/LowCodeExample.jpg 1840w\" sizes=\"auto, (max-width: 1001px) 100vw, 1001px\" \/><\/a><figcaption class=\"wp-element-caption\">Beispiel einer Low-Code-Oberfl\u00e4che (Simplifier) [2]<\/figcaption><\/figure>\n\n\n\n<p>Aus Usability-Sicht ergeben sich einige Vorteile:<br>Visuelle Coding-Tools k\u00f6nnen Verteile f\u00fcr Nicht-Entwickler bringen, die sich nicht in Programmcode einarbeiten wollen oder k\u00f6nnen, somit k\u00f6nnen Fachanwender ebenfalls simple Programme f\u00fcr ihre eigene Fachdomain erstellen und diese Verwenden.<br>F\u00fcr Entwickler k\u00f6nnen Low-Code Plattformen das schnelle Prototyping oder Proof-of-Concept Entwicklung unterst\u00fctzen, um simple Prototypen schnell den Kunden vorzustellen, anschlie\u00dfend kann man das eigentliche Programm immer noch auf klassischer wei\u00dfe oder mit einer Hybriden Methode entwickeln. Au\u00dferdem kann es die Zusammenarbeit zwischen Entwicklern und Fachkunden vereinfachen, wenn man in einem \u00e4hnlichen Jargon reden kann.<\/p>\n\n\n\n<p>Unter Entwicklern hat LC\/NC noch keinen besonders guten Stand, da die meisten Anwendungen nur auf Standardprozeduren basieren, die man \u201azusammenstecken\u2018 kann, um das gew\u00fcnschte Verhalten zu erreichen. Zus\u00e4tzlich sind alle gro\u00dfen Plattformen, die LC\/NC anbieten, kommerziell und aufgrund dessen bindet man sich dadurch stark an einen speziellen Anbieter.<\/p>\n\n\n\n<p>Low-Code Plattformen sind aus einer Business-Idee entstanden und nicht aus der Entwicklerschaft. W\u00e4hrend viele Entwicklungen in der Software-Entwicklung aus der Entwicklerschaft entstanden sind und anschlie\u00dfend von Firmen aufgenommen wurden, verh\u00e4lt es sich bei Low-Code andersherum. Dies f\u00fchrt dazu, dass es immer eine Business-Anbindung der Plattformen gibt und nur unzureichende z.B. Open-Source Auskopplung der Tools gibt.<\/p>\n\n\n\n<p>Die Grundidee von visuellen Entwicklungs-Plattformen hat einige interessante M\u00f6glichkeiten, die aktuell leider nicht ausgenutzt werden. Eine interessante Nutzung w\u00e4re es z.B. Programm Definitionen per Low-Code Tools zu definieren und diese anschlie\u00dfend in beliebige Programmiersprachen zu \u00fcberf\u00fchren, sei es f\u00fcr direkte Erstellung des ganzen Programms oder um Subroutinen oder Libarys zu erstellen, die von mehreren Codebase verwendet werden kann. Alternativ k\u00f6nnte man mit k\u00fcrzerer Einarbeitungszeit Fachnutzern es erm\u00f6glichen, dom\u00e4nenspezifische Vorg\u00e4nge zu definieren, die man dann in Source-Code \u00fcberf\u00fchren k\u00f6nnte, statt lange Meetings mit den Anwendern zu f\u00fchren.<\/p>\n\n\n\n<p>Ist also Low-Code die End-All-L\u00f6sung f\u00fcr Entwicklung?<br>Nun auf der Habenseite steht der theoretische einfache Einstieg und die zug\u00e4nglichen Tools der Anbieter, allerdings haben die meisten der Systeme starke Einschr\u00e4nkungen, was Flexibilit\u00e4t und Konnektivit\u00e4t an vorhandene Systeme betrifft. <br>Ein gro\u00dfer Punkt f\u00fcr Entwickler ist sicher auch die Abh\u00e4ngigkeit von den Plattformen und Anbietern der Tools. Diese Abh\u00e4ngigkeit d\u00fcrfte ein gro\u00dfer negativer Punkt f\u00fcr die Zug\u00e4nglichkeit von LC\/NC darstellen.<br>Low-Code bleibt wie oben beschrieben hinter seinen M\u00f6glichkeiten zur\u00fcck durch die starke Business-Orientierung der Plattformen und die geringe Flexibilit\u00e4t.<\/p>\n\n\n\n<p>Low-Code Plattformen sind z.B.:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OSBP von der Eclipse Foundation (Open Source)<\/li>\n\n\n\n<li>Oracle Application Express (APEX) von Oracle<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">AI-Tools<\/h2>\n\n\n\n<p>Sp\u00e4testens seit dem gro\u00dfen Hype um ChatGPT und die M\u00f6glichkeit Code von ChatGPT erzeugen zu lassen ist das Thema von AI-Tools f\u00fcr Entwickler bekannter geworden. Die M\u00f6glichkeiten, die AI f\u00fcr Entwickler bietet, sind enorm und k\u00f6nnten in Zukunft einen sehr gro\u00dfen Einschnitt in die Art machen, wie Software-Development abl\u00e4uft. <\/p>\n\n\n\n<p>Aktuelle AI-Tools, die f\u00fcr Entwickler zugeschnitten sind, effektiv eine Weiterentwicklung der Tools, die eine IDE bietet. Intelligente Code-Vervollst\u00e4ndigung, automatisches Interpretieren von Funktionen und Erstellen von Doku, erzeugen von individuellem Boilerplate-Code nach nat\u00fcrlich sprachlicher Definition, etc. All diese Funktionen gab es in Simpel schon vorher, allerdings weit weniger ausgefeilt und wesentlich eingeschr\u00e4nkter in ihrer Funktion und Flexibilit\u00e4t. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"636\" data-attachment-id=\"25625\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/08\/15\/usability-in-code-an-overview-from-ide-to-ai\/copilort\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort.webp\" data-orig-size=\"2500,1552\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"copilort\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort-1024x636.webp\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort-1024x636.webp\" alt=\"\" class=\"wp-image-25625\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort-1024x636.webp 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort-300x186.webp 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort-768x477.webp 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort-1536x954.webp 1536w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/copilort-2048x1271.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Auszug aus GitHub Copilot [3]<\/figcaption><\/figure>\n\n\n\n<p>Die M\u00f6glichkeit komplette Code Dokumentation erstellen zu lassen oder vollst\u00e4ndige Anleitungen f\u00fcr Programmabl\u00e4ufe generieren zu lassen, nimmt Entwicklern viel Arbeit ab, die gerne herausgez\u00f6gert oder unterlassen wird.  Andere AI-Tools beinhalten automatisches Protokollieren von Meetings und erstellen von Notizen und Informationen bei Kundengespr\u00e4chen, oder automatisches intelligentes erstellen von Tutorial und Code Guides. Auch automatisch Testerstellung f\u00fcr Funktionen und Klassen ist m\u00f6glich.<\/p>\n\n\n\n<p>Ein Thema, das aktuell noch nicht wirklich aktiv ist, ist es AI f\u00fcr Sicherheit in Code zu verwenden. Sicherheitsl\u00fccken per AI im Source-Code zu erkennen, w\u00e4re ein gro\u00dfer Schritt in Richtung sicherer Systeme. Auch erkennen von Memory-Leaks oder Buffer-Overflows sollte theoretisch m\u00f6glich sein. AI-Tools f\u00fcr das Erkennen komplexerer Fehler, die statt systemischer Sicherheit z.B. Privacy Probleme in APIs oder anderen Zugriffen erkennen k\u00f6nnen, sollten in naher Zukunft m\u00f6glich sein.<br>Wenn wir einen Schritt weiter gehen, k\u00f6nnten auch vollautomatische Penetrationstests auf vollst\u00e4ndige Systemarchitekturen ausgef\u00fchrt werden. Auch Architekturanalysen und systemische Schwachstellen wie Skalierungsprobleme oder Caching Strategien f\u00fcr Systemarchitekturen k\u00f6nnten AI gesteuert untersucht werden und in automatische Skalierungsstrategien implementiert werden.<\/p>\n\n\n\n<p>Eine weitere Anwendung k\u00f6nnte in naher Zukunft auch die vollst\u00e4ndige Generierung von Programmen auf Basis von nat\u00fcrlich sprachlicher Beschreibung sein. Auch wenn diese M\u00f6glichkeit noch etwas in der Ferne steht, kann es zumindest in naher Zukunft schon sein, dass das Konzept von Low-Code zusammen mit AI-Unterst\u00fctzung das Entwickeln von Programmen f\u00fcr nicht Entwickler erm\u00f6glicht und Entwickler mehr in die konzeptionelle Ausarbeitung von Systemen verschoben werden.<\/p>\n\n\n\n<p>AI-Tools sind aktuell zwar noch nicht so ausgereift wie sie sein k\u00f6nnten und auch noch recht simpel in ihren Funktionen, dennoch k\u00f6nnen sie eine gro\u00dfe Bereicherung f\u00fcr Entwickler darstellen, um effektiv und schnell zu arbeiten. Allerdings muss man auch sagen, dass AI-Tools aktuell noch hinter ihren M\u00f6glichkeiten zur\u00fcckbleiben und in naher Zukunft eine wesentlich m\u00e4chtigere Erg\u00e4nzung f\u00fcr Entwickler darstellen k\u00f6nnen.<\/p>\n\n\n\n<p>AI-Tools:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GitHub Copilot<\/li>\n\n\n\n<li>Scribe<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Dieser kurze \u00dcberblick \u00fcber Tools und Technologien f\u00fcr Entwickler ist nat\u00fcrlich kein vollst\u00e4ndiger Blick auf alle m\u00f6glichen Erleichterungen, die es f\u00fcr Entwickler gibt. Die drei Bereiche, die hier vorgestellt wurden, zeigen dennoch, dass es einige Vereinfachungen f\u00fcr Entwickler gibt und das Thema Usability kein Buch mit sieben Sigeln f\u00fcr Entwickler sein muss. <\/p>\n\n\n\n<p>Gr\u00f6\u00dftes Potenzial f\u00fcr die Zukunft sehe ich in AI-Tools, die die Entwicklung nicht nur vereinfachen, sondern in hoffentlich naher Zukunft auch die Sicherheit stark verbessert. Aktuell bleiben neuere Optionen hinter ihrem Potenzial zur\u00fcck und sind zwar hilfreich, aber nicht so bahnbrechend wie die gro\u00dffl\u00e4chige Einf\u00fchrung von IDEs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quellen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Library_(computing)\">https:\/\/en.wikipedia.org\/wiki\/Library_(computing)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Integrated_development_environment\">https:\/\/en.wikipedia.org\/wiki\/Integrated_development_environment<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Punched_card\">https:\/\/en.wikipedia.org\/wiki\/Punched_card<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Compiler\">https:\/\/en.wikipedia.org\/wiki\/Compiler<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Dartmouth_BASIC\">https:\/\/en.wikipedia.org\/wiki\/Dartmouth_BASIC<\/a><\/li>\n\n\n\n<li>https:\/\/github.com\/features\/copilot<\/li>\n\n\n\n<li>https:\/\/scribehow.com\/library\/ai-tools-for-developers<\/li>\n\n\n\n<li>https:\/\/entwickler.de\/programmierung\/eine-neue-ara-der-softwareentwicklung<\/li>\n\n\n\n<li>https:\/\/www.mendix.com\/de\/ein-leitfaden-zur-app-entwicklung-mit-low-code\/<\/li>\n\n\n\n<li>https:\/\/de.wikipedia.org\/wiki\/OSBP_(Software)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Bild Quellen<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>https:\/\/de.wikipedia.org\/wiki\/OSBP_(Software)<\/li>\n\n\n\n<li><a href=\"https:\/\/entwickler.de\/programmierung\/eine-neue-ara-der-softwareentwicklung\">https:\/\/entwickler.de\/programmierung\/eine-neue-ara-der-softwareentwicklung<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.githubassets.com\/images\/modules\/site\/copilot-preview\/ui-demo.webp\">https:\/\/github.githubassets.com\/images\/modules\/site\/copilot-preview\/ui-demo.webp<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Wenn man \u00fcber Usability Kontext von IT redet, wird ein integraler Part gerne komplett \u00fcbersehen: Den Entwickler.Wie soll Usability richtig umgesetzt werden wenn, der der Beides umsetzten, muss von beiden Themen w\u00e4hrend seiner Arbeit nichts mitbekommt?Warum h\u00f6rt Usability immer dort auf, wo der Entwickler auf sein Handwerkszeug schaut? Die Fragen oben sind nat\u00fcrlich etwas \u00fcberspitzt, [&hellip;]<\/p>\n","protected":false},"author":1129,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,26,657],"tags":[],"ppma_author":[900],"class_list":["post-25607","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-secure-systems","category-teaching-and-learning"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":24203,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/02\/26\/die-zukunft-ist-serverless\/","url_meta":{"origin":25607,"position":0},"title":"Die Zukunft ist Serverless?","author":"Michael Partes","date":"26. February 2023","format":false,"excerpt":"\u00dcberblick Die \u201cCloud\u201d ist ein Begriff, der in den letzten Jahren immens an Bedeutung gewonnen hat. H\u00e4ufig wird sie f\u00fcr die Bereitstellung von Diensten und Services genutzt. Im Lauf der Zeit haben sich dabei verschiedene Architekturen entwickelt, die in der Cloud eingesetzt werden und unterschiedliche Ans\u00e4tze f\u00fcr die Handhabung des\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/lh5.googleusercontent.com\/hnARrH3Mz7d41IhTltMgTCpuUfKpg8k6ur_0Ir46moShZzCf53cVBMeUogOFgp2yD-maHIuCu3CIOsnqE_oBCOrEEaB-KfPc8lsQ5jWanA8hFVPvMdC5XYLBboHJ_lUbrtMT5aVqtMNUjTbsLQQNuoM","width":350,"height":200,"srcset":"https:\/\/lh5.googleusercontent.com\/hnARrH3Mz7d41IhTltMgTCpuUfKpg8k6ur_0Ir46moShZzCf53cVBMeUogOFgp2yD-maHIuCu3CIOsnqE_oBCOrEEaB-KfPc8lsQ5jWanA8hFVPvMdC5XYLBboHJ_lUbrtMT5aVqtMNUjTbsLQQNuoM 1x, https:\/\/lh5.googleusercontent.com\/hnARrH3Mz7d41IhTltMgTCpuUfKpg8k6ur_0Ir46moShZzCf53cVBMeUogOFgp2yD-maHIuCu3CIOsnqE_oBCOrEEaB-KfPc8lsQ5jWanA8hFVPvMdC5XYLBboHJ_lUbrtMT5aVqtMNUjTbsLQQNuoM 1.5x"},"classes":[]},{"id":12717,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2021\/02\/28\/flutter-code-optimierung\/","url_meta":{"origin":25607,"position":1},"title":"Flutter Code Optimierung","author":"Rafael Janetzko","date":"28. February 2021","format":false,"excerpt":"Dieser Blogeintrag befasst sich mit Optimierungsm\u00f6glichkeiten des Flutter Frameworks. Innerhalb des Blogeintrag wird darauf eingegangen was Flutter ist, warum Applikationen optimiert werden sollen und die Vorgehensweise anhand von Beispielen erl\u00e4utert. Was ist Flutter? Flutter ist ein Framework von Google, welches auf den Programmiersprachen Dart, C, C++ basiert und zur Entwicklung\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/02\/image5.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/02\/image5.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/02\/image5.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":21515,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2021\/09\/16\/application-updater-mit-addon-verwaltung\/","url_meta":{"origin":25607,"position":2},"title":"Application Updater mit Addon-Verwaltung","author":"fr067","date":"16. September 2021","format":false,"excerpt":"von Mario Beck (mb343) und Felix Ruh (fr067) Einleitung Unser Ziel war es, einen Programm Updater f\u00fcr Entwickler zu erstellen, den diese einfach in ihre CI\/CD-Pipeline integrieren k\u00f6nnen. F\u00fcr die Umsetzung haben wir die IBM Cloud und eine Serverless Architektur verwendet, um eine unbegrenzte Skalierbarkeit zu erreichen. Zu den verwendeten\u2026","rel":"","context":"In &quot;Cloud Technologies&quot;","block_context":{"text":"Cloud Technologies","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/cloud-technologies\/"},"img":{"alt_text":"","src":"https:\/\/lh4.googleusercontent.com\/H39OWwsIIPG5S_3SzxLCRbrMHu05CoB4TQgguJojyC0kHR5lNTJn5ffF6-2N1N6hrLx1PTIICwIKcZQ8JKZErFb8hEVw_Fg0pnfU35E3PJ9FqUifcpwbEgL_dYjQf2TgM9q5CcV2=s0","width":350,"height":200,"srcset":"https:\/\/lh4.googleusercontent.com\/H39OWwsIIPG5S_3SzxLCRbrMHu05CoB4TQgguJojyC0kHR5lNTJn5ffF6-2N1N6hrLx1PTIICwIKcZQ8JKZErFb8hEVw_Fg0pnfU35E3PJ9FqUifcpwbEgL_dYjQf2TgM9q5CcV2=s0 1x, https:\/\/lh4.googleusercontent.com\/H39OWwsIIPG5S_3SzxLCRbrMHu05CoB4TQgguJojyC0kHR5lNTJn5ffF6-2N1N6hrLx1PTIICwIKcZQ8JKZErFb8hEVw_Fg0pnfU35E3PJ9FqUifcpwbEgL_dYjQf2TgM9q5CcV2=s0 1.5x"},"classes":[]},{"id":27751,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2025\/07\/21\/was-unternehmenssoftware-von-entwicklern-verlangt\/","url_meta":{"origin":25607,"position":3},"title":"Was Unternehmenssoftware von Entwicklern verlangt","author":"Peter Tran","date":"21. July 2025","format":false,"excerpt":"Anmerkung: Dieser Blogpost wurde f\u00fcr das Modul Enterprise IT (113601a) verfasst Einleitung Unternehmenssoftware, wie ERP oder CRM-Systeme, ist das R\u00fcckgrat moderner Organisationen. Sie \u00fcbernimmt zentrale Gesch\u00e4ftsprozesse, verarbeitet gro\u00dfe Datenmengen zuverl\u00e4ssig und muss h\u00f6chsten Anforderungen an Sicherheit, Skalierbarkeit und Wartbarkeit gerecht werden. F\u00fcr Entwickler bedeutet das: Ihre L\u00f6sungen m\u00fcssen nicht nur\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28263,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2026\/02\/07\/hosting-my-own-models-wie-quantisierung-die-ki-aus-der-cloud-in-den-eigenen-keller-holt\/","url_meta":{"origin":25607,"position":4},"title":"Hosting My Own Models: Wie Quantisierung die KI aus der Cloud in den eigenen Keller holt","author":"Michael Jaufmann","date":"7. February 2026","format":false,"excerpt":"Dieser Blogpost wurde f\u00fcr das Modul Enterprise IT (113601a) verfasst. 1. Einleitung: Raus aus der Abh\u00e4ngigkeit Wer heute von KI spricht, meint oft die Dienste von OpenAI. Die Abh\u00e4ngigkeit von propriet\u00e4ren APIs wie GPT-4 entwickelt sich jedoch zunehmend zu einem Risiko f\u00fcr Unternehmen und Entwickler. Die Suche nach Alternativen wird\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2026\/02\/image-3.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2026\/02\/image-3.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2026\/02\/image-3.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2026\/02\/image-3.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":28492,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2026\/02\/20\/auswirkung-der-integration-von-ki-auf-den-software-development-lifecycle-mit-fokus-auf-frontend-entwicklung\/","url_meta":{"origin":25607,"position":5},"title":"Auswirkung der Integration von KI auf den Software Development Lifecycle mit Fokus auf Frontend-Entwicklung","author":"Tom Bestvater","date":"20. February 2026","format":false,"excerpt":"Abstract - Die Integration K\u00fcnstlicher Intelligenz (KI) in den Software Development Lifecycle (SDLC) f\u00fchrt zu einer Transformation der Frontend-Entwicklung und verschiebt den Fokus von der manuellen Implementierung hin zur KI-gest\u00fctzten Orchestrierung. Das vorliegende Paper untersucht den Einfluss generativer KI-Modelle und multimodaler Sprachmodelle (MLLMs) auf die Frontend-Engineering-Prozesse, wobei ein besonderer Schwerpunkt\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2026\/02\/sdlc_phases.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2026\/02\/sdlc_phases.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2026\/02\/sdlc_phases.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2026\/02\/sdlc_phases.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":900,"user_id":1129,"is_guest":0,"slug":"marc_schillke","display_name":"Marc Schillke","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0c371accbb02dc1c5e671659efe9780cfec855bbe90706545fa3ec97939af976?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/25607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/1129"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=25607"}],"version-history":[{"count":15,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/25607\/revisions"}],"predecessor-version":[{"id":25631,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/25607\/revisions\/25631"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=25607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=25607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=25607"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=25607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}