Agile Stories are Actually Requirements
Glen Alleman MSSM
Applying Systems Engineering Principles, Processes & Practices to Increase Probability of Program Success for Complex System of Systems, in Aerospace & Defense, Enterprise IT, and Process and Safety Industries
It's popular in the Agile community to speak about User Stories and how they are?Not requirements.?
As a System Engineer, here's some background on Systems Architecture and Requirements Engineering.
Let's start with some background about Systems and their engineering. Every system is a component of a more extensive system. This will take us from the lowest level up the Universe as a system. Large systems are the environment in which the component system operates.?
Systems are made up of layered sets of subsystems and layered sets of supersystems. This layer structure defines a set of essential requirements that meet the needs of the context or environment without imposing specific implementation constraints. These requirements reflect the architectural and design decisions that satisfy the essential?requirements needed to provide capabilities to the system's user.
Let's start with the characteristics of a system. People make systems. Systems have the following attributes:
Back to Stories as Requirements
Let's consider Stories as components of Features and Features as components of Capabilities. We can model the evolution of software development with a hierarchy of?objects, each with an attribute.? ??
The notion that Agile Stories are NOT requirements is similar to the stalking horse of Waterfall development.
Let's look at an actual definition of a requirement from the Systems Engineering discipline point of view. There is a credible complaint between business and developers that the business should not define the design of the solution but rather state what capabilities are needed to fulfill the business's mission. The implication is that customers and management should not design the solution. There are reasons for placing restrictions on the implementation, though.?
These and others are the basis of?requirements constraints and impact the?evolution of the components of the system. This contradicts the naive notion that suitable architectures emerge from the developers. Which is counter to all sound Systems Engineering Architecture principles [1], [2], and [3]
Back to the notion of requirements and User Stories
A requirement is a statement, usually in conventional narrative form, of one or more related stakeholder needs that a system must fulfill
This description narrative of a requirement comes in several forms, including:
领英推荐
A Primitive Requirement that is?
A statement containing enough detail for design decisions, expressible in the form on an indivisible sentence with? single verb actioning on a single object
A Performance Requirement that is a?
A statement expressing how well the system must conform with one or more Primative Requirements. Performance requirements measure respnse times, repetition rates, accuracy.
An example of this approach is the statement
The system shall calculate aircraft position at least once every 10 seconds with an accuracy of 15 meters to provide the users of the system (pilots or operators) with the ability to navigate along a desired course to a defined destination?
Those agile advocates who claim user stories are NOT requirements may want to learn about systems engineering principles and how to apply them in an agile domain before making such statements.
In the Systems Engineering paradigm, Stories as requirements means stating
“As a user, I need the systems to perform it’s function over the temperature range of -20℃ to +40℃ with no more than 1 failure in 2000 hrs of continuous operation"
However, we have to remember that not all systems are requirements-driven and are not driven by?formal requirements. An example is a city, where it is likely that no one sits down and writes a requirements specification and builds the city. Cities and towns emerge from a set of guidelines (building codes and urban plans) from settlements and grow into large systems, roads, and buildings. The original settlers of Manhatten Island never dreamed what their creation would evolve into. [1], pp. 27.
Resources for the Basis of Requirements and Their Description of Capabilities
[1] Systems Architecting: Creating and Building Complex Systems
Retired
6 个月If Agile stories aren’t requirements, despite being statements of user-desired [system] functionality, then it’s not clear they have any value in building a software system.