
Softwareentwicklung
Eine Einführung zum besseren Verständnis
Softwareentwicklung ist nicht gleich Softwareentwicklung

Wenn wir in der heutigen Zeit mit Software in Berührung kommen (z. B. eine Wetter App auf dem mobilen Telefon, Word oder Excel auf dem PC oder Mac), hat jede Software eines gemeinsam: sie musste irgendwann entwickelt werden. Und: keine ist gleich.
Wenn du heute eine Idee für eine Software hast, und möchtest den Auftrag für eine Entwicklung an jemanden geben, würde jeder Programmierer auf der Welt deine Software anders entwickeln. Ein einfaches Beispiel: Gebe zehn Personen aus deinem Freundes- oder Bekanntenkreis folgende Aufgabe:
„Schreibe auf einer DIN-A4 Seite eine Geschichte darüber, was eine Kaffeetasse ist“.
Du wirst im Anschluss zehn verschiedene Geschichten in den Händen halten.
Ähnlich verhält es sich mit einer Softwareentwicklung. Die Herangehensweise jedes Programmierers zur Entwicklung, und letztendlichen Lösung der Aufgabenstellung, ist anders. Noch komplexer wird es, wenn Teams, also mehrere Programmierer gemeinsam, an einer Entwicklung arbeiten.
-
Wie aus dem Beispiel mit der Kaffeetasse hervorgeht, steckt die Lösung nach der Frage: „Wie löse ich das Problem bzw. die Aufgabe?“ in jedem einzelnen Kopf jedes einzelnen Menschen. Und wird entsprechend jeweils anders gedacht und umgesetzt.
Wichtig dabei ist ebenfalls, die Struktur und dessen Aufbau zu beachten. Es wird Geschichten über die Kaffeetasse geben, die ganz klar strukturiert und auf den Punkt gebracht sind, andere wiederum lesen sich eher schwer, sind komplex und kommen nicht wirklich auf den Punkt.
Eine klare Struktur und der Aufbau bei einer Softwareentwicklung sind maßgeblich für deren Funktion, Stabilität, Geschwindigkeit und am Ende auch für die Art und Weise wie sie von einem Anwender bedient werden kann.
Zudem spielt in vielen Bereichen von Anfang an die richtige Hardware eine Rolle, auf welcher die Software eingesetzt wird.
Viele von uns, die eine Software einsetzen oder einen Entwicklungsauftrag hierfür vergeben, bekommen von der eigentlichen Entwicklung dahinter nichts mit und verstehen die Prozesse nur schwer bis gar nicht. -
Oftmals ist dies auch so gewollt und den meisten Auftraggebern nicht wichtig, da es am Ende um die Funktionalität und das Ergebnis geht.
Problematisch wird es allerdings dann, wenn die Entwicklung nicht so läuft wie ursprünglich gedacht, und / oder die Kosten dafür aus dem Ruder laufen.

-
Es gibt in der Softwareentwicklung verschiedene Vorgehensmodelle die dazu entwickelt wurden, die Gesamtheit von Denkprozessen und deren Methoden zur Verbesserung der Leistungsfähigkeit von Systemen zu optimieren.
Hierunter fallen beispielsweise Begriffe wie "Agile Softwareentwicklung", "SCRUM", "Wasserfallmodell", "Extreme Programming", um nur einige zu nennen.
Wir wollen an dieser Stelle bewußt nicht näher auf die Details eingehen, da diese zum Zeitpunkt einer "Idee" für eine künftige Software und deren Entwicklung noch keine Rolle spielen.
Welches Vorghehen am Ende zum Einsatz kommt, hängt von vielen Faktoren ab, die sich am Ende nur in persönlichen Gesprächen klären lassen. So spielen beispielsweise die Anforderungen an die Software, deren Zielsetzung, die Größe des Projektteams und vor allem Sie als Kunde selbst eine wichtige Rolle.
Der letzte Punkt ist nicht zu unterschätzen. Wenn Sie eine Idee für eine Software haben und diese mit einem Entwicklungspartner umsetzen möchten, sollten Sie sich im Klaren darüber sein, dass Sie persönlich viel Zeit und Arbeit mit den Entwicklern gemeinsam verbringen (On-Site-Customer).
Nur so kann auch gewährleistet werden, dass deine Software am Ende auch das tut, was Sie von ihr verlangen und vorgestellt haben. -
Während der Planung gilt es zudem abzuwägen, für welches Umfeld eine Softwarelösung am besten entwickelt wird, und zuätzlich darum, wo für die Software benötigte Daten hinterlegt werden sollen.
Bei einer App für mobile Telefone geht es beispielsweise darum festzulegen, ob diese im gesamten auch dann funktionieren soll, wenn in Teilen keine Netzwerkverbindung zum Internet besteht und ob dies überhaupt möglich ist. Bei Programmen wie z. B. einem Offline-Reader für Dokumente, Bücher oder einem Musikprogramm kann dies durchaus Sinn machen, wenn diese vor einem Flug downgeloaded werden und auch dann gelesen oder gehört werden können, wenn man gerade keine Verbindung zum Internet hat. Programme die auf aktuelle Daten, wie z. B. den aktuellen Wetterbericht oder Software die auf den aktuellen Standort angewiesen sind, machen offline eher weniger Sinn.
Ebenfalls kommt es stark darauf an, ob bestimmte Rechenprozesse einer Software auf deinem PC und / oder mobilen Endgerät verarbeitet werden können oder ob hierfür eher Serversysteme in einem Rechenzentrum benötigt werden.
Zudem muss man sich damit beschäftigen, auf welcher Plattform die Software am Ende für den Endanwender laufen soll und was am besten Sinn macht. Kann es beispielsweise eine rein auf Internetbrowsern basierte Lösung sein oder muss das Programm für verschiedene Plattformen wie Windows, iOS, Android entwickelt werden, machen CLOUD-basierte Systeme wie AMAZON AWS oder Microsoft AZURE Sinn usw..

-
Eine Software besteht aus einem sogenannten Quellcode, dies sind die Sprache(n) in welcher die Software geschrieben wurde. Auch im Bezug auf Pflege und Wartung sowie künftige Funktionen, versucht man Software weitestgehend so zu entwickeln, dass ein später damit verbundener Aufwand so gering wie möglich gehalten wird.
So gibt es auch plattformübergreifende Entwicklungssysteme. Diese ermöglichen es beispielsweise, dass ein Quellcode nur einmal geschrieben werden muss, um anschließend auf einem Google Android und gleichzeitig auch auf einem Apple iOS Handy zu funktionieren.
Dies klingt logisch und zunächst auch sinnvoll – kann sich in der Praxis, wie wir bereits bei bestehenden Kundenprojekten erlebt haben, aber auch als sehr negativ herausstellen.
Gerade wenn Software komplexe Rechenoperationen auf dem jeweiligen Endgerät vornehmen muss, ist es gegebenenfalls sinnvoller zweierlei Quellcodes zu entwickeln.
Auch spielt die Sicherheit von Daten eine große Rolle, um sie vor externen Zugriffen zu schützen sowie die Art der Verschlüsselung der Daten, welche übertragen werden sollen.
Dies sind aber nur einige Beispiele, welche es während der Planung von Software zu berücksichtigen gilt.
Wir haben in der Softwareentwicklung und Projektleitung jahrelange Erfahrungen und stehen Ihnen gerne für ein persönliches Gespräch zur Verfügung, um Ihre Ideen für eine Software welcher Art auch immer, zu besprechen. Hierbei kennen wir sehr gut unsere Möglichkeiten, aber auch unsere Grenzen. Wir sind uns sicher, Sie vertrauensvoll beraten und begleiten zu können. -
Das Rad nicht neu erfinden!
Wir kennen viele Projekte in welchen viel Zeit und Geld dafür aufgebracht wurde, Teile an Software selbst zu entwickeln, obwohl diese bereits am Markt existieren und in eine Gesamtlösung hätten einbezogen werden können.
Leider ist dies nicht selten der Fall. Aus diesem Grund gilt von Anfang an auch gemeinsam mit einem Entwicklungspartner zu analysieren, ob bestimmte Teile einer Software möglicherweise extern hinzugekauft werden können. Dies gilt sowohl für kleine als auch für große Projekte und hat sich in der Vergangenheit - und aus unserer Erfahrung heraus - bereits oftmals positiv bewährt.

E-Commerce
Gerade in den letzten Jahren nimmt der Bereich des Handels und auch Dienstleistungen im Internet immer mehr zu. Dies betrifft sowohl den Verkauf von physischen Waren die versendet werden müssen, als auch zum Download bereitgestellte Produkte, wie beispielsweise Onlinekurse oder Videosprechstunden.
Unsere Lösungen bilden alle Bereiche des E-Commerce ab und berücksichtigen ebenso wichtige Themen, welche im Hintergrund ablaufen müssen. Dazu zählen z. B. die automatische Erzeugung von Rechnungs- und Lieferscheinen, die Anbindung an Paketdienstleister und der Ausdruck von Versandetiketten, als auch die Übertragung relevanter Daten an beispielsweise die DATEV und / oder Steuerberater.
Auch bieten wir mit unseren Lösungen POS-Kassensysteme mit EC- und Kreditkartenlesern an. Dabei werden die gesetzlichen Vorgaben wie beispielsweise "KassenSichV" berücksichtigt.
Zudem sind Sie bei uns als offizieller Shopify-Partner in guten Händen für die zuverlässige Entwicklung oder aber Migration deines bestehenden Onlineshops.

Nach der Entwicklung
-
Auch wenn eine Entwicklung auf sehr hohem und professinellen Niveau umgesetzt wird und so aufgebaut ist, dass Sie ohne Programmierer Ihr System selber pflegen und bedienen können, gibt es dennoch immer wieder Fälle in welchen Sie einen professionellen Programmierer benötigen.
Dies ist der Tatsache unterschiedlicher Systeme geschuldet. Software setzt auf Systemen wie Windows, iOS, Android, Unix, Datenbanken, verschiedenen Browsern wie Google Chrome, Safari usw. auf. Programmierer "bedienen" sich innerhalb der Softwarentwicklung von diesen Systemen zum Stand der aktuellen Entwicklung.
Die Anbieter dieser Systeme wie beispielsweise Microsoft, Apple, Google usw., führen, wie uns allen bekannt, in zeitlichen Abständen aus verschiedenen Gründen Software-Updates durch.
Bei diesen Softwareupdates kann es, und wird es, immer wieder einmal passieren, dass die Anbieter bestimmte Funktionen, welche auch in Ihre Software durch die Programmierer eingebunden wurden, sich entweder ändern, oder teilweise z. B. aus Sicherheitsgründen komplett entfernt wurden. In einem solchen Fall kommt es in Teilen einer bereits entwickelten Software zu Störungen, teilweisen Fehlverhalten oder Abstürzen.
Aus diesen Gründen müssen Programmierer von Zeit zu Zeit die Software wieder auf die aktuellen Gegebenheiten der Anbieter anpassen. Stand heute gibt es keine Möglichkeiten diesen Sachverhalt zu umgehen.
