Qualität bei Software messen

Wer kennt das nicht? Es wurde die Entwicklung einer Software in Auftrag gegeben. Bei der Übergabe ist das Produkt nicht so, wie Sie Anforderung definierten. Da kann im Vorfeld einiges getan werden, damit die unerwünschten Ergebnisse ausbleiben.

Die Produktbeschreibung im Lastenheft

Der erste Schritt ist eine ausreichende Beschreibung des Produkts oder der Dienstleistung in einem Lastenheft. Dieses Lastenheft enthält auch eine Abgrenzung. In der steht, was nicht zum Umfang der Entwicklung gehört. Das Lastenheft wird bei der Angebotsanforderung an potentielle Auftragnehmer weitergereicht.

Die lieferbare Leistung im Pflichtenheft

Es ist die Basis für das Pflichtenheft. Dort beschreibt ein möglicher Auftraggnehmer den Rahmen seines Angebotes. Es steht dort geschrieben, was der potentielle Auftragnehmer umsetzen kann und was nicht. Es ist ein Teil der Basisinformationen zur Entscheidungsfindung. Denn mit dem Pflichtenheft erfolgt die Entscheidung, wer den Auftrag erhält. Zudem sind Lastenheft und Pflichtenheft ein wichtiger Bestandteil der abschliesenden Abnahme des Produkts oder der Dienstleistung.

Der Soll-Ist Vergleich zur Ermittlung der Qualität

Der ausgewählte Auftragnehmer entwickelt nun die Software oder Dienstleistung. Dabei ist zu beachten, dass es sogenannte verdeckte Arbeiten geben kann. Diese lassen sich nur innerhalb eines bestimmten Zeitraumes prüfen. Diese verdeckten Arbeiten sind im Vorfeld zu ermitteln und rechtzeitig gesondert zu kontrollieren.

Mit Hilfe des Lastenhefts, des Pflichtenhefts und der Dokumentation kann am Ende des Projekts die Abnahme durch den Auftragnehmer erfolgen. Da in der genannten Dokumentation alle erforderlichen Daten vorhanden sind, ist eine sachgerechte Prüfung und Abnahme möglich.

Ein wichtiger Punkt ist unbedingt zu beachten

Jede Änderung oder Erweiterung ist ein gesonderter Auftrag und hat im aktuellen Projekt nichts zu suchen. Änderungen und Erweiterungen werden erst nachfolgend oder nach Vereinbarung bearbeitet.

Der Einsatz von KPI

Mit Key Performance Idikatoren (KPI) können standardisierte Kennzahlen zur wiederholten und dabei vereinfachten Prüfung erstellt werden. Dazu werden aussagekräftige Parameter ermittelt, die über den Zustand des Produkts, der Dienstleistung oder deren Umfeld etwas aussagen.

Fazit:

Software Qualität hängt von vielen Parametern ab und ist zu prüfen. Wer nicht das notwendige Know-How hat, sollte einen Spezialisten hinzuziehen. Denn fehlerhafte Produkte können zu hohen Folgekosten führen.

Netbeans Version 11.1 ist für Entwickler erschienen

Java Entwickler können jetzt die Version der Apache Netbeans Version 11.1 nutzen. Alle drei Monate wird ein kostenloses, neues Release freigegeben. Es gibt einige Neuerungen, die das Programmieren einfacher gestalten.

Fazit: Es lohnt sich die neue Entwicklungsumgebung auszuprobieren, um die Verbesserungen kennen zu lernen.

Das V-Modell bei Internet Applikationen nutzen

Vorgehensweisen für Software- und Webseiten Entwicklung gibt es viele. Heute lernen wir das V-Modell kennen, dass von mir auf Webdesign angepasst wurde. Das V-Modell beinhaltet Projektmanagement, Konfigurationsmanagement, Änderungsmanagement und Qualitätssicherung.

V-Modell

V-Modell im Webdesign

Es unterscheidet sich zu anderen Vorgehensweisen dadurch, dass hier hauptsächlich Aktivitäten und Ergebnisse definiert werden.

Vorgehensweise beim V-Modell

V-Modell – Vorgehensweise

Fazit:

Das V-Modell hat aus meiner Sicht eine strukturierte Vorgehensweise. Es ist nicht für jedes Projekt geeignet. Auf Grund verschiedener Kritikpunkte wurde das V-Modell insofern geändert, dass jetzt V-Model XT zusätzlich agile Software Entwicklungstechniken eingesetzt werden. Zudem wird der Auftraggeber (Kunde) mehr in eingebunden. Dies verbessert die Qualität der Produkte oder Dienstleistungen und erleichtert die Abnahme. Die Dokumentation während des gesamten Zyklus unterstützt die Entwicklung und die darauf folgende Qualitätssicherung. Der Kunden kann die Dokumentation bei Erweiterungen oder Ergänzungen nutzen. Bei der Qualitätssicherung kann unter anderen die PDCA Methode eingesetzt werden.

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Web Entwicklung mit Hilfe der Extreme Programming Methode

Agile Software Entwicklung wird von immer mehr Entwicklern eingesetzt. Zur agilen Software Entwicklung gibt es verschiedene Modelle. Wir betrachten heute Extreme Programming.  Dieses System wurde von Ron Jeffries, Kent Beck und Ward Cunningham im Jahr 1995 entwickelt und eingesetzt.Extreme Programming ist eine Verknüpfung von Kommunikation, Offenheit, strukturierten Vorgehen und Teamarbeit.

Vorgehensweise bei Extreme Programming

  1. Rahmenbedingungen des Entwicklungsprojekts definieren
  2. Analysen durchführen
    1. Nutzenanalyse
    2. Risikoanalyse
    3. Ressourcenanalyse
  3. Synthese bzw. Erstellen eines Prototyps
  4. Abstimmen bis alle Beteiligten den Prototyp akzeptiert haben
  5. Sprung zum nächsten Entwicklungsschritt oder Iteration
  6. Entwicklung und Integration des Produkts
  7. Testen des Produkts
  8. Lebensdauer /Nutzungsdauer bestimmen
  9. Freigabe
  10. weiter mit Punkt 1 bis das Endprodukt vollständig fertiggestellt ist.

Allerdings gibt es gerade im Bereich von Webentwicklung und Software eine ständige Weiterentwicklung. So ist  jedes Produkt nur ein temporäres Endprodukt.

Vorteile von Extreme Programming

  • Der Kunde ist in den Entwicklungsprozess mit einbezogen
  • Durch die Risikoabschätzung am Beginn erhöht sich die Effizienz und Schwierigkeiten können teilweise vermieden werden
  • Kooperatives Lernen und kollektive Wissenslandschaften entstehen
  • Die Zufriedenheit der Mitarbeiter erhöht sich
  • Betriebswirtschaftlich findet eine Absicherung durch das verteilte Wissen statt

Rollen im Exterme Programming

  • Kunde/Auftraggeber
    • Bestimmt den Rahmen des Auftrags
    • Entscheidet, was gemacht wird
  • Projektmanager
    • Führt das Team
    • Kümmert sich um Problemlösung
    • Prüft Soll- und Ist Zustände aller Art
    • Stößt mangelnde Kommunikation an
  • Entwickler
    • Entwickelt das Produkt
    • Zeigt auftauchende Probleme oder Schwierigkeiten auf
  • Benutzer
    • Nutzt das Produkt
    • Gibt seine Änderungs und Erweiterungswünsche an den Auftraggeber weiter

Fazit:

Exterme Programming ist eine interessante Entwicklungsmothode und hat viel Potential. Es setzt auf Offenheit bei der Kommunikation. Denn nur so werden Probleme schnell bekannt und können Lösungen gefunden werden. Mut und Respekt im Umgang bei der täglichen Arbeit sind Voraussetzung für ein erfolgreiches Extreme Programming Projekt.

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Das ARIS Konzept von August-Wilhelm Scheer

ARIS bedeutet Architektur integrierter Informationssysteme und wurde von August-Wilhelm Scheer, dem ehemaligen Direktor des Instituts für Wirtschaftsinformatik der Universität des Saarlandes, entwickelt. ARIS wird im Geschäftsprozess- und Informationsmanagement eingesetzt. Durch seine 5 Sichten Architektur werden komplexe Prozesse besser verständlich und lassen sich einfacher modellieren.

Die 5 Sichten von ARIS

ARIS-Modell

ARIS-Modell

Organisationssicht

Es werden alle Organisationseinheiten und Ihre Beziehungen dokumentiert. Meist geschieht dies mit Organigrammen.

Datensicht

Alle in dem Unternehmen relevanten Dokumente, Informationsobjekte, sowie deren Beziehungen zueinander, werden in der Datensicht dargestellt.  Dazu gehören zum Beispiel Daten von ERP und Entity-Relationship Diagramme.

Steuerungssicht

In dieser Sicht wird der zeitliche und logische Zusammenhang der betrieblichen Abläufe dargestellt. Dies beinhaltet unter anderem Flussdiagramme und Aktivitätsdiagramme in UML.

 Funktionssicht

Die Funktionssicht zeigt alle betriebswirtschaftlich relevanten Beziehungen in einem Funktionsbaum. In der hierarchischen Ansicht sind untergeordnete Vorgänge den übergeordneten Vorgängen zugeordnet.

Leistungssicht

Die Leistungssicht zeigt alle Produkte und Dienstleistungen in einem Produkt- und Dienstleistungsbaum.

Die 3 Ebenen der Beschreibung

Jede ARIS Schicht besitzt drei Beschreibungsebenen.

Fachkonzept

Das Fachkonzept beschreibt die Prozesse und Abläufe in einer verständlichen Sprache. Zudem werden weitere Datenmodelle genutzt. Dies wären zum Beispiel Organigramm, Funktionsbaum, ERM.

DV-Konzept

Im DV-Konzept wird spezifiziert, was wie in der EDV umgesetzt wird. Hier werden Schnittstellen definiert, und es werden Freiheitsgrade in der Datenverarbeitung herausgearbeitet. Genutzt werden dazu, UML, Relationen, Struktogramme und Topologien.

Implementierungsebene

Es erfolgt die Umsetzung der beschriebenen Prozesse durch Programmierung. Zur Erstellung werden Server, Datenbanken, Schnittstellen und Protokolle genutzt.

 

„ARIS-Modell“ von Marcel Light – Eigenes Werk. Lizenziert unter Creative Commons Zero

Software Entwicklung mit dem Wasserfall Modell

Bei der klassischen Software Entwicklung wird oft das statische Wasserfall Modell eingesetzt. Diese zeichnet sich durch eine strukturierte Vorgehensweise mit 5 oder 6 Phasen aus. Es eignet sich vor allem bei klar definierbaren Anforderungen und Prozessen.

Wasserfall Modell

 

Vorteile des Wasserfall Modells

  • Die Planung lässt sich gut durchzuführen
  • Die Phasen können eindeutig definiert werden
  • Die notwendigen Ressourcen lassen sich bei nicht veränderten Bedingungen gut abschätzen
  • Eine Kontrolle kann gut in den Prozess integriert werden

Nachteile  des Wasserfall Modells

  • Starres System – Änderungen lassen sich nicht flexibel umsetzen
  • In der Praxis gibt es meist keine klar abgegrenzten Phasen
  • Der Einsatz des Produkts erfolgt zu einem späten Zeitpunkt
  • Fehler werden unter Umständen spät erkannt und führen durch größeren Aufwand zu höheren Kosten

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Erweiterung der Hoshin Kanri Methode durch agiles Management

Hoshin Kanri ist ein aus Japan stammendes Planungs- und Management Konzept. Das Konzept hat sich in den 60er Jahren bei einigen Unternehmen entwickelt. Es wurde durch den PDCA Zyklus von William Edwards Deming und dem “Management mit Zielvorgaben” durch Peter Drucker beeinflusst. In den 80er Jahren wurde dieses Konzept von vielen Unternehmen in den USA wie zum Beispiel Hewlett Packard und Intel übernommen. Es basiert auf  zwei Anwendungsebenen, die Dr. Yoij Akano in seinem Buch beschrieben hat.

1. Strategische Planungsebene des Hoshin Kanri

In der strategischen Planungsebene werden Unternehmensziele mit einem 5 Jahres- oder manchmal einem 2 Jahres-Plan beibehalten. Die Pläne sind auf das Erzielen von signifikanten Änderungen ausgerichtet und werden mit entsprechenden Kennzahlen gemessen.

2. Agile Entwicklung

Agile Entwicklung wurde Anfang der 1990er Jahre begründet. Die Grundsätze agiler Entwicklung sind:

  • Menschen und deren Interaktionen zählen mehr als modulierte Prozesse
  • Das Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans
  • Zusammenarbeit mit dem Kunden ist wichtiger als eine Vertragsverhandlung
  • Funktionierende Prozesse sind wichtiger als umfassende Dokumentation

3. Alltägliche Ebene des Hoshin Kanri

Hier wird das alltägliche Geschäft getätigt. Alle wertschöpfenden Tätigkeiten werden gemessen und bewertet. Durch Kaizen kann der Prozessinhaber durch Änderungen Prozessverbesserungen erreichen.

Dazu werden Indikatoren in den Prozessen ermittelt. Ausgewählte Kreisläufe werden in weitere, kleinere Elemente zerlegt. Dann kommt eine “agile” Hoshin Kanri Methode zum tragen. Diese Elemente sind wie spiralförmige Kreisläufe zu betrachten und zu messen. So lassen sich Planungselemente modular wechseln, ohne das Gesamtkonzept in Frage stellen zu müssen. Die Kontrolle auf der strategischen Ebene muss dazu direkt, fast in Echtzeit tief in die alltägliche Ebene messen können, um dem Management das notwendige Feedback zur Entscheidung und daraus resultierenden agilen Handlung bieten zu können. Dies ist setzt eine spiralförmige Entwicklung in Gang die auch bei Veränderung Entwicklungszyklen überspringen kann. So wird Hoshin Kanri dynamisiert. Es können Ressourcen und Kosten gespart werden.

Voraussetzung dazu ist die Akzeptanz, dass der ständige Einsatz des Managements und aller Mitarbeiter für diese Methode notwendig ist. Durch die ständige Verbesserung und eine abgekoppelte Messung von unabhängigen Prüfern lassen sich markttragende Ergebnisse erzielen. Unabhängige Prüfer sind notwendig, damit der Entwickler nicht gleichzeitig der Prüfer ist!

Scrum – Agile Web- und Software Entwicklung

Scrum wurde in einem Projekt im Zuge der Zusammenarbeit von Ikurjio Nonaka und Jeff Sutherland entwickelt. Mit Scrum versucht man Anpassung, Transparenz und Kontrolle in der Software Entwicklung weitestgehend zu vereinfachen. Dadurch wird eine kostengünstige, schnelle  und hochwertige Entwicklung von Software Produkten und -Dienstleistungen ermöglicht. Scrum basiert auf Erfahrung und wird iterativ erweitert. Scrum benutzt Rollen mit unterschiedlichen Aufgaben und Verantwortungen.

Rollen bei Scrum

Das Entwickler Team liefert die vom Product Owner gewünschten Produktteile oder Dienstleistungen in der gewünschten Reihenfolge. Zudem sind die Entwickler für die Qualität des Produkts verantwortlich. Dazu werden Qualitätsstandards vereinbart.

Der Scrum Master kümmert sich als Führungskraft um das Entwickler Team, gehört dem Team aber nicht an. Er kümmert sich um die Organisation und hilft Störungen, Konflikte und Hindernisse zu beseitigen.

In der Rolle als Product Owner ist man für die Konzeption, Festlegung der Produkteigenschaften und die Priorisierung verantwortlich. Er steuert damit den wirtschaftlichen Nutzen für das Unternehmen, ist aber kein Vertreter des Kunden.

Der Kunde oder Auftraggeber wird als Customer dem Product Owner aufzeigen, was das Produkt für Eigenschaften haben soll. Zudem wird der Customer ab einer frühen Phase periodisch das zu entwickelnde Produkt prüfen und Feedback an den Product Owner geben.

Das Management hat bei der Bereitstellung der Ressourcen und dem Ausräumen von Hemmnissen zu unterstützen. Dadurch werden die Rahmenbedingungen stabilisiert.

Die User sind die zukünftigen Nutzer des Produkts oder der Dienstleistung. Daher sind Sie in der Lage die Funktionalität des Produkts zu beurteilen. Zudem können Sie das Produkt ab einer frühen Phase regelmäßig, zum Beispiel nach einem Entwicklungszyklus, ausprobieren und Ihre Ergebnisse und Veränderungsvorschläge mitteilen. diese kann der Product Owner aufgreifen und zur weiteren Entwicklung einfließen lassen.

Dazu wurde im Jahre 2001 das Agile Manifest für Scrum entwickelt, das ich hier angepasst habe.

Agiles Manifest

  • Eine beständige Zusammenarbeit mit dem Kunden als Partner steht über den Verträgen
  • Kommunikation, Mut und die Offenheit für Änderungen gilt mehr als das genaue Befolgen eines festgelegten Plans
  • Menschen und Zusammenarbeit gelten mehr als Werkzeuge und Prozesse, ersetzen diese aber nicht
  • Funktionierende Programme sind höher einzustufen als ausführliche Dokumentation.

Fazit:

Lean Production in japanischen Unternehmen verfolgt ähnliche Ansätze wie Scrum und nutzt für eine bessere Wertschöpfung unter anderem starkes Teamworking und erfolgreiches Wissensmanagement. Hier sehe ich auch den wichtigen Unterschied. Es wird auch bei Scrum Dokumentation gebraucht, wenn diese nicht “Just in Time” zur Verfügung steht, dann verliert der Scrum Prozess an Effektivität!

Alternativ gibt es die Vorgehensmodelle wie das Wasserfall ModellV-Modell, Kanban und Scrum.

Die Entwicklung von HTML 5 bei WhatWG und W3C

Vor längerer Zeit haben sich zwei Richtungen bei der Weiterentwicklung von HTML5 ergeben.

Zügige Weiterentwicklung  von HTML durch die WhatWG

Die WhatWG wurde nach einem Workshop des W3C gegründet. Mitarbeiter dvon Apple, Google, Microsoft, Mozilla und Opera haben sich zu einer fortlaufenden Weiterentwicklung von HTML ausgesprochen.  Die Entwickler der WhatWG sprechen vom HTML – Living Standard. Ohne diese Gruppe wäre die Weiterentwicklung von HTML auf Grund von mangelndem Interesse des W3C nur langsam voran getrieben worden.

Dokumentation von HTML – Living Standard

HTML5

Späte Erkenntnis des W3C – aber kein Entgegenkommen

Die Anteil der Wichtigkeit von HTML für zukünftige Informations- und Kommunikationsmittel wurde von W3C unterschätzt. Nachdem sich auf Grund von der Freigabe von HTML5 wesentliche Weiterentwicklungen wie Frameworks, modernisierte Browser ergeben haben, gibt es auch hier Neuerungen. Allerdings setzt das W3C auf Versionierung von HTML 5. Aktuell ist die Version HTML 5.2 als Empfehlung erschienen.

Fazit

Nach wie vor liegt die Entwicklung von HTML bei der aktiven WhatWG. Das W3C übernimmt meist wichtige Entwicklungen der WhatWG in ihre Standards. Diese werden weiterhin nicht so häufig aktualisiert wie der Living Standard.