Software lässt sich in verschiedene Arten unterteilen. Beispielsweise gibt es paketierte-, embedded-, open source-, individual- und unternehmens-Software. Je nachdem was mach entwickelt, muss man unterschiedliche Strategien anwenden. Diese sind in dem Beitrag erwähnt.
1. yuhiro.de http://www.yuhiro.de/6-verschiedene-arten-von-software/
Sascha Thattil
6 verschiedene Arten von Software
Inspieriert von Joel Spolsky’s Five Worlds
Viele Unternehmen erstellen Software (in diesem Beitrag auch Computer Programm oder IT
System genannt). Es ist jedoch wichtig zu wissen, um welche Art von Software es sich handelt.
Denn je nach dem unterscheidet sich auch der Ansatz mit welchem man an die
Programmierung herangeht. Bei manchen spielt das Endgerät (Endgerät: zum Beispiel,
Desktop, Smartphone, etc.) keine grosse Rolle, da es in manchen Fällen immer die selbe ist,
wie zum Beispiel bei Embedded Software (mehr dazu im Beitrag). In manchen Fällen spielen
die Endgeräte wiederum eine grosse Rolle, wie zum Beispiel bei paketierten IT Systemen.
Nicht nur bei den Endgeräten, also die Hardware auf dem das Programm läuft, ändern sich die
Anforderungen je nach der zu entwickelnden Software. Andere Parameter wie Budget, zeitliche
Umsetzung, Geschwindigkeitsanforderung und noch einige mehr ändern sich zudem auch.
Im Folgenden die unterschiedlichen Arten von IT Programmen:
1) Paketierte Software
1/5
2. Paketierte Software ist den meisten bekannt.
Microsoft Windows oder Microsoft Office sind
passende Beispiele.
Das Besondere bei dieser Form von Programmen
ist, dass diese bereits fertig geliefert sind und
nicht mehr für den Kunden spezifisch angepasst
werden. Alle Anwender bekommen das Gleiche.
Lediglich einige Einstellungen können verändert
werden.
Die Herausfoderungen bei der Programmierung
ist hier, dass diese Computer Programme auf
unterschiedlichsten Rechnern mit
unterschiedlichsten Konfigurationen installiert
werden. Beispielsweise könnte das Programm
unterschiedlich auf Intel Prozessoren reagieren,
als es zum Beispiel auf AMD Prozessoren tun
würde.
Dies macht es notwendig, das IT System durchgängig zu testen. Gleichzeitig ist es nicht so
schlimm eine erste Version 1.0 herauszubringen, welche noch Fehler (im Computer Jargon
“Bugs” genannt) enthalten. In der nächsten Version kann man dann die von den Nutzern und
dem eigenen Team gefunden Fehler beheben.
Das beste Beispiel ist auch hierfür Microsoft Windows. Bei fast jedem Neustart des Programms
werden neue Updates eingespielt. Dabei handelt es sich in den meisten Fällen um
Fehlerbehebungen, welche die Nutzer oder das eigene Testteam gefunden haben. Nur zu
einem geringen Umfang handelt es sich um neue Funktionen die eingespielt werden.
2) Open Source
Bei Open Source handelt es sich um Software, welche kostenfrei bereitgestellt wird. Dieses
System wird von einer Gemeinschaft an Entwicklern betrieben und weiterentwickelt, welche
hierfür üblicherweise keine Remuneration nehmen.
Ein gutes Beispiel hierfür ist PHP. Es gibt hier eine grosse Gemeinschaft, welche diese
Programmierung kostenfrei bereitstellt. PHP kann wiederum genutzt werden, um
Webapplikationen zu schreiben. Hierfür könnte ein PHP Entwickler wiederum ein Entgelt
2/5
3. nehmen.
Die verschiedenen, bereits programmierten, Komponenten helfen dabei, Applikationen
schneller zu entwickeln.
Die grosse Herausforderung bei solchen Systemen ist, dass die Programmierer die gemeinsam
daran arbeiten, sehr weit verstreut auf der Welt sind. Dies führt dazu, dass diese Systeme, oder
zumindest deren Komponenten, nicht immer so gut durchgedacht sind, wie das bei anderen
Systemen der Fall ist, wo sich Programmierer direkt in einer Gruppe vor Ort absprechen.
3) Unternehmens-/ Berater-Software
Unternehmens- / Beratungs-Software fällt zum Teil auch in den Bereich paketierte IT Systeme.
Hierbei werden bereits paketierte Programme an Unternehmen angepasst. Die Berater oder die
Beratungshäuser, die diese Anpassungen vornehmen, nehmen meistens mehrere Hundert Euro
pro Stunde. Sicherlich auch deswegen, weil diese eine hohe Spezialisierung in ihrem Gebiet
haben. Ein Beispiel hierfür wäre ein Beratungshaus, welches SAP in einer Grossbank
implementiert. Wobei SAP eine zum Grossteil bereits fertig geschriebene Software ist.
4) Individual-/ Interne Software
Unternehmen haben in manchen Fällen so ausgefallene Wünsche oder Anforderungen, dass
Applikationen nur für diese geschrieben werden.
Ein Beispiel hierfür wäre eine spezielle Applikation für ein Unternehmen welches Motoren
herstellt und deren Geräuschpegel auf den kleinsten Dezibel herausfinden muss. Hierfür lassen
sich höchstwahrscheinlich keine paketierten Systeme oder Open Source Module finden.
Der grosse Vorteil bei der Entwicklung von solchen Systemen ist, dass man Annahmen darüber
machen kann, welche Hardware genutzt wird, sowie auch die generelle technische Umgebung.
Man weiss zum Beispiel, dass im Unternehmen eine bestimmte Version des Internet Explorers
genutzt wird und nur eine bestimmte Anzahl von unterschiedlichen Rechner-Systemen.
Dementsprechend kann man gezielt für diese Umgebung entwickeln.
5) Embedded
3/5
4. Bei Embedded Software handelt es sich um Technik, welche in einer speziellen Hardware
eingespielt wird und später nicht mehr verändert wird.
Bei der Entwicklung muss man extremst aufpassen, denn die Lösung welche schlussendlich in
die Hardware eingespielt wird, darf keine Fehler mehr enthalten. Denn man kann meistens
keine Updates darauf einspielen. Ein Beispiel wäre hierfür eine Software welche in ein Auto
implementiert wird. Hier kann man dann keine Änderungen mehr vornehmen, sobald es
verkauft ist. Im schlimmsten Fall können Programmierfehler zu Rückrufaktionen von diesen
Autos führen.
Bei paketierten Systemen ist das wiederum nicht so schlimm, da, wie bereits erwähnt, einfach
eine weitere Version, mit den Fehlerbehebungen, an die Kunden, entweder unentgeltlich oder
gegen Bezahlung, weitergegeben wird.
6) Cloud-basiert
Cloud-basierte Lösungen werden immer wichtiger im Unternehmensbereich. Früher mussten IT
Systeme noch aufwändig intern von IT Abteilungen gewartet werden. Heute läuft alles im
Hintergrund ab und wird von den Cloud-Lösungsanbietern gewartet.
Bei solcher Software, kann der Anbieter, wie bei paketierten Systemen auch darauf setzen,
dass Version 1.0 nicht perfekt sein muss. Er kann noch viel schneller neue Versionen einspielen
und relativ zeitgleich auf Kundenfeedback eingehen.
Bei der Programmierung dieser Systeme müssen besonders auf Bereiche, wie Sicherheit,
Offline-Nutzung und weitere ein Fokus gegeben werden.
Fazit
Wenn man verstanden hat, dass es unterschiedliche IT Systeme gibt und diese
unterschiedliche Anforderungen haben, dann wird man den Prozess der Entwicklung auch
4/5
5. anders angehen. Ein Cloud-basierter Anbieter kann viel entspannter auf die erste Version der
Lösung schauen und diese veröffentlichen, als dies zum Beispiel ein Embedded System
Anbieter tun könnte.
Wer auf kleine Preise setzen will, sollte paketierte Software programmieren, da sich die
Entwicklungskosten leichter auf eine Vielzahl von Nutzern verteilen lässt.
Wer Grossunternehmen anspricht, kann sich auf Unternehmenssoftware spezialisieren, welche
auf die speziellen Bedürfnisse des Kunden angepasst werden. Eine SAP Implementierung kann
Beispielsweise mehrere Millionen Euro kosten.
Anbieter welche schnell auf Kundenwünsche reagieren wollen und können, sollten auf Cloud-
Lösungen setzen, welche sich schnell abändern lassen.
Es lassen sich noch viele weitere Schlüsse ziehen, sobald man weiss, welche Art von Software
man anbieten will.
Gleichzeitig sollte man auch erwähnen das sich die IT Landschaft extrem schnell verändert.
Grossunternehmen setzen vermehrt auf eine Cloud-Strategie und daher vermischen sich die
Arten der IT Systeme in der Zukunft immer mehr.
Welche Erfahrungen haben Sie gemacht?
Bilder: Flickr.com/ Dineen/ Cote/ Farr/ Rodriguez/ Bruce
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.
Artikel teilen
5/5