Scaled Agile - Functional Requirements, Features, Non Functional Requirements, Enablers

Value streams are composed of and managed as a set of Business Features that represent some unit of business value. Business Features are defined in terms of Functional and Non-Functional requirements. Product Owners define the business requirements and acceptance criteria for a business feature.  Architecture and technical owners associate Non-Functional Requirements with the same Business Features.

  • Functional Requirements and Acceptance Criteria describe Features Product Owner's point of view. 
  • Non Functional Requirements are a second requirement stream that defines the structure needed to support the Functional Requirements and thus the business system.

As an example, the house building equivalent of FRs and NFRs could be the following:

  1. Functional Requirements would be the number of bedrooms, number of bathrooms, cabinet types, and the type and color of the flooring.
  2. Non Functional Requirements represent the building code, the type of insulation, the load weight of the roof, the type of plumbing and electrical, and additional items like smoke detectors or sewer traps.
Non Functional Requirements often require some type of platform or runway type work before that creates code or infrastructure or something crosscutting that should be implemented outside of a Business Feature.  This enabling work is captured in the backlog as Technical Features or Enablers.  The enablers become dependencies in the Business Features that require the enabling work in order to meet the NFR.

Video

https://youtu.be/sTUccQ8QG0I

Features and Enablers

Teams work on the Feature backlog. The Feature level backlog consists of two logical types that can overlap. The logical breakdown is something like this:
  1. Business Features describe the business value with Functional Requirements.  They implement the business value defined by a set of Functional Requirements and associated Acceptance Criteria.
  2. Enablers are technical features that provide scaffolding for Non Functional Requirements that can be leveraged by different Business Features.  Enablers are often dependencies of multiple Business Features.
Business Features depend on Enablers for needed scaffolding and cross-cutting implementations. Enablers are the technical or architectural runway. Enablers build out dependencies preceding Business Features in work streams.

In our house analogy: 
  • Electrical and water are run to a home site before the actual construction begins.

Backlog Management

Backlog management tools typically only have one type at the feature level.  The work item type is often simply called "Feature". We map technical and business units of delivery to that same Feature type flagging the different types with other metadata.

Business Features

  • Product Owners and Product Managers 
    1. Define the Functional Requirements and create Business Features.  
    2. They refine the Acceptance Criteria
    3. Attach any standard NFRs 
    4. Pass the work item on to Architecture or Workstream teams to do additional technical refinement
  • Architecture and Technology
    1. Determine if any additional technology acceptance criteria need to be added.
    2. Create Architectural runway Enablers that required by this Feature
    3. Link existing or new Enablers to this Business Feature
  • Troika
    1. Prioritize and size as part of Feature Prioritization

Technical Enablers

  • Architecture and Technology 
    1. Examine upcoming or prioritized business features.
    2. Determine if there is any needed platform or technological underpinnings.
    3. Make some basic decisions as to whether the work can be done as part of a business feature or if it needs to be sized, prioritized and worked on as its own feature-level unit of work.
    4. Create a Technical Enabler if it is a cross-cutting or general-purpose functionality that requires its own prioritization

  • Troika
    1. Prioritize and size like any other feature

Video

<tbd>
created 2022/08

Comments

Popular posts from this blog

Understanding your WSL2 RAM and swap - Changing the default 50%-25%

Accelerate Storage Spaces with SSDs in Windows 10 Storage Pool tiers

Java 8 development on Linux/WSL with Visual Studio Code on Windows 10