Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03536.jsonl.gz/385

Software-Qualität
Was ist Software-Qualität?
Wir unterscheiden zwischen objektiven Kriterien und subjektiven Kriterien. Es gibt messbare Kriterien aber auch Kriterien, die durch Abfrage von Meinungen (Benutzer, Projektleitung) gemessen werden können. Neben der Definition gemäss Standard gibt es auch zahlreiche kundenspezifische Definitionen, wie beispielsweise
- „Qualität ist was der Kunde unter Qualität versteht“
- „Qualität ist der Erfüllungsgrad von Anforderungen“
- „Quality means meeting the customer´s agreed requirements, formal and informal, at lowest cost, first time, every time.“
- „What is software quality? I know it, when I see it!“
Eigenschaften erfolgreicher Software-Projekte
Wenn ein Software-Entwicklungsprojekt erfolgreich war, äussert sich das in folgenden Eigenschaften:
- Die Lösung weist einen guten ROI (Return on Investment) auf respektive einen guten betriebswirtschaftlichen Nutzen. Die neue Lösung bringt Einsparungen, Mehreinnahmen oder beides und amortisiert auf diese Weise die Investition. Einsparungen können sich äussern in Form von weniger Fehlern, schnellerer Bearbeitung u.v.a.m. Es gibt jedoch auch Lösungen, die umgesetzt werden, weil weniger Einnahmen oder höhere Kosten in Zukunft entstehend würden, wenn man die neue Lösung nicht implementieren würde.
- Die Lösung ist gut wartbar. Erweiterungen sind zu minimalen Kosten realisierbar. Voraussetzungen dazu sind: Die Lösung hat ein gutes Design, leicht lesbaren Code und eine gute Dokumentation und brauchbare Kommentare im Code.
- Die Software ist stabil und robust. In den verschiedenen Tests (Modultests, Systemtests, Anwendertests oder Sicherheitstests) wurden genügend viel Fehler identifiziert und anschliessend korrigiert. Es darf angenommen werden, dass bloss noch wenige Fehler verbleiben.
- Die Anwender sind zufrieden. Dies kann systematisch gemessen werden mit einem Fragebogen und einer ausreichend grossen, statistisch relevanten Stichprobe am besten ausreichend vor und nach Inbetriebnahme. Alternativ kann die Zufriedneheit anhand einer zufälligen Befragung von Einzelpersonen eruiert werden.
- Die Software ist bedienerfreundlich. Sie benötigt wenig Lernaufwand, ist einfach und erfordert wenig Support. Die Anwendungssoftware hat ein einheitliches Design. In sich und eventuell auch im Vergleich zu anderen Anwendungen.
- Das Kostenbudget wurde eingehalten oder gar unterschritten. Die ursprüngliche Aufwandschätzung hat sich als realistisch erwiesen. Es wurden auch nicht im Verlaufe der Realisierung zusätzliche Anforderungen entdeckt, die unbedingt umgesetzt werden müssen und zusätzliches Budget erfordern.
- Der ursprüngliche oder der allenfalls angepasste Zeitplan wurde eingehalten. Es sind keine Wartefristen für die Kunden entstanden. Es mussten keine zusätzlichen Überbrückungslösungen implementiert werden.
Auch dies sind Kriterien für Software-Qualität.
Handlungsoptionen
Wir können gemeinsam folgendes tun für hohe Software-Qualität in den folgenden Bereichen, Aktivitäten und Phasen:
- Auswahl der Mitwirkenden: Wenn möglich Personen, die nachweisbare Erfahrung in Software-Entwicklungsprojekten haben. Personen mit Abstraktionsvermögen. Ggf. Beizug von externen Fachpersonen für die Projektleitung.
- Erstellung Pflichtenheft: Ein gutes Pflichtenheft ist vollständig und widerspruchsfrei. Beachten Sie dazu auch unsere Checkliste.
- Datenmodellierung: Ein gutes logisches Datenmodell vereinfacht die Realität, bildet sie aber so gut ab, dass auch zukünftige Fälle lösbar sind.
- Prozess-Design: Die bestehenden Prozesse und ggf. die neuen Prozesse müssen vollständig beschrieben werden. Hierzu gehört auch die Beschreibung von User-Dialogen, z.B. mittels sog. Mock-Ups in Excel (wir haben die Erfahrung gemacht, dass sich Excel erstaunlich gut eignet um das Design von Bildschirmmasken und Listen zu beschreiben).
- Design-Reviews: Vor dem Programmieren (Codieren) setzen sich Entwickler und Reviewer zusammen, prüfen das Design und verbessern es.
- User-Interface-Reviews: Oft kann schon mit wenig Aufwand das User-Interface bedienerfreundlicher, verständlicher und professioneller gestaltet werden. Beachten Sie dazu auch unsere Checkliste.
- Code-Reviews: Nach dem Programmieren erläutert der Entwickler seinen Code dem Reviewer. Anschliessend werden gemeinsam Optimierungen umgesetzt.
- Tests: Folgende Arten von Tests sollen fallspezifisch durchgeführt werden:
- Modultests
- Systemtests
- Lastsimulationen: Performance-Tests und Performance-Optimierungen
- Sicherheitstests
- Prototyping: Wenn die Anforderungen noch nicht von Anfang an klar sind, kann mittels Prototyp eine Konkretisierung der Ideen vorgenommen werden.