Die Evolution von Software Entwicklung

Doğan Uçar

Die digitale Ära der Datenverarbeitung hat uns viele Möglichkeiten eröffnet und viele Prozesse automatisiert bzw. überflüssig gemacht. Insbesondere komplizierte oder langandauernde, fehleranfällige Rechenvorgänge sind für den Computer in der Regel relativ schnell und fehlerfrei erledigt.

Software an sich ist meist eine Schnittstelle zwischen Eingabe, Datenvalidierung/-aufbereitung, Datenverarbeitung und Ausgabe. Während der Computer mühelos mit Bitfolgen arbeiten kann, wurde speziell für den Menschen benutzbare und intuitive Programme erstellt. Exakt an diesem Punkt beginnt Software Entwicklung.

Desktop Applikationen

In den frühen Jahren des “Personal Computers”, also die Zeit, in der eine grafische Oberfläche das Betriebssystem anstelle eines Terminals abstrahierte, haben sich sogenannte Desktop Applikationen etabliert. Eine Applikation für den Desktop ist eine Art von Software die speziell für die Plattform (das Betriebssystem) entwickelt wurde, Einnahmen entgegen nahm, die Daten verarbeitete und zuletzt eine Meldung über Erfolg oder Misserfolg anzeigte. Moderne Applikationen waren mit einem Netzwerk – meist ein Intranet – verbunden und konnten Daten sogar zentral verwalten. Vor- und Nachteile von Desktop Apps unterteilen sich grob in:

Zugriff auf Betriebssystem FunktionenUpdates nicht ohne weiteres möglich
Offline nutzbarKein Zugriff von mehreren Endgeräten
Bessere PerformancePortierbarkeit stark eingeschränkt
(meist) plattformspezifisch
Vor- und Nachteile von Desktop Anwendungen

Web Applikationen

Die weite Verbreitung des Internets machte Web Applikationen erst möglich. Mit zunehmend besseren Breitbrand-Zugängen und der Verbreitung des Personal Computers (bzw. später der smarten Geräte) etablierten sich neben Desktop Apps auch Web Applikationen. Eine Anwendung im Web benötigt in der Regel keine Installation, ist in gängigen und modernen Browsern nutzbar und setzt lediglich eine stabile Internetverbindung voraus. Des Weiteren sind Updates meist problemlos durchführbar und die Benutzerin oder der Benutzer bekommt hiervon nichts mit. Web Applikationen arbeiten ebenfalls nach dem oben genannten Schema mit Dateneingabe, -verarbeitung und -ausgabe, nur eben im Web. “Das Web” ist in diesem Falle meist ein Server der Anbieterin oder des Anbieters, die bzw. der für uns die Applikation und Datenbank hostet und meist auch Services wie Backups und Updates leistet. Doch hier genau ist ein wesentlicher Aspekt: Daten, die der Betreiberin oder dem Betreiber anvertraut werden, sind extern gespeichert und ihr bzw. ihm zugänglich – und das meistens dauerhaft. Jedoch muss sie bzw. er gültiges Recht wie z.B. die DSGVO einhalten und Daten strikt nur dann einsehen bzw. verarbeiten, wenn es nicht anders möglich ist.

Updates ganz einfach durchführbarBeschränkter Zugriff auf Betriebssystem Funktionen
Zugriff von mehreren EndgerätenOffline teilweise bis gar nicht nutzbar
plattformunabhängig Internetverbindung zur Synchronisation
keine Installation nötigBrowserspezifische Abweichungen
Vor- und Nachteile von Web Apps

Mobile Anwendungen (Apps)

Mobile Anwendungen kann man – technisch – ziemlich genau in die Mitte zwischen Desktop und Web Applikationen setzen. Auf der einen Seite laufen sie meist nativ auf den Endgeräten (z.B. Smartphones) und auf der anderen Seite setzen sie eine funktionierende Internetverbindung voraus. Software Entwicklerinnen und Entwickler greifen auf vergleichbare Programmierkonzepte wie bei Desktop Apps zurück, wobei sich natürlich stark der Kontext ändert. Beispielsweise spielt bei einer Desktop Anwendung der Akkustand keine Rolle, während er bei der mobilen App ein kritischer Punkt ist, der zu beachten gilt. So ist z.B. das Speichern auf den Geräten selbst meist keine Option, da das Entfernen der App oder Zurücksetzen des Endgeräts alle Daten unwiderruflich löschen würde. Daher wird der Zustand der App mit den Servern der Betreiberin bzw. des Betreibers synchronisiert.

Nicht wenige Anbieterinnen und Anbieter setzen auch auf Web Anwendungen im Rahmen einer mobilen App. Dabei bildet die auf dem Gerät installierte App selbst lediglich ein Grundgerüst während die eigentliche Anwendung eine responsive Web Anwendung ist, die in dem Grundgerüst geöffnet wird. Für diesen Zweck gibt es verschiedene Ansätze um Web Applikationen “mobiler” zu machen (z.B. Progressive Web Apps (PWA), die JavaScript Frameworks Ionic und Cordova, Microsoft Xamarin, etc).

Vor- und Nachteile von mobilen Apps sind nicht immer ganz trennbar und Grenzen sind hier meist fließend. In der Regel kommt es auf den Anwendungsfall an. Besitzt man beispielsweise nur eine rein informative Webseite, ist eine gute responsive Web App ausreichend.

Cloud Anwendungen

Die “Cloud” ist ein sehr abstrakter Begriff und meist nicht ohne weiteres Hintergrundwissen zu erklären. Ganz grob gefasst könnte man sagen, dass die Cloud eine einheitliche IT-Betriebsumgebung darstellt, die eine oder mehrere, private und auch öffentliche und verteilte Clouds miteinander verbindet und einen einzigen Kontrollpunkt für die Verwaltung von Infrastruktur und Anwendungen in jeder Cloud bietet. Der große Vorteil von Cloud-Lösungen ist (aus Sicht der Benutzerin bzw. dem Benutzer) das wegfallende Rechenzentrum und somit der administrative Aufwand. Des Weiteren ist eine einfache Skalierung (in allen Richtungen) meist mit wenigen Mausklicks zu machen. Ein Beispiel für eine Anwendung in der Cloud ist Keestash Enterprise aus unserem Haus.

Software Entwicklung bei Ucar Solutions

Wir bei Ucar Solutions glauben an die Vielfältigkeit von Software, ihren Einsatz und das Potenzial, nachhaltig zur Digitalisierung beizutragen. Daher konzentrieren wir uns auf moderne, sichere und skalierbare Anwendungen egal ob auf dem Desktop, im Web, auf einem mobilen Endgerät, den “Internet of Things” (IoT) oder auf anderen Plattformen. Dabei legen wir uns nicht bewusst auf >ein< Konzept, eine Plattform oder Programmiersprache fest. Vielmehr glauben wir, dass die Situation vor Ort, also bei Ihnen, ausgewertet, geplant und besprochen und letztendlich umgesetzt werden muss. Egal ob große Legacy Anwendungen erweitert, Enterprise Lösungen abgelöst oder veraltete Systeme ersetzt werden müssen: wir sind der richtige Ansprechpartner für Sie!

Die oben genannten Ansätze, die man grob in Analyse, Umsetzung & Test aufteilen kann, setzen wir sehr gerne in agilen Methoden wie z.B. Scrum oder Kanban um. Dies bietet den Vorteil, dass unsere Kunden jede Phase des Projekts begleitet und aktiv mitgestalten kann. Des Weiteren bieten wir unseren Kunden auch sogenannte “Software-as-a-Service” (kurz: SaaS) Lösungen an, falls der Betrieb und Wartung von eigenen Servern nicht möglich ist.

Sie haben noch weitere Fragen oder möchten unverbindlich ein Beratungsgespräch?

Sie möchten vorhandene Lösungen erweitern oder ablösen, suchen nach SaaS-Lösungen oder wollen in die Cloud? Zögern Sie nicht uns zu kontaktieren. Nutzen Sie einfach das nachfolgende Kontakt-Formular und wir melden uns bei Ihnen so schnell wie möglich.