Gestern ein neuer Release einer Anwendung, heute funktioniert nichts – diese Erfahrung haben wohl schon viele gemacht – und die IT am liebsten in die Wüste geschickt. Die IT als Kostenfaktor und undurchsichtiges Gebilde? Fehler können nicht vermieden, aber minimiert werden. Voraussetzung ist ein Team aus Fachleuten – IT-Spezialisten, IT-Generalisten und Business-Verantwortlichen, das mitdenkt, interdisziplinär arbeitet und über den eigenen Tellerrand blickt.
Es ist unbestritten, dass ohne IT nichts mehr läuft und die IT (eine Menge) Geld kostet. Durch die rasante Entwicklung (Stichwort Mobile Geräte) wird es immer schwieriger, den Überblick zu behalten. Grundlegend ist die Kenntnis über den Lebenszyklus einer Anwendung.
Lebenszyklus einer Anwendung
- Wirtschaftlichkeitsbetrachtung: Was soll die Anwendung tun, welches sind die Hauptfunktionalitäten? Was darf die Anwendung kosten? Daraus werden die einzelnen Anwendungsfälle (Use Cases) abgeleitet.
- Anforderungsdefinition: Welches sind die Anforderungen an die Anwendung aus Sicht der IT? Ein wesentlicher Schritt ist das ‘Übersetzen’ resp. Transformieren der Business-Anforderungen in IT-Anforderungen. Häufig können aus Kostengründen nicht alle Anforderungen gleichzeitig umgesetzt werden und müssen priorisiert werden.
- Design: Damit die Anwendung längerfristig rentiert und betrieben werden kann, wird sie in einzelne Bauteile (Komponenten) zerlegt. Die Flexibilität zur Erweiterung der existierenden Bauteile sowie zur Entwicklung neuer Bauteile muss vorhanden sein. Zudem werden die eingesetzten Technologien und Programmiersprachen festgelegt sowie die Schnittstellen definiert. Mit grosser Wahrscheinlichkeit werden für gewisse Funktionalitäten Fremdkomponenten eingesetzt (das Rad muss nicht neu erfunden werden).
- Entwicklung: Anhand der Design-Vorgaben wird die Anwendung entwickelt.
- Test: Zuerst werden die einzelnen Komponenten und Subkomponenten separat getestet. Danach erfolgt der Test auf Anwendungs-Ebene, d.h. es werden die Use Cases aus der Wirtschaftlichkeitsbetrachtung verifiziert.
- Bereitstellung (Einführung oder Update): Nach erfolgreichen Tests wird die Anwendung bereitgestellt (erstmalige Einführung oder Update).
Je nach Grösse des KMU’s können einzelne Phasen ausgelagert werden (outsourcing). Die Wirtschaftlichkeitsbetrachtung sowie der Test der Anwendung sollten inhouse gemacht werden: das KMU muss selbst definieren, was die Anwendung tun soll – und dies auch verifizieren.
Fehler und Fehlerquellen
Fehlerquellen gibt es innerhalb sowie beim Übergang zwischen den einzelnen Phasen. Fehler in den einzelnen Phasen haben unterschiedliche Konsequenzen. Wenn z.B. die Anforderungen falsch oder unvollständig sind, kann das erhebliche Schwierigkeiten zur Folge haben. Wird dies erst in der Testphase bemerkt, muss möglicherweise die gesamte Anwendung umgebaut werden – ein enormer Aufwand mit entsprechenden Kosten. Ein Fehler in der Entwicklung hat meist keinen grösseren Einfluss auf die gesamte Anwendung; vorausgesetzt, das Design ist korrekt.
Zusammenarbeit und Kommunikation
Bei einer Zusammenarbeit mit einem externen Partner ist es wichtig, dass beide Seiten die gleiche Sprache sprechen. Der externe Partner muss genau verstehen, was die Anwendung tun soll. Auf Seite KMU muss jemand das nötige technische Wissen haben, um mit dem externen Partner diskutieren zu können.
Für ein KMU ist es unumgänglich, mindestens einen IT-Generalisten zu haben, der den Lebenszyklus einer Anwendung versteht und mit einem externen Partner zusammen arbeiten kann. Wird die Entwicklung inhouse gemacht, braucht es erfahrene Entwickler, die mitdenken. Es ist nicht möglich, die Vorgaben so genau zu beschreiben, dass kein Interpretationsspielraum besteht.
Um unangenehme Situationen, wie eingangs beschrieben, zu vermeiden, ist es wichtig, dass jedes Teammitglied die Bedürfnisse der anderen versteht. Kommunikation untereinander ist vielfach wichtiger als die verwendeten Technologien.
Zitat Michael Anton: „Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben.“