Softwareentwicklung & E-Commerce

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 zusammen: Sie musste irgendwann einmal entwickelt werden. Was Software niemals zusammen hat: Keine ist gleich.

Haben Sie heute eine Idee für eine Software, und vergeben den Auftrag zur Entwicklung, würde jeder Programmierer auf der Welt ihre Software anders entwickeln. Ein einfaches Beispiel: Geben Sie 10 Leuten aus ihrem Freundes- oder Bekanntenkreis folgende Aufgabe:

„Schreibe auf einer DIN-A4 Seite eine Geschichte darüber, was eine Kaffeetasse ist“.

Sie werden im Anschluss 10 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 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 auch 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 haben, bekommen von der eigentlichen Entwicklung dahinter nichts mit, und verstehen die Prozesse nur schwer bis gar nicht.

    Oftmals ist dies auch so gewollt oder den meisten 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 entwickelt wurden, um 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 Sie zum Zeitpunkt einer "Idee" für eine künftige Software und deren Entwiclung 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 wollen, sollten Sie sich im klaren darüber sein, persönlich viel Zeit und Arbeit mit den Entwicklern gemeinsam zu verbringen (On-Site-Customer).

  • Während der Planung gilt es zudem abzuwägen, für welches Umfeld eine Softwarelösung am besten entwickelt wird, und auch 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 oder Bücher, oder einem Musikprogramm, kann dies durchaus Sinn machen, wenn diese vor einem Flug downgeloaded wurden, und auch dann gelesen oder gehört werden können wenn man gerade offline ist. Programme die auf aktuelle Daten wie z.b. den aktuellen Wetterbericht, oder Software die auf den aktuellen Standort angewiesen, machen offline eher weniger Sinn.

    Ebenfalls kommt es stark darauf an, ob bestimmte Rechenprozesse einer Software auf ihrem 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 muß das Programm für verschiedene Plattformen wie Windows, iOS, Android entwickelt werden, machen CLOUD-basierte Systeme wie AMAZON AWS oder Microsoft AZURE Sinn etc..

  • Eine Software besteht aus einem sogenannten Quellcode, die Sprache(n) in welcher die Software geschrieben wurde. Auch im Bezug auf Pflege und Wartung, sowie künftigen 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 einem Apple iOS Handy zu funktionieren.

    Dies klingt logisch und zunächst auch danach als ob es Sinn machen würde, kann sich in der Praxis wie wir bereits bei bestehenden Kundenprojekten erlebt haben, auch als sehr negativ herausstellen.

    Gerade wenn Software komplexe Rechenoperationen auf dem jeweiligen Endgerät vornehmen muss, ist es ggf. 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 wie Daten übertragen werden sollen.

    Dies sind 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, mit ihnen 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 Grunde gilt von Anfang an, auch gemeinsam mit einem Entwicklungspartner zu analysieren, ob bestimmte Teile einer Software ggf. 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 der 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 incl. EC- und Kreditkartenlesern an. Dabei werden die gesetzlichen Vorgaben wie beispielsweise "KassenSichV" berücksichtigt.

Zudem sind Sie bei uns als Shopify-Partner in guten Händen, für die zuverlässige entwicklung ihres Online-Shops.

"Nach der Entwicklung"

  • Auch wenn eine Entwicklung auf sehr hohem und professinellen Nieveau durchgeführt und umgesetzt wird oder wurde, so dass Sie oder ihr Unternehmen künftig weitestgehend unabhängig von Entwicklern und Programmierern ist, kommt es immer wieder zu Situationen, in welchen Sie auch künftig auf Programmierer angewiesen sein werden.

    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 Falle kommt es aus dieser Tatsache heraus 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 und in solchen Fällen, ihre Software wieder auf die aktuellen Gegebenheiten der Anbieter anpassen. Stand heute gibt es keine Möglichkeiten, diesen Sachverhalt zu umgehen.