Fallstudie – Qualitätsmanagement in der Softwareindustrie

Fallstudie – Qualitätsmanagement in der Softwareindustrie

Branche: Softwareentwicklung

Unternehmen: Software- Unternehmen

Problem:Zeitaufwand des Prozesses

Lösung:Verbesserung der Software

 „Best practices“ als Standard festlegen, um erhebliche Verbesserungen interner Abläufe zu erreichen und den Aufwand des Prozess zu verringern.

Fallstudie zur Qualitätssicherung in der Softwareindustrie

Fallstudie: Design und Entwicklung in der Softwareindustrie

Die Software-Industrie ist in den letzten Jahrzehnten eine der am schnellsten wachsenden Branchen und obwohl die Softwareproduktion durch eigene Regeln geregelt wird ist es oftmals erforderlich, ein Qualitätsmanagementsystem nach ISO 9001 zu etablieren. Aufgrund der Besonderheit der Software-Industrie, kann die Umsetzung von ISO 9001 noch schwieriger sein als in einigen anderen Branchen. Eine der ersten Fragen ist: "Sind wir eine Produktions- oder Dienstleistungsfirma?" Und obwohl sich diese Frage nicht viel in Bezug auf die zu erfüllenden Anforderungen ändert, zeigt sie künftige Zweifel an, die im Umsetzungsprojekt entstehen werden.

 

Fallstudie

Ein kleines Start-up-Software-Unternehmen entwickelte eine Buchhaltungssoftware und verkaufte die Software zusammen mit Support. Die Buchhaltungssoftware ist das wichtigste und lukrativste Produkt, das sie entwickelten und erforderte eine ständige Aktualisierung, um Änderungen in der Gesetzgebung zu erfüllen. Aber sie entwickeln auch andere Softwarelösungen entsprechend den Anforderungen ihrer Kunden. In diesem Fall werden wir den Prozess der Entwicklung neuer Software für einzelne Kunden diskutieren.

 

Ist es Produktion oder Design und Entwicklung?

Diese Frage kann in anderen Branchen als Überraschung kommen, aber hier ist es schwer einen Unterschied zu machen. Sobald das Produkt entworfen ist, braucht es nicht mehr die Produktion wie in der verarbeitenden Industrie. Die Konstruktion und Entwicklung IST die Produktion. und der Prozess muss die Anforderungen der beiden Klauseln 8.3 und 8.5 zur gleichen Zeit erfüllen.

 

Planungssoftwareentwicklung

Nehmen wir an, dass die Anforderungen an das Produkt während des Verkaufsprozesses identifiziert werden. Da alle Mitarbeiter im Unternehmen wenig Erfahrung mit dem Projektmanagement hatten, war eine der Herausforderungen den Planungsschritt im Designprozess zu definieren. Nach Berücksichtigung der Anforderungen des Standards entwickelte das Unternehmen eine Planungsphase:

  • Die Art und Komplexität der Softwareproduktion
  • Die erforderlichen Stufen, einschließlich der anwendbaren Bewertungen
  • Die erforderlichen Prüfungs- und Validierungsaktivitäten
  • Die internen und externen Ressourcen, die für die Softwareproduktion benötigt werden
  • Die Notwendigkeit, Schnittstellen zwischen den an dem Entwurfs- und Entwicklungsprozess beteiligten Personen zu kontrollieren
  • Die Voraussetzung für die nachträgliche Bereitstellung von Produkten und Dienstleistungen
  • Rollen und Verantwortlichkeiten innerhalb des Designprojekts, einschließlich des Projektteams
  • Inputs für Design und Entwicklung, einschließlich Funktions- und Leistungsanforderungen, gesetzliche und regulatorische Anforderungen etc.

Auf der Grundlage all dieser Informationen entwickelte das Unternehmen später den Projektplan mit definierten Phasen, Inputs, Ausgängen, relevanten Dokumenten, Rollen usw. Dies beinhaltet typischerweise eine vorläufige oder hochrangige Gestaltung der Hauptmodule mit einem Gesamtbild (wie z.B. Ein Blockdiagramm), wie die Teile zusammenpassen Informationen über die Sprache, das Betriebssystem und die Hardwarekomponenten sind zu diesem Zeitpunkt ebenfalls definiert. Dann wird ein detailliertes oder Low-Level-Design erstellt, manchmal mit Prototyping als Proof-of-Concept oder zur Festlegung von Anforderungen

 

Bereitstellung und Wartung

Die Bereitstellung startet direkt nach dem ordnungsgemäß getesteten, für die Freigabe genehmigten und verkauften oder anderweitig verteilten Code in eine Produktionsumgebung. Hierbei kann es sich um eine Installation, eine Anpassung (z. B. durch Einstellen von Parametern nach den Werten des Kunden), eine Prüfung und eventuell eine längere Auswertungsphase handeln.

In einigen Fällen kann die Aufrechterhaltung und Verbesserung der Software, um mit neu entdeckten Problemen oder neuen Anforderungen fertig zu werden, weit mehr Zeit in Anspruch nehmen als die anfängliche Entwicklung der Software. Nicht nur könnte es notwendig sein Code hinzuzufügen der nicht dem ursprünglichen Design entspricht, sondern nur die Bestimmung, wie Software irgendwann funktioniert nachdem es abgeschlossen ist, kann erhebliche Anstrengung durch einen Software-Ingenieur erfordern. Etwa 60% aller Software-Engineering-Arbeiten sind Wartung, aber diese Statistik kann irreführend sein. Ein kleiner Teil davon ist die Fehlerbehebung. Die meisten Wartungsarbeiten erweitern Systeme, damit diese neue Dinge tun, dies kann in vielerlei Hinsicht als neue Arbeit angesehen werden.

 

 

Um Probleme zu vermeiden, sollte man sich streng an die Vorschriften halten

Viele kleine Softwareentwicklungsunternehmen haben Probleme, weil sie die Planung der Projekte wahrnehmen und den Prozess redundant und zeitaufwändig strukturieren. Aber die Entwicklung des Verfahrens mit klaren Schritten und Verantwortlichkeiten hilft bei der Vermeidung von Problemen und bei der Vermeidung von Nacharbeit des Codes. ISO 9001 ist selten eine Kundenanforderung für Softwareunternehmen, aber die Anforderungen der Standard- und insbesondere der Klausel 8.3 - können bei der Definition des Softwareentwicklungsprozesses sehr viel helfen und die Leistungsfähigkeit des Unternehmens durch die Reduzierung des Zeitaufwands für die Nacharbeit durch Missverständnisse verbessern, sowie andere Herausforderungen die sich im Designprozess ergeben.