Tel. 06151 / 39 10 793

Kosten sparen durch individuelle Softwareentwicklung

Individuelle Software spart Geld und Zeit und hält Ihr Unternehmen sowohl in den Anfangsphasen mit hohem Wachstumspotential, als auch in den späteren Phasen als etabliertes Unternehmen skalierbar. Individuelle Software passt sich Ihrem Unternehmen an und ist für alle zukünfitigen Erweiterungen geeignet. Als Unternehmer investieren Sie mit der Entscheidung für die individuelle Softwareentwickjlung in Ihre unternehmerische Zukunft.

Unternehmen mit komplexen Geschäftsprozessen investieren mit der Anschaffung einer individuellen Softwarelösung, die exakt auf deren Anforderungen abgestimmt ist, in eine stetig wachsende Wirtschaftlichkeit. Da sich eine maßgeschneiderte Software in Ihrem Unternehmen auch in Zukunft um ein Vielfaches schneller und günstiger anpassen lässt, besitzen Sie sowohl in der Gegenwart als auch in der Zukunft das nötige Werkzeug, um ständig optimierte Geschäftsabläufe schnell, sicher und kostengünstig abwickeln und überwachen zu können. Durch das exakte Abbilden von täglichen Unternehmensabläufen wird das Know How Ihrer Firma an eine Software gebunden, die im Vergleich zu Mitarbeitern eine deutlich geringere Ausfallquote aufweist und dank eines hohen Produktlebenszyklus viele Jahre fehlerfrei arbeitet.

Entscheidungshilfen

 

„Eine fertige Software kaufen und anpassen oder ein neues System entwickeln lassen?“ Jeder Manager oder Leiter einer IT Abteilung stand bereits vor dieser Frage. Nicht immer lässt Sie sich eindeutig und einfach beantworten.

Zunächst möchte ich einige Kriterien nennen, die dabei helfen können, die oben gestellte Frage zu beantworten. Offensichtlich ist es unerlässlich, die eigenen Prozesse auf Skalierbarkeit und Wachstum zu prüfen. Sind diese aktuell stabil und bewährt, bedeutet das nicht zwangsläufig, dass auch in Zukunft keine Veränderungen an den täglichen Geschäftsabläufen stattfinden. Auch in der Softwareentwicklung gilt: „Veränderung ist die einzige Konstante“. Diese Tatsache sollte in einer soliden Softwarearchitektur berücksichtigt werden und ist maßgebend für die Kosten späterer Erweiterungen.

Bei der Auswahl der Anschaffungsstrategie (individuelle Software oder Standardsoftware) sollten somit immer die zukünftigen Ziele des Unternehmens im Auge behalten werden. Standardsoftware ist zwar in der Anfangsinvestition günstig, dennoch bieten die meist starren Strukturen keine effiziente Erweiterbarkeit. Somit überragen die laufenden Kosten durch Support und Anpassungen auf die Dauer und sind oftmals um ein Vielfaches höher als die eigentlichen Anschaffungskosten. Wird eine individuelle Software von der Konzepterstellung bis hin zur kundennahen Umsetzung exakt nach den Bedürfnissen des Kunden eingeführt, ist die Funktion allen Beteiligten, sowohl den Entwicklern als auch den späteren Nutzern bis ins Detail bekannt. Grundlegende Fragen, die bei Standardsoftware hohe Supportkosten produzieren, fallen somit weg. Die Häufigkeit der Anpassungen einer Individualsoftware wird mit der Exaktheit eines detaillierten Pflichtenheftes erheblich reduziert.

Individuelle Software für individuelle Unternehmen

 

Dass es für einen kleinen Handwerksbetrieb mit standardisierten Abläufen keinen Sinn macht, über die Entwicklung einer Individualsoftware nachzudenken, liegt auf der Hand. Zum einen sprengt es das Budget und zum anderen sind der Wandel und die Flexibilität eines kleinen Unternehmens gerade die Eigenschaften, die es aufrecht erhalten. Werden diese Strukturen durch Software festgesetzt, verliert das Unternehmen an Flexibilität, die nur mit Zusatzkosten durch Anpassungen der Software wieder erkauft werden kann. Meist sind Geschäftsprozesse in diesem Bereich nur sehr gering durch moderne Datenverarbeitung gestützt. Somit ist hier das Hauptfeld auf die eigentliche handwerkliche Tätigkeit verlagert, die sich nicht in Software abbilden lässt. Lediglich die Buchhaltung und die Fakturierung sind in diesem Bereich softwaregestützt. Daher werde ich mich in meinen folgenden Behauptungen hauptsächlich auf Mittelständler und Großunternehmen beziehen.

Die meisten Unternehmen haben ihren Erfolg einem herausragenden Alleinstellungsmerkmal zu verdanken. Diese Alleinstellungsmerkmale sind meist tief in der Unternehmensstruktur verankert und bilden den Kern des täglichen Geschäfts. Die oft nahezu einzigartige Abwicklung der einzelnen Geschäftsprozesse erfährt durch softwaregestützte Prozesse meist eine immens höhere Wirtschaftlichkeit. Nicht selten findet man keine Standardsoftware, die auch nur annähernd die täglichen Prozesse abbildet. Wird für die Unterstützung eine Standardsoftware eingesetzt, die nur die notwendigsten Arbeits- und Kommunikationsschritte beherrscht, entstehen auf Dauer meist mehr Probleme als Hilfe geboten wird. Eine 100 prozentige Integration in das Unternehmen ist durch eine Standardsoftware schlicht und einfach nicht zu gewährleisten, wenn die Kosten überschaubar bleiben sollen. Man erkennt leicht, dass es nicht der Sinn und Zweck einer Softwareanschaffung sein kann, die eigenen Abläufe und Prozesse der Software anzupassen. Das Gegenteil sollte der Fall sein. Die meisten Unternehmen profitieren langfristig deutlich mehr von einer exakt auf sie zugeschnittenen Lösung, die routinierte Geschäftsprozesse sicher und effektiv abbildet und auch dem Benutzer beim Vermeiden von Fehlern behilflich ist. Nichts ist nervenaufreibender und kostenintensiver als eine neue Software, die nur notdürftig angepasst wurde und die Bedürfnisse der täglichen Arbeit nicht abdeckt. Wie bereits erwähnt, steigen hier die Kosten für Support und weitere Anpassungen schnell ins Unermessliche. Hinzu kommen Kosten für Schulungen, da die Benutzeroberfläche von angepasster Standardsoftware nur selten intuitiv zu bedienen ist. Wie soll das auch der Fall sein, wenn diese Softwareprodukte dafür geschaffen wurden, einen möglichst großen Anforderungsbereich abzudecken? Eine verwirrende und zu komplexe Menüstruktur, überladene Masken und lange Klickwege für das Erreichen eines Zieles machen den Alltag mit der neuen Software schwerer als nötig.

Gerade in der aktuellen wirtschaftlichen Situation ist es mehr als notwendig, alle Prozesse im Unternehmen neu zu analysieren, zu bewerten und daraufhin zu optimieren. Optimalerweise werden diese erkannten Optimierungspotentiale direkt in die Businesslogik ihrer Software integriert. Wird diese Optimierung ausschließlich durch eine Umstellung der Mitarbeiter umgesetzt, stellt das eine große Fehlerquelle dar. Diese Fehlerquelle ist bei einer Prozessanpassung in der Software so gut wie ausgeschlossen. Vorausgesetzt die Analyse und die Formulierung der Änderungen (Requirements) wurden präzise erfasst und umgesetzt.

Möglichkeiten der Kosteneinsparung bei der Entwicklung

 

Je flexibler und passgenauer eine individuelle Software sein soll, desto höher sind auch die damit verbundenen Anschaffungskosten. Ebenso ist die Qualität der Software für die Wirtschaftlichkeit und die Folgekosten für Anpassungen und Wartung maßgebend. Diese Eigenschaft der Software erreicht man allerdings nur dann, wenn man die eigenen Prozesse, die in der Software abgebildet werden sollen, genau analysiert und für den/die Entwickler formuliert. Nur wenn sich beide Parteien, sowohl Kunde als auch das Entwicklerteam, über die Anforderungen einig sind, ist der Grundstein für ein erfolgreiches Projekt gelegt. Oftmals scheitern Individualprojekte schon in diesem ersten Schritt. Tragischerweise wird der Fehler meist erst in den späten Entwicklungsphasen erkannt, was Geld und Zeit kostet um zum einen die fehlenden Anforderungen zu ergänzen und zum anderen die Software umzugestalten damit sie den neuen Anforderungen gerecht wird. Das Requirementsmanagement führt nur dann zum Erfolg, wenn mit Erfahrungen der Vergangenheit und der Gegenwart auch Rückschlüsse auf die Zukunft zugelassen werden. Dann ist das Team mit einer agilen Entwicklungsstruktur in der Lage, genau das zu entwickeln was Ihrem Unternehmen weiterhilft, sowohl jetzt als auch in Zukunft. Sind die Prozesse analysiert und schriftlich festgehalten, muss eine gemeinsame Sprache gefunden werden, die sowohl das Entwicklerteam als auch der Kunde spricht. Kommunikationsfehler sind in dieser Phase mit einem fehlerhaften Requirementsmanagement gleichzusetzen und führen zu den gleichen schwerwiegenden Fehlern in späteren Entwicklungsphasen.

Ein bewährtes Mittel, diese frühen Fehler festzustellen und zu vermeiden ist das Prototyping. Hier wird nach dem Aufstellen der Anforderungen an die Software eine „Vorabversion“ entwickelt. Als Produkt dieser Phase entsteht ein Prototyp, der die einzelnen Funktionen umreisst und die Masken bereits enthält, wie Sie auch im späteren Workflow wiederzufinden sind. Der Kunde bekommt so bereits in der frühen Entwicklungsphase das Äußere seines Produktes, mit dem er letztendlich arbeitet, zu sehen. Der erste Eindruck sagt meist mehr als ein komplettes Pflichtenheft. Der Prototyp hilft auch, weitere Anforderungen zu finden, die dem Kunden bisher noch nicht bewusst waren. In einer ersten Begegnung mit der neuen Software kommen meist weitere Ideen, die den Erfolg des Projektes unterstützen können. In diesem frühen Entwicklungsstatus ist es weitaus einfacher und kostengünstiger, neue Anforderungen zu ergänzen als zum Ende der Entwicklung. Durch agile Strukturen (Designpattern, Dokumentation, Versionsverwaltung) hat der Kunde bereits zum Anfang der Entwicklung einen Überblick über das Produkt und kann den aktuellen Status einschätzen und beurteilen. Fühlt sich der Kunde im Umgang mit dem Prototyp sicher und unterstützt, befindet sich der Entwicklungsprozess auf dem richtigen Weg zu einem erfolgreichen Projekt. Stellen Sie sich im Gegenzug vor, Ihre Software wird ein ganzes Jahr lang nach einem unwissentlich lückenhaften Pflichtenheft entwickelt. Nach einem Jahr bekommen Sie dann Ihre Software das erste Mal zum Test und stellen fest, dass sie nicht Ihren Anforderungen entspricht. Es gibt kaum einen ungünstigeren Zeitpunkt, neue Ideen und Änderungswünsche einzubringen. Doch was wollen Sie mit einer Software in Ihrem Unternehmen erreichen, die nicht wirklich das tut, was Sie sich eigentlich erhofft haben? Hier kommen dann die gleichen Probleme zu Tage, die mit einer Standardsoftware einhergehen. Das Projekt sprengt das Budget oder ist gänzlich zum Scheitern verurteilt. Das Ziel wurde somit klar verfehlt, die Entwicklungsarbeiten decken die Anforderungen an das Endprodukt nicht ab.

Orientiert sich das Entwicklerteam an agilen Strukturen, die eine ständige Anpassung der Software an sich ändernde Anforderungen erlaubt, bleibt das Projekt zu jeder Zeit flexibel. Ist den Entwicklern bereits im Voraus eine Perspektive für eventuelle zukünftige Erweiterungen gegeben, können auch hier vorhandene Technologien eingeplant und verwendet werden, die die Kosten drastisch senken. Der Einsatz von Open-Source Software ist heute weit verbreitet und spart in vielen Bereichen (GUI-Entwicklung, Datenbankabstraktion etc.) Zeit und Geld. Bei Webanwendungen ist hier jedoch besonders auf Wartung und Updates der freien Softwarekomponenten zu achten, da mit jedem Release Bugs behoben und vorhandene Sicherheitslücken geschlossenwerden. Diese Updates müssen natürlich nach jeder Installation auf Systemintegrität geprüft werden, was laufende Kosten mit sich bringt, die jedoch im Vergleich zum Gesamtumfang des Projekts meist verschwindend gering ausfallen. Der Nutzen, den man durch die Integration von Open-Source Software erhält überwiegt meist deutlich. Auch hier gilt der alt bewährte Vorsatz: „Warum das Rad jedes Mal neu erfinden?“.

Um das Projekt zum Erfolg zu bringen sollte allen Beteiligten stets das Ziel bewusst sein: Dem Kunden eine Software liefern, die ihn und sein Unternehmen unterstützt, die nachhaltig wirtschaftlich eingesetzt und erweitert werden kann und auch in Zukunft Vorteile verschafft, die eine Abgrenzung von der Konkurrenz am Markt durch schnellere und qualitativ hochwertigere Prozesse und Produkte fördert.

Verbessern, integrieren, kommunizieren – Möglichkeiten jetzt und in Zukunft

 

Nicht immer trifft man die richtige Entscheidung zum richtigen Zeitpunkt. Selten steht einem Unternehmen schon bei der Gründung und während der Expansion die passende Software zur Verfügung. Meist sind die Prozesse noch nicht ausgereift und das Budget für individuelle Lösungen sehr beschränkt. So sind gerade junge Unternehmen meist “gezwungen” sich auf Standardsoftware einzulassen und die kostengünstigsten Produkte einzusetzen. Bekanntlich zählt in den “frühen Tagen” jeder Cent. Mit dem Wachstum werden die Prozesse feiner und reifer und zugleich nimmt die täglich zu verarbeitende Datenmenge zu. Software die ursprünglich kostengünstig angeschafft wurde muss nun teuer erweitert werden. Bekanntlich wird mit Support und individuellen Anpassungen von Standardsoftware in der IT-Branche der meiste Umsatz erzielt. Somit entartet die immer wieder angepasste erste Softwarelösung zu einem “Geschwür” aus teuer und mühselig integrierten Funktionen, denn nicht alle “Out of the Box” Produkte sind auch für spätere Erweiterungen (Plugins) vorgesehen. Allerdings will man sich als Dienstleister diesen Umsatzbringer nicht entgehen lassen und “missbraucht” das eigene Produkt für Dinge, für die es einfach nicht geschaffen ist. Damit ist der Unternehmensexpansion zumindest in Bezug auf die softwaregestützte Prozessabwicklung eine Grenze gesetzt. Doch wer kann die Zukunft eines frisch gestarteten Unternehmens vorhersehen? Niemand!

Das soeben beschrieben Szenario ist also keine Seltenheit. Nun stelle man sich vor, das Unternehmen sei bis zu einer bestimmten Größe gewachsen. Es gibt bereits mehrere Standorte mit eigenen Netzwerken, Datenbeständen, zur Produktion eingesetzte Maschinen und mehreren Softwareprodukten, die einzelne, bisher von einander trennbare Teilprozesse abbilden und unterstützen (Legacy-Komponenten). Die genannten Komponenten sollen kombiniert werden um den Gesamtprozess transparenter zu gestalten und eine komplette Überwachung der gesamten Unternehmensstruktur durch die Führungsschicht zuzulassen. Es scheint als stehe man vor einem Problem, das entweder gar nicht oder nur mit Kosten lösbar ist, die das Unternehmen nicht tragen kann.

Sollen diese Legacy-Komponenten miteinander verbunden werden, sind Schnittstellen erforderlich. Komponenten die diese Schnittstellen implementieren, können über vorhandene Netzwerke (LAN, Internet etc.) miteinander kommunizieren und den modularen Datenaustausch ermöglichen. Außerdem wäre es möglich, bereits vorhanden Software durch Software-Wrapper als Submodule in eine völlig neue Software zu integrieren. Der Vorteil liegt auf der Hand: Zum einen bleibt die Menüführung der einzelnen verarbeiteten Module nahezu identisch (die Gewohnheit spielt im Umgang mit Software eine große Rolle) und zum anderen können Datenbestände, die über viele Jahre angesammelt wurden, beibehalten und weiterverwendet werden. So können einzelne, früher eigenständige Softwaremodule mit weitaus geringeren Aufwand zu einer einzigen individuellen Lösung verbunden werden, als wenn man hier das “Rad neu erfindet”. Die unabdingbare Voraussetzung ist hier, dass die Schnittstellen der einzelnen eigenständigen Softwarekomponenten vorhanden und ausreichend dokumentiert sind. Ist das nicht der Fall, ist keine intermodulare Kommunikation möglich. Mit dieser Komponententechnologie lassen sich selbst Produktionsmaschinen an das neue System anbinden. Durch individuelle Hardwaremodule werden Schnittstellen von Maschinen zur Software geschaffen, die auch hier einen Austausch von Daten über Netzwerke (UMTS, GSM, Internet) ermöglichen. Die Software wird zum Kontrollinstrument des gesamten Unternehmens. Alle Prozesse sind live kontrollierbar und einzelne Teilmodule erlauben es, Steuerparameter zur Laufzeit zu beeinflussen. Durch die Integration einer Weboberfläche, die ausschließlich durch einen Browser dargestellt wird, kann ein standortunabhängiger Zugriff auf aktuelle Reports und eine zentrale Wartbarkeit ermöglicht werden. Produktions- und Unternehmenszahlen sind dann rund um die Uhr, jeden Tag und an jedem Ort, der über eine Internetverbindung verfügt, erreichbar. Denkt man ein paar Jahre voraus, kann man sich nahezu keine Umgebung mehr vorstellen, an der kein mobiles Internet vorhanden ist. GSM, EDGE und UMTS machen es möglich, von jedem Standort auf Unternehmensdaten zuzugreifen. In naher Zukunft wird dies wohl vorzugsweise mit mobilen Endgeräten (Smartphones, IPhone etc.) geschehen. Das Mobile Büro ist immer und überall verfügbar.

Zur Zeit helfen uns jedoch nur teilweise standardisierte Schnittstellen bei der Umsetzung dieses beschrieben Kontrollinstrumentes. Teure “Workarrounds” werden heute noch zu häufig eingesetzt als dass man von der Existenz einer Komponentensoftware sprechen könnte. XML, RPC, SOAP und weitere Schnittstellenprotokolle sind nur bedingt für das Erreichen der oben genannten Ziele nützlich. Außerdem werden diese Protokolle noch zu selten in kommerziellen “Allround Lösungen” eingesetzt, als dass man von einem Standard sprechen könnte. Erhebliche Kosten lassen sich vermeiden, wenn es gelingt günstige Standardsoftware für universelle Aufgaben mit Individualsoftware als Unterstützung und Erweiterung für spezialisierte Aufgaben zu kombinieren. Ein Austauschen von Komponenten untereinander wäre ebenfalls wünschenswert. In der Autoindustrie findet diese Komponentenphilosophie bereits in standardisierter Art und Weise ihre Anwendung. Oftmals ist bei diesem Verfahren auch von Produktlinien die Rede. Warum soll das in Zukunft nicht auch in der, noch in den Kinderschuhen steckenden, Disziplin der Softwareentwicklung möglich sein? Die Komponentenforschung leistet auf diesem Gebiet bereits ihr Mögliches.

Zusammenfassung und Ausblick

 

Wer die Ziele und Prozesse seines Unternehmens kennt oder diese ausreichend analysiert, bei der Bewertung Erfahrungen der Vergangenheit und der Gegenwart reflektiert und einfließen lässt, ist mit der Abbildung der täglichen Geschäftsprozesse in einer individuellen Software auf dem richtigen Weg. Ausfallsicherheit, Zuverlässigkeit und sehr geringe Fehlerquoten sprechen für das Konzentrieren der Businesslogic in einer maßgeschneiderte Software. Der Aufwand lohnt sich allerdings nur dann, wenn das Unternehmen bereits über eine gewisse Prozessstruktur verfügt und diese auch dem beauftragten Entwicklerteam vermitteln kann. Die meisten Projekte scheitern bereits in der Anforderungsanalyse wegen mangelnder Kommunikation oder einfach aus Unkenntnis über das eigene Vorhaben. Diese gravierenden Fehler werden leider oft erst in den späten Entwicklungsphasen bemerkt. Dadurch kommen hohe Kosten und weitaus mehr Zeitaufwand auf beide Parteien zu als ursprünglich geplant.

Wer frühzeitig den Grundstein für den Einsatz individueller Software im Unternehmen legt, wird später davon profitieren. Mehr Kontrolle, größere Erreichbarkeit, durchsichtigere Prozesse und weitaus wirtschaftlicheres Arbeiten werdenmit einem agilen Entwicklungsprozess auf Dauer erreicht. Wichtig ist vor allem, dass eine Budgetbegrenzung nicht zu Lasten der Skalierbarkeit und der Wartbarkeit stattfindet. Wer versucht, Geld auf Kosten der Softwarearchitektur zu sparen, befindet sich mit größter Wahrscheinlichkeit auf dem falschen Weg. Eine solide und flexible Basis ist für zukünftige Erweiterungen und Anpassungen unerlässlich. Soll die Softwarestruktur mit dem Unternehmen wachsen, sollte man lieber den einen oder anderen Euro mehr in eine vernünftige und präzise Planung investieren, als später festzustellen, dass die Software gar nicht für Erweiterungen geeignet ist. Diese Analysefehler kommen umso schlimmer zum Tragen, wenn man erkennt, dass sie durch mehr Sorgfalt, Geduld und Weitblick hätten vermieden werden können.

Anmerkung: Dieser Artikel wurde für IT-Daily.net verfasst und ist dort auch zum Download als PDF oder als Flash verfügbar.

Ein sehr interessanter Artikel. Eine individuelle Lösung ist für die meisten Firmen sicher der richtige Weg!

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
CAPTCHA
Diese Frage hat den Zweck zu testen, ob Sie ein menschlicher Benutzer sind und um automatisierten Spam vorzubeugen.
So finden Sie uns