Revision history for AnforderungsSpezifikation
No Differences
Additions:
Anforderungserhebung ist der zentrale Gedanke vieler [[ProzessModelle|Vorgehensmodelle]], in der frühen Entwicklungsphase ist es der Schwerpunkt beim [[SystemsEngineering|Systems Engineering]], in der [[SoftwareTechnik|Softwaretechnik]] wegen der Komplexität inzwischen unumgänglich, die Voraussetzung für die Einführung von Qualitätsmanagementsystemen (siehe [[Norm9001 DIN EN ISO 9001]]) und die Grundlage für die Orientierung (Ist-Zustand) beim [[ProjektManagement|Projektmanagement]]. Zum diesem Thema existiert eine breite Auswahl bewährter Methoden in der Literatur (Bücher und sogar Normen), um gemeinsam mit dem Auftraggeber die Anforderungen an ein Produkt möglichst genau zu erfassen. Während dieser Arbeit verständigen sich Auftragnehmer und Auftraggeber mit [[StakeHolder Stakeholdern]] und eigenen Beratern (möglichst Experten). Sie erarbeiten dabei systematisch eine möglichst detaillierte Liste mit Anforderungen - die Anforderungsspezifikation.
Eine genaue Anforderungserhebung sind die Voraussetzung für ein erfolgreiches Projekt. Keine oder eine unzureichende Anforderungserhebung ist übrigens eines der wichtigsten Gründe, [[ScheiternVonSwProjekten|warum viele Software-Projekte scheitern]].
- Was sind [[StakeHolder|Stakeholder]]? (erforderlich für das weitere Verständnis)
- Was sind [[UseCase|Anwendungsfälle]]?
- Was sind [[StoryCards|User Stories]]?
- Was ist ein [[BusinessCase|Business Case]]?
Siehe auch [[AnforderungsErmittlung|Anforderungsermittlung]] aus SkriptHopf2008
Es stehen diverse [[RequirementElicitation|Techniken zum Sammeln]] von Anforderungen zur Wahl. Welche die beste ist, ist der Kreativität des Teams überlassen. Manche Techniken klingen spielerisch, sind aber in Ihrer Durchführung und dem Ergebnis sehr effizient. Vor dem Sammeln der Anforderungen müssen die [[Stakeholder]] bekannt sein und nach Priorität sortiert vorliegen.
Möglicherweise, es ist sogar sehr wahrscheinlich, werden nicht alle Anforderungen als Eigenschaften des Produkts umgesetzt. Empfehlenswert ist es jedoch, dass die wichtigsten Anforderungen umgesetzt werden. Es lohnt sich die Anforderungen zu priorisieren um Vorweg die Prioritäten bei der Umsetzung festzulegen (Passender Artikel dazu: [[AnforderungenWollmilchsau|Die eierlegende Wollmilchsau]]).
~-[[AnforderungenPrioritaetenBeispiel1|Präzise definierten Klassen]]
~-[[AnforderungenPrioritaetenBeispiel2|Intuitives Einstufen]]
~-[[PriorisierungRelativitaetsMethode|Relativitätsmethode]]
~-[[AnforderungenPrioritaetenFuzzyLogic|Fuzzy-Logic-System]] zum Ermitteln der Priorität
~-Die Anforderungen müssen präzise nach vorher definierten Vorgaben formuliert werden. Dazu passend: [[AnforderungenFormulieren|Formulierung von Anforderungen]]
~-Die Anforderungsliste muss den Entwickler in die Lage versetzen, Teile des Produkts umzusetzen, so wie es die [[StakeHolder|Stakeholder]] tatsächlich __benötigten__ (nicht so wie es [[StakeHolder|Stakeholder]] formulieren - eine wahrhaftig schwere Aufgabe).
So werden Anforderungen Formuliert: [[AnforderungenFormulieren|Formulierung von Anforderungen]]
~-im Entwicklungsprozess [[Scrum]] kann das [[ProductBacklog|Product Backlog]] eine Anforderungskatalog sein; muss aber nicht!
~-[[AnforderungsKatalog|Anforderungskatalog]] im Sinne der DIN 69905 ist die "Auflistung von Anforderungen, durch deren Erfüllung ein angestrebtes Projektziel erreicht werden soll." (kann auch Bestandteil eine Lastenheftes sein)
Die Liste mit Anforderungen, egal welcher Art, muss während der Projektlaufzeit gepflegt werden, was ggf. in __sehr großen Projekten__ eines Anforderungsmanagement (siehe weiter unten) oder auch [[RequirementsEngineering|Requirements Engineering]] bedarf.
Das Anforderungsmanagment ist eine Tätigkeit, die sich über die gesamte Projektlaufzeit zieht und eigentlich vor dem Projektstart beginnt, wenn der erste Kontakt zu dem [[Stakeholder|Stakeholdern]] aufgenommen wird.
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Es ist natürlich jedem selbst überlassen sich dagegen zu wären. Es hilft aber nichts. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den [[Stakeholder|Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
Die [[AufwandSchaetzung|Aufwandschätzung]] für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im Verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch in der Anforderungsspezifikation aktualisiert werden. Zur [[AufwandSchaetzung|Aufwandschätzung]] gibt es einige Methoden, die alle demselben Zweck dienen - einer möglichst genauen Schätzung.
~-Anforderungserhebung nach [[AnforderungsSpezifikationHubertHofmann|Hubert F. Hofmann, Franz Lehner, IEEE SOFTWARE July / August 2001]]
~-Anforderungsanalyse mit Hilfe der [[StrukturierteAnalyse|strukturierten Analyse]]
~-Vorgehensbaustein Anforderungsfestlegung im V-Modell XT ([[DokuVModellXT1V3|Dokumentation zum V-Modell XT in der Version 1.3]], Seite 3-115)
~-Anforderungsspezifikation als ein Teil eines [[Lastenheft Lastenheftes]] ([[Balzert2000]], S. 62)
~-Anforderungsspezifikation in Rahmen von [[Scrum]] in Form eines [[ProductBacklog|Product Backlogs]]
~-Laut [[http://www.incose.org INCOSE]] konzentriert sich das [[SystemsEngineering|Systems Engineering]] auf die Definition und Dokumentation der Systemanforderungen in der frühen Entwicklungsphase
~-[[http://www.sti-ev.de/veranstaltungen/arbeitskreise/2009/22042009.html|Erfolgreiches Anforderungsmanagement in KMUs dank bausteinorientierter Prozessverbesserung]], Michael Eisenbarth, Fraunhofer IESE
~-Konferenz [[http://www.requirementsdays.de|Requirements Days]]
~-[[AnforderungenFehlerquellen|Woher kommt die Fehlerquote in der initialen Anforderungsspezifikation]]
~-[[http://www.elektroniknet.de/embedded/technik-know-how/entwicklungs-tools-fuer-hard-und-software/article/31059/0/Anforderungsmanagement_Lesbarkeit_und_Effizienz/|Anforderungsmanagement: Lesbarkeit und Effizienz]]
Eine genaue Anforderungserhebung sind die Voraussetzung für ein erfolgreiches Projekt. Keine oder eine unzureichende Anforderungserhebung ist übrigens eines der wichtigsten Gründe, [[ScheiternVonSwProjekten|warum viele Software-Projekte scheitern]].
- Was sind [[StakeHolder|Stakeholder]]? (erforderlich für das weitere Verständnis)
- Was sind [[UseCase|Anwendungsfälle]]?
- Was sind [[StoryCards|User Stories]]?
- Was ist ein [[BusinessCase|Business Case]]?
Siehe auch [[AnforderungsErmittlung|Anforderungsermittlung]] aus SkriptHopf2008
Es stehen diverse [[RequirementElicitation|Techniken zum Sammeln]] von Anforderungen zur Wahl. Welche die beste ist, ist der Kreativität des Teams überlassen. Manche Techniken klingen spielerisch, sind aber in Ihrer Durchführung und dem Ergebnis sehr effizient. Vor dem Sammeln der Anforderungen müssen die [[Stakeholder]] bekannt sein und nach Priorität sortiert vorliegen.
Möglicherweise, es ist sogar sehr wahrscheinlich, werden nicht alle Anforderungen als Eigenschaften des Produkts umgesetzt. Empfehlenswert ist es jedoch, dass die wichtigsten Anforderungen umgesetzt werden. Es lohnt sich die Anforderungen zu priorisieren um Vorweg die Prioritäten bei der Umsetzung festzulegen (Passender Artikel dazu: [[AnforderungenWollmilchsau|Die eierlegende Wollmilchsau]]).
~-[[AnforderungenPrioritaetenBeispiel1|Präzise definierten Klassen]]
~-[[AnforderungenPrioritaetenBeispiel2|Intuitives Einstufen]]
~-[[PriorisierungRelativitaetsMethode|Relativitätsmethode]]
~-[[AnforderungenPrioritaetenFuzzyLogic|Fuzzy-Logic-System]] zum Ermitteln der Priorität
~-Die Anforderungen müssen präzise nach vorher definierten Vorgaben formuliert werden. Dazu passend: [[AnforderungenFormulieren|Formulierung von Anforderungen]]
~-Die Anforderungsliste muss den Entwickler in die Lage versetzen, Teile des Produkts umzusetzen, so wie es die [[StakeHolder|Stakeholder]] tatsächlich __benötigten__ (nicht so wie es [[StakeHolder|Stakeholder]] formulieren - eine wahrhaftig schwere Aufgabe).
So werden Anforderungen Formuliert: [[AnforderungenFormulieren|Formulierung von Anforderungen]]
~-im Entwicklungsprozess [[Scrum]] kann das [[ProductBacklog|Product Backlog]] eine Anforderungskatalog sein; muss aber nicht!
~-[[AnforderungsKatalog|Anforderungskatalog]] im Sinne der DIN 69905 ist die "Auflistung von Anforderungen, durch deren Erfüllung ein angestrebtes Projektziel erreicht werden soll." (kann auch Bestandteil eine Lastenheftes sein)
Die Liste mit Anforderungen, egal welcher Art, muss während der Projektlaufzeit gepflegt werden, was ggf. in __sehr großen Projekten__ eines Anforderungsmanagement (siehe weiter unten) oder auch [[RequirementsEngineering|Requirements Engineering]] bedarf.
Das Anforderungsmanagment ist eine Tätigkeit, die sich über die gesamte Projektlaufzeit zieht und eigentlich vor dem Projektstart beginnt, wenn der erste Kontakt zu dem [[Stakeholder|Stakeholdern]] aufgenommen wird.
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Es ist natürlich jedem selbst überlassen sich dagegen zu wären. Es hilft aber nichts. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den [[Stakeholder|Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
Die [[AufwandSchaetzung|Aufwandschätzung]] für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im Verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch in der Anforderungsspezifikation aktualisiert werden. Zur [[AufwandSchaetzung|Aufwandschätzung]] gibt es einige Methoden, die alle demselben Zweck dienen - einer möglichst genauen Schätzung.
~-Anforderungserhebung nach [[AnforderungsSpezifikationHubertHofmann|Hubert F. Hofmann, Franz Lehner, IEEE SOFTWARE July / August 2001]]
~-Anforderungsanalyse mit Hilfe der [[StrukturierteAnalyse|strukturierten Analyse]]
~-Vorgehensbaustein Anforderungsfestlegung im V-Modell XT ([[DokuVModellXT1V3|Dokumentation zum V-Modell XT in der Version 1.3]], Seite 3-115)
~-Anforderungsspezifikation als ein Teil eines [[Lastenheft Lastenheftes]] ([[Balzert2000]], S. 62)
~-Anforderungsspezifikation in Rahmen von [[Scrum]] in Form eines [[ProductBacklog|Product Backlogs]]
~-Laut [[http://www.incose.org INCOSE]] konzentriert sich das [[SystemsEngineering|Systems Engineering]] auf die Definition und Dokumentation der Systemanforderungen in der frühen Entwicklungsphase
~-[[http://www.sti-ev.de/veranstaltungen/arbeitskreise/2009/22042009.html|Erfolgreiches Anforderungsmanagement in KMUs dank bausteinorientierter Prozessverbesserung]], Michael Eisenbarth, Fraunhofer IESE
~-Konferenz [[http://www.requirementsdays.de|Requirements Days]]
~-[[AnforderungenFehlerquellen|Woher kommt die Fehlerquote in der initialen Anforderungsspezifikation]]
~-[[http://www.elektroniknet.de/embedded/technik-know-how/entwicklungs-tools-fuer-hard-und-software/article/31059/0/Anforderungsmanagement_Lesbarkeit_und_Effizienz/|Anforderungsmanagement: Lesbarkeit und Effizienz]]
Deletions:
Eine genaue Anforderungserhebung sind die Voraussetzung für ein erfolgreiches Projekt. Keine oder eine unzureichende Anforderungserhebung ist übrigens eines der wichtigsten Gründe, [[ScheiternVonSwProjekten warum viele Software-Projekte scheitern]].
- Was sind [[StakeHolder Stakeholder]]? (erforderlich für das weitere Verständnis)
- Was sind [[UseCase Anwendungsfälle]]?
- Was sind [[StoryCards User Stories]]?
- Was ist ein [[BusinessCase Business Case]]?
Siehe auch [[AnforderungsErmittlung Anforderungsermittlung]] aus SkriptHopf2008
Es stehen diverse [[RequirementElicitation Techniken zum Sammeln]] von Anforderungen zur Wahl. Welche die beste ist, ist der Kreativität des Teams überlassen. Manche Techniken klingen spielerisch, sind aber in Ihrer Durchführung und dem Ergebnis sehr effizient. Vor dem Sammeln der Anforderungen müssen die [[Stakeholder]] bekannt sein und nach Priorität sortiert vorliegen.
Möglicherweise, es ist sogar sehr wahrscheinlich, werden nicht alle Anforderungen als Eigenschaften des Produkts umgesetzt. Empfehlenswert ist es jedoch, dass die wichtigsten Anforderungen umgesetzt werden. Es lohnt sich die Anforderungen zu priorisieren um Vorweg die Prioritäten bei der Umsetzung festzulegen (Passender Artikel dazu: [[AnforderungenWollmilchsau Die eierlegende Wollmilchsau]]).
~-[[AnforderungenPrioritaetenBeispiel1 Präzise definierten Klassen]]
~-[[AnforderungenPrioritaetenBeispiel2 Intuitives Einstufen]]
~-[[PriorisierungRelativitaetsMethode Relativitätsmethode]]
~-[[AnforderungenPrioritaetenFuzzyLogic Fuzzy-Logic-System]] zum Ermitteln der Priorität
~-Die Anforderungen müssen präzise nach vorher definierten Vorgaben formuliert werden. Dazu passend: [[AnforderungenFormulieren Formulierung von Anforderungen]]
~-Die Anforderungsliste muss den Entwickler in die Lage versetzen, Teile des Produkts umzusetzen, so wie es die [[StakeHolder Stakeholder]] tatsächlich __benötigten__ (nicht so wie es [[StakeHolder Stakeholder]] formulieren - eine wahrhaftig schwere Aufgabe).
So werden Anforderungen Formuliert: [[AnforderungenFormulieren Formulierung von Anforderungen]]
~-im Entwicklungsprozess [[Scrum]] kann das [[ProductBacklog Product Backlog]] eine Anforderungskatalog sein; muss aber nicht!
~-[[AnforderungsKatalog Anforderungskatalog]] im Sinne der DIN 69905 ist die "Auflistung von Anforderungen, durch deren Erfüllung ein angestrebtes Projektziel erreicht werden soll." (kann auch Bestandteil eine Lastenheftes sein)
Die Liste mit Anforderungen, egal welcher Art, muss während der Projektlaufzeit gepflegt werden, was ggf. in __sehr großen Projekten__ eines Anforderungsmanagement (siehe weiter unten) oder auch [[RequirementsEngineering Requirements Engineering]] bedarf.
Das Anforderungsmanagment ist eine Tätigkeit, die sich über die gesamte Projektlaufzeit zieht und eigentlich vor dem Projektstart beginnt, wenn der erste Kontakt zu dem [[Stakeholder Stakeholdern]] aufgenommen wird.
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Es ist natürlich jedem selbst überlassen sich dagegen zu wären. Es hilft aber nichts. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den [[Stakeholder Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
Die [[AufwandSchaetzung Aufwandschätzung]] für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im Verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch in der Anforderungsspezifikation aktualisiert werden. Zur [[AufwandSchaetzung Aufwandschätzung]] gibt es einige Methoden, die alle demselben Zweck dienen - einer möglichst genauen Schätzung.
~-Anforderungserhebung nach [[AnforderungsSpezifikationHubertHofmann Hubert F. Hofmann, Franz Lehner, IEEE SOFTWARE July / August 2001]]
~-Anforderungsanalyse mit Hilfe der [[StrukturierteAnalyse strukturierten Analyse]]
~-Vorgehensbaustein Anforderungsfestlegung im V-Modell XT ([[DokuVModellXT1V3 Dokumentation zum V-Modell XT in der Version 1.3]], Seite 3-115)
~-Anforderungsspezifikation als ein Teil eines [[Lastenheft Lastenheftes]] (Balzert2000, S. 62)
~-Anforderungsspezifikation in Rahmen von [[Scrum]] in Form eines [[ProductBacklog Product Backlogs]]
~-Laut [[http://www.incose.org INCOSE]] konzentriert sich das [[SystemsEngineering Systems Engineering]] auf die Definition und Dokumentation der Systemanforderungen in der frühen Entwicklungsphase
~-[[http://www.sti-ev.de/veranstaltungen/arbeitskreise/2009/22042009.html Erfolgreiches Anforderungsmanagement in KMUs dank bausteinorientierter Prozessverbesserung]], Michael Eisenbarth, Fraunhofer IESE
~-Konferenz [[http://www.requirementsdays.de Requirements Days]]
~-[[AnforderungenFehlerquellen Woher kommt die Fehlerquote in der initialen Anforderungsspezifikation]]
~-[[http://www.elektroniknet.de/embedded/technik-know-how/entwicklungs-tools-fuer-hard-und-software/article/31059/0/Anforderungsmanagement_Lesbarkeit_und_Effizienz/ Anforderungsmanagement: Lesbarkeit und Effizienz]]
Additions:
~-[[http://www.elektroniknet.de/embedded/technik-know-how/entwicklungs-tools-fuer-hard-und-software/article/31059/0/Anforderungsmanagement_Lesbarkeit_und_Effizienz/ Anforderungsmanagement: Lesbarkeit und Effizienz]]
Additions:
- Was sind [[StakeHolder Stakeholder]]? (erforderlich für das weitere Verständnis)
- Was ist ein [[Anwendungsszenario]]?
- Was sind [[UseCase Anwendungsfälle]]?
- Was sind [[StoryCards User Stories]]?
- Was ist ein [[BusinessCase Business Case]]?
- Was ist [[Produktpolitik]] im Marketing?
- Was ist ein [[Anwendungsszenario]]?
- Was sind [[UseCase Anwendungsfälle]]?
- Was sind [[StoryCards User Stories]]?
- Was ist ein [[BusinessCase Business Case]]?
- Was ist [[Produktpolitik]] im Marketing?
Deletions:
~-Was sind [[UseCase Anwendungsfälle]]?
~-Was sind [[StoryCards User Stories]]?
~-Was ist ein [[BusinessCase Business Case]]?
~-Was ist [[Produktpolitik]] im Marketing?
Additions:
=a=Anforderungen sammeln=a=
Es stehen diverse [[RequirementElicitation Techniken zum Sammeln]] von Anforderungen zur Wahl. Welche die beste ist, ist der Kreativität des Teams überlassen. Manche Techniken klingen spielerisch, sind aber in Ihrer Durchführung und dem Ergebnis sehr effizient. Vor dem Sammeln der Anforderungen müssen die [[Stakeholder]] bekannt sein und nach Priorität sortiert vorliegen.
Als Voraussetzung für eine Anforderungsanalyse müssen die [[Stakeholder]] bekannt sein und bestenfalls nach Priorität sortiert vorliegen.
Der Vorgang der Anforderlungsanalyse kann ggf. stark mit dem Sammeln von Anforderungen verzahnt sein. In der Regel ist es empfehlenswert den [[Stakeholder]] nicht mit der Analyse zu beeinflussen (siehe UnaffectedStakeholder).
Es stehen diverse [[RequirementElicitation Techniken zum Sammeln]] von Anforderungen zur Wahl. Welche die beste ist, ist der Kreativität des Teams überlassen. Manche Techniken klingen spielerisch, sind aber in Ihrer Durchführung und dem Ergebnis sehr effizient. Vor dem Sammeln der Anforderungen müssen die [[Stakeholder]] bekannt sein und nach Priorität sortiert vorliegen.
Als Voraussetzung für eine Anforderungsanalyse müssen die [[Stakeholder]] bekannt sein und bestenfalls nach Priorität sortiert vorliegen.
Der Vorgang der Anforderlungsanalyse kann ggf. stark mit dem Sammeln von Anforderungen verzahnt sein. In der Regel ist es empfehlenswert den [[Stakeholder]] nicht mit der Analyse zu beeinflussen (siehe UnaffectedStakeholder).
Deletions:
~-Fragestellungen und Vorgehensmodelle der [[Usability Gebrauchstauglichkeit]] (Usability) sind hier genau richtig.
~-Standards und Normen bieten eine Vorlage für weitere Anforderungen an ein Produkt und müssen berücksichtigt werden
~-Bereits eingesetzte Technologie (z.B. der Kunde hat schon alle Systeme in C++ entwickelt bekommen und hat selbst Experten, die kleine Anpassungen machen können, stellt eine Anforderung an das System)
Additions:
Möglicherweise, es ist sogar sehr wahrscheinlich, werden nicht alle Anforderungen als Eigenschaften des Produkts umgesetzt. Empfehlenswert ist es jedoch, dass die wichtigsten Anforderungen umgesetzt werden. Es lohnt sich die Anforderungen zu priorisieren um Vorweg die Prioritäten bei der Umsetzung festzulegen (Passender Artikel dazu: [[AnforderungenWollmilchsau Die eierlegende Wollmilchsau]]).
Deletions:
Additions:
~-[[AnforderungenFehlerquellen Woher kommt die Fehlerquote in der initialen Anforderungsspezifikation]]
Deletions:
Additions:
~-[[Woher kommt die Fehlerquote in der initialen Anforderungsspezifikation? AnforderungenFehlerquellen]]
Additions:
Anforderungserhebung ist der zentrale Gedanke vieler [[ProzessModelle Vorgehensmodelle]], in der frühen Entwicklungsphase ist es der Schwerpunkt beim [[SystemsEngineering Systems Engineering]], in der [[SoftwareTechnik Softwaretechnik]] wegen der Komplexität inzwischen unumgänglich, die Voraussetzung für die Einführung von Qualitätsmanagementsystemen (siehe [[Norm9001 DIN EN ISO 9001]]) und die Grundlage für die Orientierung (Ist-Zustand) beim [[ProjektManagement Projektmanagement]]. Zum diesem Thema existiert eine breite Auswahl bewährter Methoden in der Literatur (Bücher und sogar Normen), um gemeinsam mit dem Auftraggeber die Anforderungen an ein Produkt möglichst genau zu erfassen. Während dieser Arbeit verständigen sich Auftragnehmer und Auftraggeber mit [[StakeHolder Stakeholdern]] und eigenen Beratern (möglichst Experten). Sie erarbeiten dabei systematisch eine möglichst detaillierte Liste mit Anforderungen - die Anforderungsspezifikation.
~-[[Norm9001 DIN EN ISO 9001]] fordert die Verantwortung der obersten Leitung der Organisation die Bedeutung der Erfüllung der Kundenanforderungen zu vermitteln und sicherstellen, dass die Kundenanforderungen ermittelt und erfüllt werden.
~-[[Norm9001 DIN EN ISO 9001]] fordert die Verantwortung der obersten Leitung der Organisation die Bedeutung der Erfüllung der Kundenanforderungen zu vermitteln und sicherstellen, dass die Kundenanforderungen ermittelt und erfüllt werden.
Deletions:
~-ISO 9001 fordert die Verantwortung der obersten Leitung der Organisation die Bedeutung der Erfüllung der Kundenanforderungen zu vermitteln und sicherstellen, dass die Kundenanforderungen ermittelt und erfüllt werden.
Additions:
~-[[http://www.sophist.de/sophist-blog/blog/einfuehrungsstrategien-fuer-re-das-pilotierungskonzept/sophist-blog/2009/september.html Einführungsstrategien für RE: das Pilotierungskonzept]] von der Sophist-Group
Deletions:
Additions:
~-[[http://www.sophist.de/sophist-blog/blog/einfuehrungsstrategien-fuer-re-das-pilotierungskonzept/sophist-blog/2009/september.html?tx_ttnews[day]=16&cHash=1a795d3763 Einführungsstrategien für RE: das Pilotierungskonzept]] von der Sophist-Group
Additions:
~-Konferenz [[http://www.requirementsdays.de Requirements Days]]
~-Konferenz [[http://www.reconf.de REConf]]
~-Konferenz [[http://www.reconf.de REConf]]
Deletions:
Additions:
~-Was sind [[StoryCards User Stories]]?
Deletions:
Additions:
engl. requirement engineering
~-Eine **Anforderung** (engl. requirement) an ein Produkt ist die eindeutige, für alle Beteiligten verständliche, präzise Formulierung __einer__ eindeutig identifizierbaren, nachprüfbaren, atomaren Eigenschaft eines Produkts.
~-Eine **Anforderung** (engl. requirement) an ein Produkt ist die eindeutige, für alle Beteiligten verständliche, präzise Formulierung __einer__ eindeutig identifizierbaren, nachprüfbaren, atomaren Eigenschaft eines Produkts.
Deletions:
~-Eine **Anforderung** an ein Produkt ist die eindeutige, für alle Beteiligten verständliche, präzise Formulierung __einer__ eindeutig identifizierbaren, nachprüfbaren, atomaren Eigenschaft eines Produkts.
Additions:
~-[[http://www.sti-ev.de/veranstaltungen/arbeitskreise/2009/22042009.html Erfolgreiches Anforderungsmanagement in KMUs dank bausteinorientierter Prozessverbesserung]], Michael Eisenbarth, Fraunhofer IESE
Additions:
~-[[AnforderungenPrioritaetenBeispiel1 Präzise definierten Klassen]]
Deletions:
Additions:
~-Probleme und Fehler bei im Requirements Engineering: Ergebnisse einer Studie ([[ZeitschriftObjektSpektrum OBJEKTspektrum]], 1/2009, S. 10)
Additions:
~-[[http://en.wikipedia.org/wiki/IREB IREB]] (International Requirements Engineering Board); [[http://certified-re.de/de/downloads/lehrplane/ Lehrplan]]; [[http://www.dpunkt.de/buecher/3142.html Buch zur Vorbereitung auf die Prüfung zum CPRE]] (Certified Professional for Requirements Engineering)
Deletions:
Additions:
~-Laut [[http://www.incose.org INCOSE]] konzentriert sich das [[SystemsEngineering Systems Engineering]] auf die Definition und Dokumentation der Systemanforderungen in der frühen Entwicklungsphase
~-[[http://en.wikipedia.org/wiki/IREB IREB]] (International Requirements Engineering Board); [[Lehrplan]]; [[http://www.dpunkt.de/buecher/3142.html Buch zur Vorbereitung auf die Prüfung zum CPRE]] (Certified Professional for Requirements Engineering)
~-[[http://en.wikipedia.org/wiki/IREB IREB]] (International Requirements Engineering Board); [[Lehrplan]]; [[http://www.dpunkt.de/buecher/3142.html Buch zur Vorbereitung auf die Prüfung zum CPRE]] (Certified Professional for Requirements Engineering)
Deletions:
Additions:
Anforderungserhebung ist der zentrale Gedanke vieler [[ProzessModelle Vorgehensmodelle]], in der frühen Entwicklungsphase ist es der Schwerpunkt beim [[SystemsEngineering Systems Engineering]], in der [[SoftwareTechnik Softwaretechnik]] wegen der Komplexität inzwischen unumgänglich, die Voraussetzung für die Einführung von Qualitätsmanagementsystemen (siehe ISO 9001) und die Grundlage für die Orientierung (Ist-Zustand) beim [[ProjektManagement Projektmanagement]]. Zum diesem Thema existiert eine breite Auswahl bewährter Methoden in der Literatur (Bücher und sogar Normen), um gemeinsam mit dem Auftraggeber die Anforderungen an ein Produkt möglichst genau zu erfassen. Während dieser Arbeit verständigen sich Auftragnehmer und Auftraggeber mit [[StakeHolder Stakeholdern]] und eigenen Beratern (möglichst Experten). Sie erarbeiten dabei systematisch eine möglichst detaillierte Liste mit Anforderungen - die Anforderungsspezifikation.
Deletions:
Additions:
Anforderungserhebung ist der zentrale Gedanke vieler [[ProzessModelle Vorgehensmodelle]], in der frühen Entwicklungsphase ist es der Schwerpunkt beim [[SystemsEngineering Systems Engineering]], in der [[SoftwareTechnik Softwaretechnik]] wegen der Komplexität inzwischen unumgänglich, die Voraussetzung für die Einführung von Qualitätsmanagementsystemen (siehe ISO 9001) und die Grundlage für die Orientierung (Ist-Zustand) beim [[ProjektManagement Projektmanagement]]. Zum diesem Thema existiert eine breite Auswahl bewährter Methoden in der Literatur (Bücher und sogar Normen), um gemeinsam mit dem Auftraggeber die Anforderungen an ein Produkt möglichst genau zu erfassen. Während dieser Arbeit verständigen sich Auftragnehmer und Auftraggeber mit [[StakeHolder Stakeholdern]] und eigenen Beratern (möglichst Experten) und erarbeiten dabei systematisch eine möglichst detaillierte Liste mit Anforderungen (Anforderungsspezifikation).
Deletions:
Additions:
Anforderungserhebung ist der zentrale Gedanke vieler [[ProzessModell Vorgehensmodelle]], in der frühen Entwicklungsphase ist es der Schwerpunkt beim [[SystemsEngineering Systems Engineering]], in der [[SoftwareTechnik Softwaretechnik]] wegen der Komplexität inzwischen unumgänglich, die Voraussetzung für die Einführung von Qualitätsmanagementsystemen (siehe ISO 9001) und die Grundlage für die Orientierung (Ist-Zustand) beim [[ProjektManagemnet Projektmanagemnet]]. Zum diesem Thema existiert eine breite Auswahl bewährter Methoden in der Literatur (Bücher und sogar Normen), um gemeinsam mit dem Auftraggeber die Anforderungen an ein Produkt möglichst genau zu erfassen. Während dieser Arbeit verständigen sich Auftragnehmer und Auftraggeber mit [[StakeHolder Stakeholdern]] und eigenen Beratern (möglichst Experten) und erarbeiten dabei systematisch eine möglichst detaillierte Liste mit Anforderungen (Anforderungsspezifikation).
Eine genaue Anforderungserhebung sind die Voraussetzung für ein erfolgreiches Projekt. Keine oder eine unzureichende Anforderungserhebung ist übrigens eines der wichtigsten Gründe, [[ScheiternVonSwProjekten warum viele Software-Projekte scheitern]].
Definitionen:
~-Eine **Anforderungsspezifikation** ist eine vollständige, einheitlich dokumentierte und konsistente Zusammenstellung aller Anforderungen an ein Produkt. Beispiele hierfür sind das ([[Lastenheft]] und [[ProductBacklog Product backlog]]).
Vergleiche auch andere Definitionen in Sophist2007 auf S. 13, in IEEE 830 und in IEEE 1233.
Die [[AufwandSchaetzung Aufwandschätzung]] für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im Verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch in der Anforderungsspezifikation aktualisiert werden. Zur [[AufwandSchaetzung Aufwandschätzung]] gibt es einige Methoden, die alle demselben Zweck dienen - einer möglichst genauen Schätzung.
==a==Anforderungserhebung und -management in der Praxis==a==
Eine Zusammenstellung von Empfehlungen, Literatur, Normen, Organisationen und Beispiele zum Thema Anforderungserhebung und -management. Vor allem die ersten Zwei sind sehr empfehlenswert.
~-Anforderungserhebung nach Volere (VolereTemplate13) - eine gute Wahl und zugleich eine Vorlage in Word!
~-Anforderungserhebung und -management der [[http://www.sophist.de SOPHISTen]] (Sophist2007) - sehr gut!
~-Vorgehensbaustein Anforderungsfestlegung im V-Modell XT ([[DokuVModellXT1V3 Dokumentation zum V-Modell XT in der Version 1.3]], Seite 3-115)
~-ISO 9001 fordert die Verantwortung der obersten Leitung der Organisation die Bedeutung der Erfüllung der Kundenanforderungen zu vermitteln und sicherstellen, dass die Kundenanforderungen ermittelt und erfüllt werden.
~-Anforderungsspezifikation als ein Teil eines [[Lastenheft Lastenheftes]] (Balzert2000, S. 62)
~-Anforderungsspezifikation in Rahmen von [[Scrum]] in Form eines [[ProductBacklog Product Backlogs]]
~-Laut [[http://www.incose.org INCOSE]] konzentriert [[SystemsEngineering Systems Engineering]] auf die Definition und Dokumentation der Systemanforderungen in der frühen Entwicklungsphase
Eine genaue Anforderungserhebung sind die Voraussetzung für ein erfolgreiches Projekt. Keine oder eine unzureichende Anforderungserhebung ist übrigens eines der wichtigsten Gründe, [[ScheiternVonSwProjekten warum viele Software-Projekte scheitern]].
Definitionen:
~-Eine **Anforderungsspezifikation** ist eine vollständige, einheitlich dokumentierte und konsistente Zusammenstellung aller Anforderungen an ein Produkt. Beispiele hierfür sind das ([[Lastenheft]] und [[ProductBacklog Product backlog]]).
Vergleiche auch andere Definitionen in Sophist2007 auf S. 13, in IEEE 830 und in IEEE 1233.
Die [[AufwandSchaetzung Aufwandschätzung]] für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im Verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch in der Anforderungsspezifikation aktualisiert werden. Zur [[AufwandSchaetzung Aufwandschätzung]] gibt es einige Methoden, die alle demselben Zweck dienen - einer möglichst genauen Schätzung.
==a==Anforderungserhebung und -management in der Praxis==a==
Eine Zusammenstellung von Empfehlungen, Literatur, Normen, Organisationen und Beispiele zum Thema Anforderungserhebung und -management. Vor allem die ersten Zwei sind sehr empfehlenswert.
~-Anforderungserhebung nach Volere (VolereTemplate13) - eine gute Wahl und zugleich eine Vorlage in Word!
~-Anforderungserhebung und -management der [[http://www.sophist.de SOPHISTen]] (Sophist2007) - sehr gut!
~-Vorgehensbaustein Anforderungsfestlegung im V-Modell XT ([[DokuVModellXT1V3 Dokumentation zum V-Modell XT in der Version 1.3]], Seite 3-115)
~-ISO 9001 fordert die Verantwortung der obersten Leitung der Organisation die Bedeutung der Erfüllung der Kundenanforderungen zu vermitteln und sicherstellen, dass die Kundenanforderungen ermittelt und erfüllt werden.
~-Anforderungsspezifikation als ein Teil eines [[Lastenheft Lastenheftes]] (Balzert2000, S. 62)
~-Anforderungsspezifikation in Rahmen von [[Scrum]] in Form eines [[ProductBacklog Product Backlogs]]
~-Laut [[http://www.incose.org INCOSE]] konzentriert [[SystemsEngineering Systems Engineering]] auf die Definition und Dokumentation der Systemanforderungen in der frühen Entwicklungsphase
Deletions:
Siehe dazu auch die Definitionen in Sophist2007, S. 13, IEEE 830 und IEEE 1233
Die [[AufwandSchaetzung Aufwandschätzung]] für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch im Anforderungskatalog aktualisiert werden. Zur [[AufwandSchaetzung Aufwandschätzung]] gibt es einige praktische Methoden (z.B. Analogieverfahren oder [[Produktmetriken]]), die alle demselben Zweck dienen - einer möglichst genauen Schätzung.
==a==Empfehlungen für Anforderungserhebung und -management==a==
Es gibt viele Arten und Empfehlungen für Anforderungserhebung und -management, wie man Anforderungen erheben und verwalten kann. Fakt ist: Meistens wird oft viel weniger Aufwand hinter der Anforderungsermittlung, -spezifikation und -pflege vermutet, als tatsächlich zur Umsetzung und zum Erfolg des Produkts benötigt wird.
Wichtig: Verwenden Sie für den Einstieg, also das erste Projekt indem sie das ausprobieren wollen, keine speziellen Tools zum Verwalten von Anforderungen. Lesen Sie dazu: [[DasToolUndDerGlaube Das "Tool" und der Glaube an die Erlösung]]
Literatur, Normen, Organisationen und Beispiele zum Thema Anforderungserhebung und -management:
~-Anforderungserhebung nach Volere (VolereTemplate13)
~-Anforderungserhebung und -management der [[http://www.sophist.de SOPHISTen]] (Sophist2007)
~-Anforderungsspezifikation in Kombination mit dem Entwicklungsprozess [[Scrum]] in Form eines [[ProductBacklog Product Backlogs]]
~-[[Lastenheft]] und Glossar (Balzert2000, S. 62)
Additions:
~-Anforderungsentwicklung und -management nach [[CMMI]] (Prozessgebiete RD und REQM, Kategorie Entwicklung)
Deletions:
Additions:
Wichtig: Verwenden Sie für den Einstieg, also das erste Projekt indem sie das ausprobieren wollen, keine speziellen Tools zum Verwalten von Anforderungen. Lesen Sie dazu: [[DasToolUndDerGlaube Das "Tool" und der Glaube an die Erlösung]]
Deletions:
Additions:
~-Anforderungserhebung nach Volere (VolereTemplate13)
~-Anforderungsanalyse mit Hilfe der [[StrukturierteAnalyse strukturierten Analyse]]
~-Anforderungsmanagement nach [[CMMI]] (Prozessgebiet REQM, Maturity Level 2, Kategorie Entwicklung)
~-Anforderungsanalyse mit Hilfe der [[StrukturierteAnalyse strukturierten Analyse]]
~-Anforderungsmanagement nach [[CMMI]] (Prozessgebiet REQM, Maturity Level 2, Kategorie Entwicklung)
Deletions:
~-[[http://de.wikipedia.org/wiki/Strukturierte_Analyse Strukturierte Analyse]]
Additions:
~-Eine **Anforderung** an ein Produkt ist die eindeutige, für alle Beteiligten verständliche, präzise Formulierung __einer__ eindeutig identifizierbaren, nachprüfbaren, atomaren Eigenschaft eines Produkts.
~-Eine **Anforderungsliste** ist eine vollständige, einheitlich dokumentierte und konsistente Zusammenstellung aller Anforderungen an ein Produkt. Vergleiche mit ([[Lastenheft]] und [[ProductBacklog Product backlog]]).
Siehe dazu auch die Definitionen in Sophist2007, S. 13, IEEE 830 und IEEE 1233
Wissenswertes:
~-Was sind [[StakeHolder Stakeholder]]? (erforderlich für das weitere Verständnis)
~-Was sind [[UseCase Anwendungsfälle]]?
~-Was ist ein [[BusinessCase Business Case]]?
~-Was ist [[Produktpolitik]] im Marketing?
~-Eine **Anforderungsliste** ist eine vollständige, einheitlich dokumentierte und konsistente Zusammenstellung aller Anforderungen an ein Produkt. Vergleiche mit ([[Lastenheft]] und [[ProductBacklog Product backlog]]).
Siehe dazu auch die Definitionen in Sophist2007, S. 13, IEEE 830 und IEEE 1233
Wissenswertes:
~-Was sind [[StakeHolder Stakeholder]]? (erforderlich für das weitere Verständnis)
~-Was sind [[UseCase Anwendungsfälle]]?
~-Was ist ein [[BusinessCase Business Case]]?
~-Was ist [[Produktpolitik]] im Marketing?
Deletions:
~-Eine **Liste von Anforderungen** ist vollständig, einheitlich dokumentiert und konsistent.
Siehe dazu auch die Definitionen in Sophist2007, S. 13
Was sich hinter den Eigenschaften der Anforderung und der Liste von Anforderungen verbirgt, wird unter [[http://de.wikipedia.org/wiki/Anforderungserhebung#Sammeln.2C_Analysieren Wikipedia:Anforderungserhebung:Sammeln und Analysieren]] genau erklärt.
Weitere Begriffe:
~-[[StakeHolder Stakeholder]]
~-[[UseCase Use cases]]
~-[[BusinessCase Business Case]] (optional)
~-[[Produktpolitik]]
Additions:
~-[[Produktpolitik]]
Additions:
~-**Teams** – arbeiten mehrere Teams an einem Projekt, so ist es sehr hilfreich, wenn Fragestellungen, die nur ein bestimmtes Team betreffen nur die Anforderungen die das Team betreffen angezeigt werden können.
Deletions:
Additions:
Die [[AufwandSchaetzung Aufwandschätzung]] für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch im Anforderungskatalog aktualisiert werden. Zur [[AufwandSchaetzung Aufwandschätzung]] gibt es einige praktische Methoden (z.B. Analogieverfahren oder [[Produktmetriken]]), die alle demselben Zweck dienen - einer möglichst genauen Schätzung.
Deletions:
Additions:
Die Aufwandschätzung für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch im Anforderungskatalog aktualisiert werden. Zur Aufwandschätzung gibt es einige praktische Methoden (z.B. Analogieverfahren oder [[Produktmetriken]]), die alle demselben Zweck dienen - einer genaueren Schätzung.
Deletions:
Additions:
Die Aufwandschätzung für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch im Anforderungskatalog aktualisiert werden. Zur Aufwandschätzung gibt es einige praktische Methoden (z.B. Analogieverfahren oder [[Produktmetriken]]), die alle denselben Zweck dienen - einer genaueren Schätzung.
Deletions:
Additions:
Die Aufwandschätzung für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings im verlauf der Planung mehrere Aufgaben pro Anforderung, für die dann der Aufwand präziser in Stunden geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch im Anforderungskatalog aktualisiert werden. Zur Schätzung von Anforderungen gibt es viele Methoden (z.B. Analogieverfahren oder [[Produktmetriken]]).
Deletions:
Additions:
Mit zunehmender Anforderungesanzahl wird eine reine Liste mit Anforderungen sehr unübersichtlich (schon ab 100) bis tatsächlich unbrauchbar (ab 300). Eine große Hilfe kann hier eine Filterfunktion und auch eine Sortierfunktion sein. Nichts, was man nicht mit einer heute üblichen Tabellenkalkulation machen könnte. Der Anforderungstyp wurde schon oben als Merkmal einer Anforderung erwähnt. So könnte die Liste bereits nach der Anforderungsnummer sortiert und mit der Filterfunktion nur die funktionalen Anforderungen angezeigt werden. Man schafft damit eine sortierte Teilliste mir funktionalen Anforderungen. Auf diese Weise schaft man sich etwas mehr Überblick.
Bei mehreren Hundert Anforderungen reicht das nicht. Man muss bedenken: Projekte können Jahre dauern. Was heute aufgrund einiger verinnerlichter Zusatzinformationen für einen selbst übersichtlich erscheint, kann in einem Jahr bereits unüberschaubar sein, weil diese Information dann fehlt. Außerdem müssen auch andere einen Anforderungskatalog überblicken können.
Zusätzliche Merkmale und Zusammenhänge als Eigenschaften von Anforderungen können helfen die Übersicht für sich selbst und andere zu bewahren.
==a==Aufwanadschätzung==a==
Die Aufwandschätzung für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings dann mehrere Aufgaben, für die dann der Aufwand präziser geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch im Anforderungskatalog aktualisiert werden.
Bei mehreren Hundert Anforderungen reicht das nicht. Man muss bedenken: Projekte können Jahre dauern. Was heute aufgrund einiger verinnerlichter Zusatzinformationen für einen selbst übersichtlich erscheint, kann in einem Jahr bereits unüberschaubar sein, weil diese Information dann fehlt. Außerdem müssen auch andere einen Anforderungskatalog überblicken können.
Zusätzliche Merkmale und Zusammenhänge als Eigenschaften von Anforderungen können helfen die Übersicht für sich selbst und andere zu bewahren.
==a==Aufwanadschätzung==a==
Die Aufwandschätzung für die Umsetzung von Anforderungen sollte im IT-Bereich in Personentagen reichen. Aus den Anforderungen ergeben sich allerdings dann mehrere Aufgaben, für die dann der Aufwand präziser geschätzt werden kann. Der auf diese Weise genauer ermittelte Aufwand kann im späteren Verlauf im Rahmen des Anforderungsmanagements auch im Anforderungskatalog aktualisiert werden.
Deletions:
Doch bei mehreren Hundert an Anforderungen reicht selbst das nicht. Projekte können Jahre dauern. Was heute übersichtlich erscheint, kann in einem Jahr unüberschaubar sein. Außerdem müssen auch andere einen Anforderungskatalog überblicken können.
Merkmale und Zusammenhänge als Eigenschaften von Anforderungen können helfen die Übersicht für sich selbst und andere zu bewahren.
Additions:
==a==Strukturierung von Anforderungen==a==
Mit zunehmende Anzahl von Anforderungen wird eine reine Liste mit Anforderungen sehr unübersichtlich. Eine große Hilfe kann hier eine Filterfunktion und eine Sortierfunktion sein. Nichts, was man nicht mit einer heute üblichen Tabellenkalkulation machen könnte. Der Anforderungstyp wurde schon oben erwähnt. So könnte bereits nach der Anforderungsnummer sortiert und nur die funktionalen Anforderungen angezeigt werden.
Doch bei mehreren Hundert an Anforderungen reicht selbst das nicht. Projekte können Jahre dauern. Was heute übersichtlich erscheint, kann in einem Jahr unüberschaubar sein. Außerdem müssen auch andere einen Anforderungskatalog überblicken können.
Merkmale und Zusammenhänge als Eigenschaften von Anforderungen können helfen die Übersicht für sich selbst und andere zu bewahren.
~-**Abhängigkeit** – Anforderungen können voneinander abhängig sein. So ist es interessant zu wissen, ob eine Anforderung erst erfüllt werden kann, wenn eine andere umgesetzt wurde.
~-**Gruppieren** – Thematisch zusammenhängende Anforderungen, können gruppiert werden. So kann beispielsweise ein bestimmte Eingabemaske oder ein teil eines Gerätes oder von Software gemeint sein.
~-**Teams** – arbeiten mehrere Teams an einem Projekt, so ist es sehr hilfreich, wenn bei Fragestellungen, sie ein bestimmtes Team betreffen nur die Anforderungen die das Team betreffen angezeigt werden können.
~-**Status** – Generell kann man hier zwischen umgesetzt und nicht ungesetzt unterscheiden. Aber eine Anforderung kann auch zur Überarbeitung markiert sein, weil Fragen aufgekommen sind; oder einfach als irrelevant markiert werden. So können beispielsweise bereits umgesetzte Funktionen ausgeblendet werden.
Die Strukturierung hilft bei der Arbeit mit den Anforderungen - dem Anforderungsmanagment.
Die Liste mit Anforderungen, egal welcher Art, muss während der Projektlaufzeit gepflegt werden, was ggf. in __sehr großen Projekten__ eines Anforderungsmanagement (siehe weiter unten) oder auch [[RequirementsEngineering Requirements Engineering]] bedarf.
Mit zunehmende Anzahl von Anforderungen wird eine reine Liste mit Anforderungen sehr unübersichtlich. Eine große Hilfe kann hier eine Filterfunktion und eine Sortierfunktion sein. Nichts, was man nicht mit einer heute üblichen Tabellenkalkulation machen könnte. Der Anforderungstyp wurde schon oben erwähnt. So könnte bereits nach der Anforderungsnummer sortiert und nur die funktionalen Anforderungen angezeigt werden.
Doch bei mehreren Hundert an Anforderungen reicht selbst das nicht. Projekte können Jahre dauern. Was heute übersichtlich erscheint, kann in einem Jahr unüberschaubar sein. Außerdem müssen auch andere einen Anforderungskatalog überblicken können.
Merkmale und Zusammenhänge als Eigenschaften von Anforderungen können helfen die Übersicht für sich selbst und andere zu bewahren.
~-**Abhängigkeit** – Anforderungen können voneinander abhängig sein. So ist es interessant zu wissen, ob eine Anforderung erst erfüllt werden kann, wenn eine andere umgesetzt wurde.
~-**Gruppieren** – Thematisch zusammenhängende Anforderungen, können gruppiert werden. So kann beispielsweise ein bestimmte Eingabemaske oder ein teil eines Gerätes oder von Software gemeint sein.
~-**Teams** – arbeiten mehrere Teams an einem Projekt, so ist es sehr hilfreich, wenn bei Fragestellungen, sie ein bestimmtes Team betreffen nur die Anforderungen die das Team betreffen angezeigt werden können.
~-**Status** – Generell kann man hier zwischen umgesetzt und nicht ungesetzt unterscheiden. Aber eine Anforderung kann auch zur Überarbeitung markiert sein, weil Fragen aufgekommen sind; oder einfach als irrelevant markiert werden. So können beispielsweise bereits umgesetzte Funktionen ausgeblendet werden.
Die Strukturierung hilft bei der Arbeit mit den Anforderungen - dem Anforderungsmanagment.
Die Liste mit Anforderungen, egal welcher Art, muss während der Projektlaufzeit gepflegt werden, was ggf. in __sehr großen Projekten__ eines Anforderungsmanagement (siehe weiter unten) oder auch [[RequirementsEngineering Requirements Engineering]] bedarf.
Deletions:
Additions:
~-Anforderungserhebung und -management der [[http://www.sophist.de SOPHISTen]] (Sophist2007)
Deletions:
Additions:
Literatur, Normen, Organisationen und Beispiele zum Thema Anforderungserhebung und -management:
~-Konferenz: [[http://www.requirementsdays.de Requirements Days]]
~-Konferenz: [[http://www.requirementsdays.de Requirements Days]]
Deletions:
Additions:
~-Software Requirements Specification nach [[http://de.wikipedia.org/wiki/Software_Requirements_Specification IEEE 830]]
Additions:
~-[[AnforderungsKatalog Anforderungskatalog]] im Sinne der DIN 69905 ist die "Auflistung von Anforderungen, durch deren Erfüllung ein angestrebtes Projektziel erreicht werden soll." (kann auch Bestandteil eine Lastenheftes sein)
Deletions:
Additions:
~-ein [[Lastenheft]]
~-im Entwicklungsprozess [[Scrum]] kann das [[ProductBacklog Product Backlog]] eine Anforderungskatalog sein; muss aber nicht!
~-Anforderungskatalog im Sinne der DIN 69905 ist die "Auflistung von Anforderungen, durch deren Erfüllung ein angestrebtes Projektziel erreicht werden soll." (kann auch Bestandteil eine Lastenheftes sein)
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Es ist natürlich jedem selbst überlassen sich dagegen zu wären. Es hilft aber nichts. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den [[Stakeholder Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
~-vor allem die Priorisierung bestehender Anforderungen!
~-die Priorisierung von neuen Anforderungen
~-das Kommunizieren von Änderungen an die Entwicler
~-[[Lastenheft]] und Glossar (Balzert2000, S. 62)
~-im Entwicklungsprozess [[Scrum]] kann das [[ProductBacklog Product Backlog]] eine Anforderungskatalog sein; muss aber nicht!
~-Anforderungskatalog im Sinne der DIN 69905 ist die "Auflistung von Anforderungen, durch deren Erfüllung ein angestrebtes Projektziel erreicht werden soll." (kann auch Bestandteil eine Lastenheftes sein)
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Es ist natürlich jedem selbst überlassen sich dagegen zu wären. Es hilft aber nichts. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den [[Stakeholder Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
~-vor allem die Priorisierung bestehender Anforderungen!
~-die Priorisierung von neuen Anforderungen
~-das Kommunizieren von Änderungen an die Entwicler
~-[[Lastenheft]] und Glossar (Balzert2000, S. 62)
Deletions:
~-im Entwicklungsprozess [[Scrum]] ein [[ProductBacklog Product Backlog]]
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den [[Stakeholder Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
~-die Priorisierung neuen und alten Anforderungen
~-die Pflege der Anforderungsliste
~-das Kommunizieren von Änderungen
~-Lastenheft und Glossar (Balzert2000, S. 62)
Additions:
~-Die Anforderungen müssen präzise nach vorher definierten Vorgaben formuliert werden. Dazu passend: [[AnforderungenFormulieren Formulierung von Anforderungen]]
So werden Anforderungen Formuliert: [[AnforderungenFormulieren Formulierung von Anforderungen]]
So werden Anforderungen Formuliert: [[AnforderungenFormulieren Formulierung von Anforderungen]]
Deletions:
So werden Anforderungen Formuliert: [[http://de.wikipedia.org/wiki/Anforderungserhebung#Sammeln.2C_Analysieren Wikipedia:Anforderungserhebung:Sammeln und Analysieren]]
Additions:
~-[[http://www.re-wissen.de/Wissen/ Praktiken im Requirements Engineering]] auf re-wissen.de
Additions:
Es gibt viele Arten und Empfehlungen für Anforderungserhebung und -management, wie man Anforderungen erheben und verwalten kann. Fakt ist: Meistens wird oft viel weniger Aufwand hinter der Anforderungsermittlung, -spezifikation und -pflege vermutet, als tatsächlich zur Umsetzung und zum Erfolg des Produkts benötigt wird.
Wichtig: Verwenden Sie für den Einstieg, also das erste Projekt indem sie das ausprobieren wollen, keine speziellen Tools zum Verwalten von Anforderungen. Lesen Sie dazu: [[DasToolUndDerGlaube Das Toll und der Glaube an die Erlösung]]
Literatur, Normen und Beispiele zum Thema Anforderungserhebung und -management:
~-IEEE 830 - Software Requirements Specification
~-IEEE 1233 - Guide for Developing System Requirements Specifications
Wichtig: Verwenden Sie für den Einstieg, also das erste Projekt indem sie das ausprobieren wollen, keine speziellen Tools zum Verwalten von Anforderungen. Lesen Sie dazu: [[DasToolUndDerGlaube Das Toll und der Glaube an die Erlösung]]
Literatur, Normen und Beispiele zum Thema Anforderungserhebung und -management:
~-IEEE 830 - Software Requirements Specification
~-IEEE 1233 - Guide for Developing System Requirements Specifications
Deletions:
Wichtig: Verwenden Sie für den Einstieg, also das erste Projekt indem sie das ausprobieren wollen, keine speziellen Tools zum verwalten von Anforderungen. Lesen Sie dazu: [[DasToolUndDerGlaube Das Toll und der Glaube an die Erlösung]]
Einige Beispiele zum Thema Anforderungserhebung und -management sind:
Additions:
Was sich hinter den Eigenschaften der Anforderung und der Liste von Anforderungen verbirgt, wird unter [[http://de.wikipedia.org/wiki/Anforderungserhebung#Sammeln.2C_Analysieren Wikipedia:Anforderungserhebung:Sammeln und Analysieren]] genau erklärt.
~~-Das ist eine beachtliche Leistung? Der Stakeholder schätzt diese Anforderung sehr.
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den [[Stakeholder Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
Wichtig: Verwenden Sie für den Einstieg, also das erste Projekt indem sie das ausprobieren wollen, keine speziellen Tools zum verwalten von Anforderungen. Lesen Sie dazu: [[DasToolUndDerGlaube Das Toll und der Glaube an die Erlösung]]
~~-Das ist eine beachtliche Leistung? Der Stakeholder schätzt diese Anforderung sehr.
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht indem man in Kontakt mit den [[Stakeholder Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
Wichtig: Verwenden Sie für den Einstieg, also das erste Projekt indem sie das ausprobieren wollen, keine speziellen Tools zum verwalten von Anforderungen. Lesen Sie dazu: [[DasToolUndDerGlaube Das Toll und der Glaube an die Erlösung]]
Deletions:
~~-Das ist eine beachtliche Leistung? Der Stake holder schätzt diese Anforderung sehr.
Anforderungen ändern sich während der Projektlaufzeit - das ist ein Naturgesetz. Die Liste der Anforderungen sollten deshalb stets aktualisiert werden. Das geschieht idem man in Kontakt mit den [[Stakeholder Stakeholdern]] bleibt und dabei in regelmäßigen Abständen über Status der Umsetzung der Anforderungen berichtet, die Ergebnisse möglichst vorführt und dabei die neuen Anforderungen aufnimmt, die geänderten korrigiert, die unwichtigen herausnimmt und stets die gesamte Liste der Anforderungen neu priorisiert.
Additions:
~-[[AnforderungenPrioritaetenFuzzyLogic Fuzzy-Logic-System]] zum Ermitteln der Priorität
Deletions:
Additions:
Als Voraussetzung für eine Anforderungsanalyse müssen die [[Stakeholder]] bekannt sein und bestenfalls nach Priorität sortiert vorliegen.
Die Interessen __aller__ [[Stakeholder]] an einem Produkt und alle Randbedingungen (Normen, Standards, Bestimmungen) müssen erfasst und als Anforderungen formuliert werden.
Zu berücksichtigen ist
~-Jeder Stakeholder wird befragt, aber die Priorität sollte berücksichtigt werden
~-Fragestellungen und Vorgehensmodelle der [[Usability Gebrauchstauglichkeit]] (Usability) sind hier genau richtig.
Möglicherweise, es ist sogar sehr wahrscheinlich, werden nicht alle Anforderungen als Eigenschaften des Produkts umgesetzt. Empfehlenswert ist es jedoch, dass die wichtigsten Anforderungen umgesetzt werden. Es lohnt sich die Anforderungen zu priorisieren um Vorweg die Prioritäten bei der Umsetzung festzulegen.
Hierzu können die folgenden Fragen bereits bei der Anforderungsanalyse helfen:
Die Interessen __aller__ [[Stakeholder]] an einem Produkt und alle Randbedingungen (Normen, Standards, Bestimmungen) müssen erfasst und als Anforderungen formuliert werden.
Zu berücksichtigen ist
~-Jeder Stakeholder wird befragt, aber die Priorität sollte berücksichtigt werden
~-Fragestellungen und Vorgehensmodelle der [[Usability Gebrauchstauglichkeit]] (Usability) sind hier genau richtig.
Möglicherweise, es ist sogar sehr wahrscheinlich, werden nicht alle Anforderungen als Eigenschaften des Produkts umgesetzt. Empfehlenswert ist es jedoch, dass die wichtigsten Anforderungen umgesetzt werden. Es lohnt sich die Anforderungen zu priorisieren um Vorweg die Prioritäten bei der Umsetzung festzulegen.
Hierzu können die folgenden Fragen bereits bei der Anforderungsanalyse helfen:
Deletions:
Möglicherweise, es ist sogar sehr wahrscheinlich werden nicht alle Anforderungen als Eigenschaften des Produkts umgesetzt. Empfehlenswert ist es jedoch, dass die wichtigsten Anforderungen umgesetzt werden. Es lohnt sich die Anforderungen zu priorisieren um Vorweg die Prioritäten bei der Umsetzung festzulgen.
Hierzu können die folgenden Fragen helfen:
Additions:
Siehe dazu auch die Definitionen in Sophist2007, S. 13
~-Die Anforderungen müssen präzise nach vorher definierten Vorgaben formuliert werden. Dazu passend: Formulierung von Anforderungen (Sophist2007, S. 234), Qualitätskriterien von Anforderungen (Sophist2007, S. 28) und [[http://de.wikipedia.org/wiki/Anforderungserhebung#Sammeln.2C_Analysieren Wikipedia]]
~-Die Anforderungsliste muss den Entwickler in die Lage versetzen, Teile des Produkts umzusetzen, so wie es die [[StakeHolder Stakeholder]] tatsächlich __benötigten__ (nicht so wie es [[StakeHolder Stakeholder]] formulieren - eine wahrhaftig schwere Aufgabe).
~-Die Anforderungen müssen präzise nach vorher definierten Vorgaben formuliert werden. Dazu passend: Formulierung von Anforderungen (Sophist2007, S. 234), Qualitätskriterien von Anforderungen (Sophist2007, S. 28) und [[http://de.wikipedia.org/wiki/Anforderungserhebung#Sammeln.2C_Analysieren Wikipedia]]
~-Die Anforderungsliste muss den Entwickler in die Lage versetzen, Teile des Produkts umzusetzen, so wie es die [[StakeHolder Stakeholder]] tatsächlich __benötigten__ (nicht so wie es [[StakeHolder Stakeholder]] formulieren - eine wahrhaftig schwere Aufgabe).
Deletions:
~-Die Anforderungsliste muss den Entwickler in die Lage versetzen, Teile des Produkts umzusetzen, so wie es die Stakeholder tatsächlich __benötigten__ (nicht so wie sie es formulieren - eine wahrhaftig schwere Aufgabe).