Was ist individuelle Softwareentwicklung?
Es gibt unterschiedliche Möglichkeiten Software zu erstellen.
Man kann Content Management Systeme nutzen, Programmiersprachen, Frameworks und weitere Ansätze.
Im Beitrag ein paar Informationen wie so eine Softwareentwicklung funktioniert.
Definition
Individuelle Softwareentwicklung unterscheidet sich von anderen Ansätzen, wie zum Beispiel Shrink Wrap (Englisch für “Eingepackt”). Windows Office oder SAP sind Möglichkeiten. Diese sind bereits vorprogrammiert und werden so genutzt wie diese bereitgestellt werden.
Besonders in Unternehmen braucht es jedoch Software die auf die speziellen Anforderungen der Fachabteilungen abgestimmt sind. Diese werden von “fertigen Lösungen” meistens nicht geliefert. Das kommt öfter vor als man denkt. Denn diese Lösungen sind meistens für den Massenmarkt programmiert und nicht für die Bedürfnisse von bestimmten Firmen.
Bei der Individualprogrammierung von Lösungen werden Programmiersprachen wie PHP, Laravel, ASP.NET, C#, Java, Python, C++ und weitere genutzt, um von Grund auf neue Software zu schreiben.
Auch gibt es die Möglichkeit bestehende Lösungen wie SAP (mit ABAP), Magento (mit PHP), TYPO3 (PHP), Oracle (Java) zu erweitern. Dabei werden meistens zusätzliche individuelle Module entwickelt, welche mit diesen Lösungen zusammenarbeiten.
Einige Beispiele:
- a) Die Vertrieb eines Konzerns benötigt eine Möglichkeit die Datenbank abzufragen und dem Kunden sehr spezifische Informationen bereitzustellen. Von der ERP Lösung welche die IT Abteilung bereitstellt, kann man jedoch keine Daten abrufen. Auch bietet der Hersteller der Software keine entsprechende Erweiterung. Nach einer Suche nach passenden Add-Ons, kommt man darauf, dass es besser wäre eine individuelle Programmierung vorzunehmen, welche die Anforderungen des Verkaufs genau abdeckt. Als Technologie wird ASP.NET gewählt.
- b) Individualsoftware für eine Webapplikation: Eine Firma möchte deren Nutzern ermöglichen, die neuesten Informationen abrufen zu können und auch Nachbestellungen zu tätigen. Es werden Möglichkeiten wie Shopware und OXID angeschaut. Man merkt jedoch schnell, dass diese zwar sehr viele Funktionalitäten haben, davon jedoch nur 10 Prozent benötigt werden. Gleichzeitig fehlen 90 Prozent der Funktionen, welche die Anwender brauchen. Diese müssten dann entweder als Plugin erstellt werden (was auch als individuelle Programmierung bezeichnet werden kann) oder man könnte alles neu machen, mit einer Technologie wie Laravel. Ein IT Dienstleister wird nun beauftragt die Software von Grund auf neu, mit diesem Ansatz, zu codieren.
- c) Servicemitarbeiter sollen in Echtzeit auf Installationsdaten zurückgreifen können: Die Servicemitarbeiter welche die Maschinen, die an unterschiedlichen Standorten aufgestellt sind, bedienen müssen derzeit immer den Telefonsupport anrufen oder eine Excel Datei öffnen. Der Support wird dadurch extremst aufgebläht und die Excel Dateien sind nicht immer Up-To-Date. Es wird entschieden eine App entwickeln zu lassen die auf Android und iOS läuft und mit welcher die Servicekräfte auf die Firmeninterne Datenbank zugreifen können. Es wird eine Schnittstelle (API) entwickelt und das Frontend der Mobilen App wird mit Java und Objective C erstellt. Es gibt zudem eine Webapplikation, über welche die Nutzer zentral von einem Admin verwaltet werden können.
Diese Beispiele lassen sich noch beliebig fortsetzen.
Warum nicht fertige Lösungen nutzen?
Es stimmt zwar, dass es viele fertige IT Programme auf dem Markt gibt. Jedoch sind diese meistens auf eine grosse Menge von Abnehmern gerichtet.
Ein Beispiel: Es wird ein Produktkonfigurator von einer Agentur gebaut, welche nun als Lizenz erwerblich ist. Die Agentur hat das System jedoch so gebaut, dass es einer maximalen Anzahl an Abnehmern passt. In diesem Fallbeispiel könnte es ein T-Shirt Konfigurator sein. Solche Systeme werden stark nachgefragt und man kann den Preis pro Lizenz gering halten, da es viele kaufen. Eine Lösung zu konzipieren, welche nur von zwei drei Anwendern gebraucht wird, macht dagegen wenig Sinn.
Man kann sich einen Wettbewerbsvorteil verschaffen
Unternehmen wie Amazon hätten auf eine Shoplösung wie Magento setzen können. Die Herausforderung wären jedoch die vielen Einschränkungen des Systems gewesen. Auch eine Skalierung zu vielen Nutzern wäre schwer geworden.
Durch die individuelle Softwareentwicklung mit Java und C++ von Grund auf neu, konnte sich das Unternehmen einen Vorteil gegenüber anderen Anbietern erarbeiten.
Eine Skalierung und das Hinzufügen von Eigenentwicklungen, zu einer fertigen Software wäre zudem sehr aufwendig und kaum umsetzbar gewesen.
Diese Referenz ist jedoch etwas extrem. Es lässt sich auch auf sehr viel kleinere Projekte anwenden.
Auch kleine und mittelständische Unternehmen im deutsprachigen Raum schaffen es mit solchen Eigenentwicklungen ein Alleinstellungsmerkmal zu erzielen.
Besonders interessant sind auch Nischenanbieter die individuelle Programmierungen von Onlineshops oder Portalen haben.
Vorteile und Nachteile
Es gibt einige Schwächen und Stärken dieses Weges.
Hier einige davon:
1) Es ist relativ Investitionslastig/ teuer
Meistens werden IT Dienstleister beauftragt, welche diese Individualsoftware erstellen. Diese haben einen Stundensatz von zirka 80 bis 140 Euro. Gleichzeitig braucht es in vielen Fällen mehrere Mannmonate (160 Stunden im Monat) und mehrere Experten (Frontend-Designer, Datenbank-Experten, Backend-Entwickler, etc.) welche an dieser Aufgabe arbeiten.
Solch eine Softwareentwicklung kann damit mehrere Zehntausend bis Hunderttausend und mehr Euro kosten.
Jedoch: Es lohnt sich in den meisten Fällen. Wenn man es schafft die Effizienz der Mitarbeiter um 50 Prozent zu steigern, die Gesamtkosten der Verwaltung um 30 Prozent zu senken, etc. dann lohnt sich dieser Aufwand sehr schnell.
Wenn jeder Vertriebsmitarbeiter aufgrund der Webanwendung 10 mehr Verkäufe im Monat erzielt und der Umsatz des gesamten Unternehmung um mehrere Millionen Euro steigt, dann sind auch eine Investition von 200’000 oder 300’000 Euro eher gering. Eine individuelle Software hat daher definitiv seine Vorteile.
2) Braucht Zeit
Die Entwicklung einer solchen Anwendung dauert in den meisten Fällen einige Monate. Nicht selten müssen diese Systeme an die Hauseigenen Applikationen angebunden werden. Hierfür braucht es die notwendigen Schnittstellen.
Diese Zeit muss man einkalkulieren, wenn man solche Aufgaben angeht.
3) Softwarelösung benötigt Wartung
Sobald es ein Update vom Technologiehersteller gibt (PHP 5 zu Version 7; Android 3 zu Version 5, etc.), müssen auch die programmierten Softwarelösungen erneuert werden.
Das Update alleine kann Aufwendungen bedeuten, die fast einer Neuentwicklung entsprechen. Dies muss man einkalkulieren.
Zudem kann es sein, dass der Softwareentwickler (IT Unternehmen, Digitalagentur, Freelancer, etc.) das System ständig begleiten muss. In manchen Fällen, wie bei grossen Plattformen,fda sitzen eventuell auch einige der Programmierer des Dienstleisters beim Kunden Vollzeit.
Hier noch ein klarer Vorteil:
Budget für Lizenzen kann man sparen
Wenn man fertige Software für 10’000 Mitarbeiter lizenziert, dann fällt pro Nutzer eine Gebühr an. Dies kann sich schnell auf mehrere Millionen Euro in Zahlungen an den Softwareanbieter im Jahr summieren.
Entwickelt man die Lösung mit Open Source Technologien wie Java oder PHP, dann fallen keine dieser Kosten an. Auch die Hinzunahme von weiteren 100 Mitarbeitern wäre ohne weiteres möglich. Bei einer professionellen Shrink Wrap Plattform, müsste man sich dagegen mit dem Experten bei dem Hersteller abstimmen und entsprechende Zahlungen tätigen und die Applikationen freischalten.
Fazit
Mit einer individuellen Programmierung kann man Systeme erschaffen, die sich an die Systemlandschaft anpassen.
Man sollte sich jedoch mit Konzepten wie Agile und Waterfall auseinandersetzen, da diese den Entwicklungsprozess fördern.
Wie gehen Sie dabei vor? Welche Software haben Sie im Einsatz?
Interessante Beiträge:
Mehr Informationen zur individuellen Softwareentwicklung
Vorteile einer solchen Softwareentwicklung
Bilder: Canva
Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.
Schreibe einen Kommentar