Text 03 Anforderungen.docx
Document Details
Uploaded by BrainyConnemara
Full Transcript
Bedeutung von Qualitätskriterien In der Welt des Servicemanagements sind, wie auch sonst überall, wenn es um Anforderungen geht, klare und gut definierte Anforderungen ein zentraler Bestandteil. Die Qualität der Anforderungsdefinition hat direkten Einfluss auf die Effizienz, Kostenkontrolle und Kund...
Bedeutung von Qualitätskriterien In der Welt des Servicemanagements sind, wie auch sonst überall, wenn es um Anforderungen geht, klare und gut definierte Anforderungen ein zentraler Bestandteil. Die Qualität der Anforderungsdefinition hat direkten Einfluss auf die Effizienz, Kostenkontrolle und Kundenzufriedenheit. Ohne entsprechende Qualitätskriterien riskiert man Missverständnisse, Zeit- und Ressourcenverschwendung und letztlich die Nichterfüllung der Ziele. Um diese Herausforderungen zu meistern, ist es entscheidend, Anforderungen anhand bestimmter Kriterien zu formulieren. Diese Kriterien helfen dabei, sicherzustellen, dass die Anforderungen klar, realistisch und umsetzbar sind. Sie dienen als Leitfaden für die Erstellung von Anforderungen, die alle Beteiligten verstehen und umsetzen können. Wir gehen auf sechs wichtige Qualitätskriterien ein und geben zur Veranschaulichung jeweils ein positives und ein negatives Beispiel. Prägnanz Prägnante Anforderungen sind kurz und klar. Sie enthalten keine unnötigen Informationen, was dazu beiträgt, Missverständnisse zu vermeiden und den Fokus auf das Wesentliche zu lenken. Positives Beispiel: "Die Software muss innerhalb von 2 Milli-Sekunden auf Benutzereingaben reagieren." Negatives Beispiel: "Die Software sollte im Allgemeinen schnell genug sein, um die Benutzer nicht zu frustrieren, besonders während der Stosszeiten, wenn viele Benutzer gleichzeitig darauf zugreifen." Verständlichkeit Anforderungen müssen für alle Beteiligten klar verständlich sein. Dies erreichst du, indem du Fachjargon minimierst und sicherstellst, dass die Sprache für alle Zielgruppen angemessen ist. Positives Beispiel: "Alle Benutzerkonten müssen eine Zwei-Faktor-Authentifizierung nutzen." Negatives Beispiel: "Benutzerkonten sollen eine implementierte Authentifizierungsmassnahme auf der Basis eines dualen Verifizierungsprozesses anwenden." Konsistenz Konsistente Anforderungen widersprechen sich nicht und sind mit anderen Projektdokumenten abgestimmt. Sie gewährleisten, dass alle Teile des Projekts harmonisch zusammenarbeiten. Positives Beispiel: "Die Benutzeroberfläche soll die Farbpalette und das Design der Unternehmenswebsite verwenden." Negatives Beispiel: "Die Benutzeroberfläche soll modern und ansprechend sein, im Gegensatz zur aktuellen Unternehmenswebsite." Mess- und Testbarkeit Jede Anforderung sollte so formuliert sein, dass man ihre Erfüllung messen und testen kann. Dies bedeutet, dass klar definiert sein muss, wann eine Anforderung als erfüllt gilt. Positives Beispiel: "Die Datenbank muss in der Lage sein, mindestens 100.000 Transaktionen pro Tag zu verarbeiten." Negatives Beispiel: "Die Datenbank sollte eine hohe Anzahl an Transaktionen ohne Probleme verarbeiten können." Eindeutigkeit Eindeutige Anforderungen lassen keinen Raum für Interpretationen. Sie sind präzise formuliert, sodass jeder Beteiligte dieselbe Vorstellung davon hat, was erreicht werden soll. Positives Beispiel: "Das Passwort muss mindestens 8 Zeichen lang sein und mindestens einen Grossbuchstaben, eine Zahl und ein Sonderzeichen enthalten." Negatives Beispiel: "Benutzerpasswörter sollten stark und schwer zu erraten sein." Rechtskonformität Anforderungen müssen im Einklang mit geltenden Gesetzen und Vorschriften stehen. Dies ist besonders wichtig, um rechtliche Probleme zu vermeiden und die Integrität des Projekts zu wahren. Positives Beispiel: "Die Software muss datenschutzkonform gemäss schweizerischem Datenschutzgesetz sein." Negatives Beispiel: "Die Software sollte sicherstellen, dass Benutzerdaten irgendwie geschützt werden." Abgrenzung Es ist entscheidend, die Bedürfnisse und Anforderungen an ein System oder eine Anwendung genau zu verstehen. Diese Anforderungen werden typischerweise in zwei Hauptkategorien eingeteilt: funktionale und nichtfunktionale Anforderungen. Funktionale Anforderungen beschreiben, was das System tun soll. Sie beziehen sich auf spezifische Funktionen und Prozesse des Systems und definieren, wie es auf bestimmte Eingaben reagieren oder bestimmte Aufgaben ausführen soll. Beispiele hierfür sind die Verarbeitung von Transaktionen, die Verwaltung von Benutzerkonten oder die Erstellung von Berichten. Nichtfunktionale Anforderungen hingegen spezifizieren, wie das System seine Funktionen ausführen soll. Sie beziehen sich auf die Qualität und die Leistungsmerkmale des Systems. Diese Anforderungen sind entscheidend für die Benutzererfahrung und -zufriedenheit. Sie umfassen Aspekte wie Zuverlässigkeit, Benutzbarkeit, Erlernbarkeit und Robustheit. Wir gehen nun auf vier nichtfunktionale Anforderungen ein. Vier funktionale Anforderungen Zuverlässigkeit bedeutet, dass das System stabil läuft und Fehlertoleranz aufweist. Ein zuverlässiges System bleibt auch unter Stressbedingungen oder bei unerwarteten Eingaben funktionsfähig. Benutzbarkeit bezieht sich darauf, wie einfach und intuitiv die Benutzer mit dem System interagieren können. Ein benutzerfreundliches System ist leicht verständlich und ermöglicht den Benutzern, ihre Aufgaben effizient und zufriedenstellend zu erledigen. Erlernbarkeit ist ein Mass dafür, wie einfach es für neue Benutzer ist, das System zu verstehen und effektiv zu nutzen. Ein System mit hoher Erlernbarkeit ermöglicht es den Benutzern, schnell mit der Software vertraut zu werden. Robustheit beschreibt die Fähigkeit eines Systems, unter verschiedenen Bedingungen ordnungsgemäß zu funktionieren und Fehlertoleranz gegenüber unerwarteten Problemen oder Missbrauch zu zeigen. Positives Beispiel Betrachten wir ein fiktives System A, das die vier funktionalen Anforderungen erfüllt: Zuverlässigkeit: System A bleibt auch bei hohem Benutzeraufkommen stabil und zeigt keine Fehler. Backups und Fehlerbehebungsmechanismen sind implementiert, um Ausfallzeiten zu minimieren. Benutzbarkeit: Die Benutzeroberfläche von System A ist intuitiv und benutzerfreundlich gestaltet. Benutzer finden schnell, was sie suchen, und die Navigation ist klar und einfach. Erlernbarkeit: Neue Benutzer können System A ohne umfangreiche Schulungen bedienen. Eine integrierte Hilfe und interaktive Tutorials erleichtern den Einstieg. Robustheit: System A bleibt auch bei unerwarteten Eingaben oder Bedingungen funktionsfähig. Es handhabt Fehler und Ausnahmesituationen geschickt, ohne die Benutzererfahrung zu beeinträchtigen. Negatives Beispiel Im Unterschied dazu zeigt System B ein negatives Beispiel und erfüllt die nichtfunktionalen Anforderungen nicht: Zuverlässigkeit: System B erlebt häufige Ausfälle und Fehler, besonders bei hohem Benutzeraufkommen. Backups und Fehlerbehebungsprozesse sind unzureichend. Benutzbarkeit: Die Benutzeroberfläche von System B ist verwirrend und nicht intuitiv. Benutzer benötigen viel Zeit, um die gewünschten Funktionen zu finden, was zu Frustration führt. Erlernbarkeit: Neue Benutzer von System B stehen vor einer steilen Lernkurve. Es gibt keine Hilfefunktionen oder Tutorials, was zu Verwirrung und ineffizienter Nutzung führt. Robustheit: System B reagiert schlecht auf unerwartete Eingaben und Bedingungen. Es stürzt häufig ab oder zeigt unvorhersehbare Verhaltensweisen, was die Benutzererfahrung stark beeinträchtigt. Einleitung Agile Vorhaben unterscheiden sich von traditionellen Ansätzen durch ihre Flexibilität und Anpassungsfähigkeit. Ein Schlüsselelement agiler Methoden ist die Art und Weise, wie Anforderungen spezifiziert und organisiert werden. Im Folgenden werden die grundlegenden Bausteine der Anforderungsspezifikation in agilen Projekten erläutert. Diese Bausteine unterscheiden sich im Detaillierungsgrad: Durch diese Strukturierung können agile Teams schnell auf Veränderungen reagieren und gleichzeitig sicherstellen, dass alle Anforderungen klar definiert und organisiert sind. Epic Ein Epic ist eine grosse, breite Anforderung oder ein Geschäftsziel, das in kleinere Teile zerlegt werden muss. Es dient als Dach für mehrere Features oder User Stories. Epics sind in der Regel hochgradig zusammengefasst und weniger detailliert, da sie grosse Bereiche oder Ziele abdecken. Feature Ein Feature ist eine spezifische Funktion oder ein Dienst, der einen klaren Nutzen für den Benutzer bietet. Es ist detaillierter als ein Epic, aber immer noch recht allgemein gehalten. Features beschreiben die Funktionalität auf einer mittleren Ebene der Detaillierung. Sie sind konkreter als Epics, aber weniger spezifisch als User Stories. User Story Eine User Story ist eine kurze, einfache Beschreibung einer Softwarefunktion aus der Perspektive des Endbenutzers. Sie beschreibt, was der Benutzer tun möchte und warum. User Stories sind detaillierter als Features und konzentrieren sich auf spezifische Benutzerbedürfnisse. Task Ein Task ist eine einzelne, kleine Arbeitsaufgabe, die zur Erfüllung einer User Story notwendig ist. Tasks sind die kleinsten Einheiten in der agilen Planung. Tasks sind sehr detailliert und spezifisch. Sie beschreiben genau, was zu tun ist und sind oft technischer Natur. Beispiel Betrachten wir als Beispiel die Einführung von Microsoft Co-Pilot in einem Unternehmen. Hier können natürlich verschiedene weitere Features, User Stories und Tasks definiert werden. Wir betrachten jeweils eine mögliche Ausprägung zur Veranschaulichung. Epic: Einführung von Microsoft Co-Pilot Das Epic umfasst das Gesamtziel des Projekts – die erfolgreiche Implementierung von Microsoft Co-Pilot im Unternehmen. Ausformuliert: "Einführung von Microsoft Co-Pilot als zentrales Tool zur Unterstützung der Mitarbeiter in ihren täglichen Aufgaben." Feature: Technische Integration von Co-Pilot Ein mögliches Feature befasst sich mit der technischen Implementierung von Co-Pilot in die bestehende IT-Infrastruktur des Unternehmens. Ausformuliert: "Einrichtung der Co-Pilot-Software auf Unternehmensservern und Integration in die bestehenden Arbeitsplatzsysteme." User Story: Schulung der Mitarbeitenden Dies ist eine spezifische User Story, die sich darauf konzentriert, wie Mitarbeitende geschult werden, um Co-Pilot effektiv zu nutzen. Ausformuliert: "Als Mitarbeiterin möchte ich eine umfassende Schulung zu Co-Pilot erhalten, damit ich das Tool effizient in meiner täglichen Arbeit einsetzen kann." Task: Erstellen von Schulungsmaterialien Das ist eine konkrete Aufgabe, die notwendig ist, um die User Story der Mitarbeiterschulung umzusetzen. Ausformuliert: "Entwicklung von interaktiven E-Learning-Kursen für die Einführung von Co-Pilot." Einleitung: Sprints Agile Methoden betonen Flexibilität, kontinuierliche Verbesserung und eine hohe Anpassungsfähigkeit an Veränderungen. Im Mittelpunkt steht die schnelle Lieferung von Produktfunktionen in regelmässigen, kurzen Zyklen. Ein Sprint ist der festgelegte Zeitraum (=Zyklus), in der Regel zwei bis vier Wochen, in dem ein agiles Team an einem bestimmten Set von Aufgaben arbeitet. Ziel ist es, am Ende des Sprints ein fertiges, nutzbares und potenziell auslieferbares Produktinkrement zu erstellen. Das Produkt Backlog, der Sprint Backlog und das Produktinkrement sind zentrale Elemente des agilen Anforderungsmanagements. Zusammen ermöglichen sie es Teams, flexibel und effizient auf Veränderungen zu reagieren, Prioritäten zu setzen und kontinuierlich Wert für den Kunden zu schaffen. Wir gehen nun auf diese drei Elemente ein. Produkt Backlog Das Produkt Backlog ist eine geordnete Liste aller Anforderungen, Features, Funktionen, Verbesserungen und Korrekturen, die am Produkt vorgenommen werden sollen. Es ist ein lebendiges Dokument, das ständig aktualisiert und priorisiert wird. Der Hauptzweck des Produkt Backlogs besteht darin, einen Überblick über alle geplanten Arbeiten und Änderungen am Produkt zu geben. Es dient als zentrale Quelle für die Planung von Sprints und hilft dem Team, sich auf die wichtigsten Aufgaben zu konzentrieren. Sprint Backlog Der Sprint Backlog ist eine Auswahl aus dem Produkt Backlog, die das Team im aktuellen Sprint bearbeiten will. Er wird zu Beginn jedes Sprints in einem Planungsmeeting erstellt. Der Sprint Backlog gibt an, welche Aufgaben im aktuellen Sprint bearbeitet werden sollen. Er bietet dem Team eine klare Richtung und Ziele für die kommenden Wochen und ermöglicht es, den Fortschritt während des Sprints zu verfolgen. Produktinkrement Ein Produktinkrement ist das Ergebnis eines Sprints. Es handelt sich um eine konkrete, fertiggestellte Erweiterung oder Verbesserung des Produkts, die wertvoll für den Kunden oder Benutzer ist. Das Produktinkrement zeigt den tatsächlichen Fortschritt des Teams. Es ist ein messbares Ergebnis, das demonstriert, was das Team während des Sprints erreicht hat. Typische Methoden & Werkzeuge Im agilen Anforderungsmanagement kommen verschiedene Methoden und Tools zum Einsatz, die die Flexibilität, Zusammenarbeit und kontinuierliche Verbesserung unterstützen. Hier sind einige Beispiele: Agile Methoden Scrum: Eine weitverbreitete agile Methode, die den Entwicklungsprozess in Sprints gliedert. Sie umfasst Rollen wie Scrum Master und Product Owner sowie Elemente wie Product Backlog und Sprint Backlog. Kanban: Eine Methode, die den Fokus auf kontinuierliche Lieferung legt und dabei den Arbeitsfluss durch ein visuelles Kanban-Board darstellt. Sie hilft, den Arbeitsaufwand zu visualisieren und zu optimieren. Tools zur Unterstützung Jira: Ein weit verbreitetes Tool für agiles Projektmanagement, das die Verwaltung von Backlogs, Sprints und Boards unterstützt und eine Vielzahl von Berichts- und Analysefunktionen bietet. Trello: Ein visuelles Kollaborationstool, das häufig für Kanban-Boards verwendet wird. Es ermöglicht Teams, Aufgaben zu organisieren und den Fortschritt zu verfolgen.