Agile-ASPICE Saga: Specify software requirements in Agile Software Requirements Analysis (SWE.1 BP1)

Agile-ASPICE Saga: Specify software requirements in Agile Software Requirements Analysis (SWE.1 BP1)

?? Welcome back to the Agile-ASPICE Saga! ?? Today, in episode 5, we'll explore Level 1 through the lens of Scrum or any Scale Framework, connecting Agile and ASPICE.

In ASPICE Level 1: Performed Process, focusing on SWE.1 - Software Requirements Analysis, there are several key elements to understand:

Process Purpose (SWE.1): The purpose of the Software Requirements Analysis process (SWE.1) is to transform system requirements related to software into a well-defined set of software requirements. It serves as the bridge between high-level system requirements and detailed software development.

Process Outcome (SWE.1): Successful implementation of SWE.1 results in several outcomes, including defining software requirements, categorizing and analyzing them, assessing their impact on the environment, prioritizing requirements, ensuring updates as needed, establishing traceability, evaluating for cost and technical impact, and reaching agreement among stakeholders.

Base Practices (SWE.1): Base Practices in SWE.1 are the essential activities and steps that must be followed to effectively execute the process. These practices guide the analysis of software requirements, ensuring correctness and verifiability.

Work Products (SWE.1): Work Products in SWE.1 are the tangible outputs produced during the process. They include well-defined software requirements documents and related artifacts that reflect the analyzed, prioritized, and traceable software requirements.

In essence, SWE.1 focuses on the transformation of system requirements into software requirements and emphasizes correctness, verifiability, and traceability throughout the process. It achieves these goals by following defined base practices and generating specific work products.


Now, let's dive into Base Practice 1 (SWE.1.BP1) - Specify Software Requirements, break it down into simpler terms, and explore how to practice it within any agile or Scrum framework.

SWE.1.BP1 - Specify Software Requirements:

In simple terms, this base practice is about defining what your software needs to do. Here's how it works:

Use System Requirements and Architecture: Start by looking at the big picture. Understand what the entire system is supposed to do and how it's supposed to work. This includes understanding both the system's requirements (what it needs to achieve) and its architecture (how it's structured).

Agile Practices: It involves collaborating with System Architects and Product Owners to understand the high-level system requirements and architectural design.

  • System-Level Epics: Start by considering System-Level Epics, which are high-level requirements or features that define the major functions and structure of the entire system.
  • Architecture: Establish an Architectural foundation or high-level architecture. This is a concept that focuses on creating and evolving the necessary architectural foundation to support upcoming features. It ensures that the system architecture aligns with the system requirements.

Work Products: The work product generated at this stage could include System Context Diagrams, High-Level System Requirements, and Architectural Overview Documents.


Identify Software Functions and Capabilities: Based on your understanding of the system, figure out what specific functions and features your software should have. What should it be able to do? What capabilities should it offer?

Agile Practices: It involves Product Owners, Product Managers, and Agile teams working together to define specific software functions and capabilities.

  • Features & its discovery (Enablers): Translate the identified functions and capabilities into Features. Features represent user-visible functionality which can enable to discovery phase of the feature which could be technical or ????? architectural work that supports future Features.
  • Program Backlog: Manage these Features and Enablers in the Program Backlog. This is a prioritized list that ensures that the most important functions and capabilities are addressed first.

Work Products: The work products generated here include a refined Product Backlog with well-defined User Stories or Features. Each User Story or Feature represents a specific software function or capability.


Functional and Non-Functional Requirements: Software requirements come in two main types: functional (what the software does) and non-functional (how well it does it). Specify both types in a document called the "software requirements specification." This document lays out exactly what your software needs to achieve, how it should behave, and any performance or quality criteria.

Agile Practices: In agile environment, both functional and non-functional requirements are discussed and agreed upon during refinement sessions, often involving Product Owners, Agile teams, and System Architects.

  • Acceptance Criteria: For each Feature or Enabler, establish clear and comprehensive Acceptance Criteria. These criteria define the expected behavior and quality standards for the software.
  • Definition of Done (DoD): You can use the "Definition of Done" to specify the completeness criteria for Features or Enablers. This ensures that both functional and non-functional requirements are met before work is considered complete.

Work Products: The work product here is the "software requirements specification." In an agile environment, this specification may be more lightweight, with detailed requirements captured in User Stories, and non-functional requirements documented alongside them. Additionally, non-functional requirements may be captured in the Definition of Done (DoD) for each User Story or Feature.

As we wrap up this exploration of SWE.1.BP1, remember that clear and accurate requirements are the foundation of successful software development. They provide a roadmap for development teams and ensure everyone is on the same page.

Stay tuned for our next episode, where we'll delve into SWE.1.BP2 - Analyze Software Requirements. Until then, keep your Agile-ASPICE journey rolling! ????"

Shankaran Ranganathan

Senior Manager|Artificial Intelligence|Machine Learning|Automotive Cybersecurity Practitioner|Trained Competent Assessor|Functional Safety Engineer|CMMI Associate|ISO|AS9100

1 年

Informative!Well presented

Cleder Gomes

Senior Process Manager | Agile Transformation, Automotive Process Improvement, ASPICE and SDV

1 年

Congratulations Shobha Singh , it's really awesome! The correlation between #ASPICE (automotive SW development in general) with Agile is not easy, and sometimes it is the root of some issues in the development. A clear overview, like you did, is really helpful. I am looking for the episode.

要查看或添加评论,请登录

Shobha Singh的更多文章

社区洞察

其他会员也浏览了