Blog

Software-Fehler minimieren

Software-Fehler minimieren will jeder. Nicht jeder Fehler hat die gleichen Auswirkungen auf Kosten und Termine. Ein wichtiger Faktor ist, in welcher Entwicklungsphase der Software-Fehler gefunden wird. Im Grundsatz gilt: Je früher ein Fehler gefunden wird, desto einfacher und günstiger ist dessen Behebung.

Der Teufel im Detail
Der Teufel im Detail

Software-Fehler: V-Modell

Am Beispiel des V-Modells wird klar:  Erkennen Sie einen Fehler während der Systemanforderungsanalyse, hat dies meist keine weitreichenden Konsequenzen. Es braucht Denkarbeit, die Fehlerbehebung geschieht auf Papier. Der Aufwand beträgt einige Stunden.

V-Modell
V-Modell

Ein Software-Fehler bei der Abnahme kann fatal sein. Erfüllen Sie beispielsweise die Anforderungen an die Performance (Antwortzeiten) nicht, sind folgende Schritte nötig:

  • Überarbeitung System-Architektur, System-Entwurf, Software-Architektur
  • Überarbeitung Software-Entwurf (Code anpassen)
  • Durchführen der Tests auf allen Stufen

Projektverzögerung durch Software-Fehler

Ein solcher Software-Fehler kann eine Projekt-Verzögerung von Wochen oder gar Monaten verursachen. Das hat fatale Folgen. Darum lohnt es sich, während den sogenannten Papier-Phasen des Projektes Reviews durchzuführen. Die zusätzliche Zeit, die Sie aufwenden, ist optimal investiert. Dadurch können Sie teure Fehler in späteren Phasen minimieren.

Falls Sie die kritischen Faktoren erst gegen Ende der Entwicklung prüfen können, stellt dies ein erhebliches Risiko dar. Ziel ist es, die kritischen Faktoren möglichst früh zu verifizieren. Dazu gibt es folgende Möglichkeiten:

  • Verwenden Sie ein anderes Entwicklungsmodell (z.B. Scrum). Dies funktioniert nicht von heute auf morgen, da in ihrem Unternehmen das entsprechende Wissen vorhanden sein muss.
  • Realisieren Sie einen Prototyp, der vergleichbar mit der realen Anwendung ist. Dies führt in der Regel zu Mehraufwand.
  • Teilverifizierung in frühen Testphasen (z.B. Integrationstest). Der Mehraufwand ist gering. Sie können nicht das ganze System prüfen.
Software-Fehler minimieren
Software Fehler

Optimale Software-Entwicklung

Für die optimale Software-Entwicklung sind folgende Schritte nötig:

 

  • Frühzeitiger Einbezug der relevanten Personen (je nach Phase verschieden)
  • Durchführung von Reviews
  • Analyse der möglichen Risiken
  • Minimierung gewisser Risiken: nicht jedes Risiko muss minimiert werden, ein Risiko kann bewusst in Kauf genommen werden.

Auf diese Weise können grobe Fehler zwar nicht verhindert, aber grösstenteils minimiert werden.

Weiterführende Links:

Scrum: http://de.wikipedia.org/wiki/Scrum

Review: http://de.wikipedia.org/wiki/Review_(Softwaretest)

Von der Geschäftsidee zur IT-Umsetzung (2)

Anforderungen

Die Anforderungen der Geschäftsidee an die technische Umsetzung sind wie folgt:

  • Unterstützung verschiedener Werbebotschaften (Video, Bild, Dokument, Live Feed)
  • Erstellung einfacher Werbebotschaften anhand von Vorlagen (Templates)
  • Zugriff auf das Verwaltungstool von überall her und mobilefähig (d.h. auch via Smartphone und/oder Tablet)
  • Unterstützung der gängigsten Videoformate
  • Die Geräte können auch offline betrieben werden, d.h. es braucht keine permanente Internetverbindung
  • Kostengünstig und einfache Installation beim Endkunden

Architektur Video VerwaltungAufbau

Daraus resultiert folgender Aufbau der Video Verwaltungs Software:

  • Web-basierte Anwendung fürs Hochladen und Verwalten der Werbebotschaften
  • Erstellung einfacher Bilder mit Texten aus Vorlagen
  • Gruppierung der Werbebotschaften in Playlisten
  • Individuelle Zuordnung einer Playliste zu einem Gerät

SpotApp

  • Ist ein App, welches auf einem Android-Tablet oder einer TV-Box läuft
  • Holt sich periodisch die neusten Werbebotschaften, welche für dieses Gerät bestimmt sind und speichert diese auf dem Tablet (dadurch Offline-Betrieb möglich).
  • Kann selber eine neue Version installieren (automatisches Update)

Installation

  • Die Geräte (TV, Beamer) brauchen einen HDMI-Anschluss
  • Das Android-Tablet wird via HDMI-Kabel mit dem Gerät verbunden und muss permanent am Strom sein

Die SpotApp erkennt automatisch, ob ein Gerät angeschlossen ist. Ist dies nicht der Fall, werden die Werbebotschaften auf dem Tablet im Vollbildmodus abgespielt. Als Beispiel kann ein 10“-Tablet in einem Warenregal platziert werden. Die SpotApp läuft auch auf iOS. So können die Werbebotschaften auf dem iPad (Mini) oder iPhone gezeigt werden.

Von der Geschäftsidee zur IT-Umsetzung (1)

Ausgangslage

Am Anfang steht die Geschäftsidee auf einem einzigen Blatt Papier – am Ende resultiert eine IT-Lösung, welche weltweit eingesetzt werden kann. Dieses schwierige Unterfangen wird im Folgenden am Beispiel von Spotsonscreen beschrieben. Eine erfolgreiche Zusammenarbeit zwischen zwei KMUs: Spotsonscreen hat eine neue Geschäftsidee, Hyperformers ist verantwortlich für die IT-Umsetzung.

Geschäftsidee

Die Geschäftsidee ist einfach: Werbebotschaften können selber zusammenstellt und auf beliebigen Geräten (TV, Beamer, Tablet) abgespielt werden. Die Werbebotschaften können nach Warengruppen (Rayon) und Filialen klassiert und mit ein paar wenigen Klicks auf die Geräte verteilt werden. Eine permanente Internetverbidnung braucht es nicht.
Spotsonscreen hat umfangreiche Marktabklärungen in der Schweiz und im angrenzenden Ausland gemacht. Es bestehen bereits Kontakte zu möglichen Kunden. Höchste Zeit, mit der IT-Umsetzung zu starten. Als Erstes erarbeitet Hyperformers ein Konzept mit verschiedenen Varianten, wie dieses System aussehen kann. Es braucht ein benutzerfreundliches Verwaltungstool, um die Werbebotschaften hochzuladen und anschliessend auf die Geräte zu verteilen. Es braucht Geräte, welche mit dem Verwaltungstool kommunizieren und die richtigen Videos herunterladen können. Dies bedingt, dass es klar definierte Schnittstellen zwischen der Videoverwaltung und den Geräten braucht.

Storyboard

Der Auftraggeber kann mit technischen Begriffen nicht viel anfangen. Deshalb ist es wichtig, möglichst schnell mit dem Entwurf der Benutzeroberfläche zu beginnen. Eine einfache Möglichkeit besteht darin, ein sog. Storyboard zu erstellen: Verschiedenen Screens werden miteinander verlinkt und der Auftraggeber kann durch die einzelnen Screens navigieren. Damit werden zwei Fliegen auf einen Schlag erwischt:

  • Hyperformers muss die Geschäftsidee verstehen und sich Gedanken zur Umsetzung machen
  • Der Kunde kann verifizieren, ob seine Idee richtig verstanden wurde und vollständig ist
Endgerät Screen
Visualisierung

Beispiel Storyboard: Screen zur Generierung von Reports

Dies ist ein iterativer Prozess. Entscheidend ist, dass die Geschäftsidee von verschiedenen Perspektiven (Auftraggeber, IT, mögliche Kunden) betrachtet wird. So werden alle Aspekte abgedeckt. Eine kritische Haltung aller Beteiligten ist unerlässlich. Dies setzt gegenseitiges Vertrauen voraus. Es geht darum, die Geschäftsidee weiter zu entwickeln, damit sie effizient umgesetzt werden kann.

Am Beispiel Spotsonscreen ist dies gelungen. Nach diversen Besprechungen und zwei Reviews ist sichergestellt, dass:

  • Hyperformers die Anforderungen verstanden hat
  • Das Storyboard korrekt ist
  • Das technische Konzept umgesetzt werden kann
  • Die Umsetzung etappiert wird, damit möglichst schnell verkauft werden kann

Weiterführende Links:

Im nächsten Blog wird die technische Umsetzung beschrieben.

IT im KMU – top oder flop?

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 frühzeitig vermeiden

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.“