Agile-ASPICE Saga: Demonstrating SWE.1 BP1 & BP2 with Real-World OEM Car Infotainment Examples
Shobha Singh
Solution Train Engineer at BT| Agile Coach | SAFe? 6 SPC | Proud Ex-BOSCHLER | Proud Ex-Accenturian
Welcome to Episode 7 of the Agile-ASPICE Saga, where we take a deep dive into the world of software development practices. In this episode, we're excited to bring you a practical example from the OEM (Original Equipment Manufacturer) world. We'll use this example to illustrate the application of both Base Practice 1 and Base Practice 2. So, let's jump right in and explore how these practices come to life in a real-world scenario! ????
Now, let's explore an example of an OEM (Original Equipment Manufacturer) requirement for car infotainment systems to better illustrate Base Practice 1 & 2.
Example
Scenario: Imagine you're developing a car infotainment system, and you want to structure your software requirements.
Identify the software functions or capabilities & Grouping - It can be done based on different components of the system.
In Jira, you can group to components that represent the functional areas of your car infotainment system. These components could be tagged as component name or label or team name in JIRA.
Analyse component level requirement and break them into Epic & Features -
Let's take further example of "Bluetooth Connectivity".
Component: Bluetooth Connectivity (It can be tagged as component name or label or team name in JIRA)
Portfolio Epic: Seamless Device Pairing
Feature 1: Automatic Device Detection
Feature 2: Multi-Device Pairing
Feature 3: Hands-Free Calling
Feature 4: Voice Commands for Bluetooth
Break it further to User Stories along with functional & non-functional requirements -
Feature 1: Automatic Device Detection
User Story 1: As a driver, I want my car's infotainment system to automatically detect and pair with my smartphone via Bluetooth when I enter the vehicle so that I can seamlessly use my phone's functions hands-free and enjoy a safe and convenient driving experience.
or
As Shobha, a daily commuter, I want my car's infotainment system to automatically detect and pair with my smartphone via Bluetooth when I enter the vehicle so that I can seamlessly use my phone's functions hands-free and enjoy a safe and convenient driving experience.
Functional Requirement (Example): The infotainment system shall have the capability to detect nearby Bluetooth devices and initiate pairing automatically upon detecting a compatible device.
Non-Functional Requirement (Example): The automatic device detection process shall take no longer than 5 seconds to complete.
Feature 2: Multi-Device Pairing
User Story 2: As a driver, I want the infotainment system to support pairing with multiple Bluetooth devices simultaneously, such as my phone and a passenger's phone so that both I and my passengers can connect our phones to the car's infotainment system at the same time, allowing us to enjoy our preferred music, make calls, and use apps without the hassle of reconnecting each time we switch.
Functional Requirement (Example): The infotainment system shall allow users to pair with and maintain connections to multiple Bluetooth devices simultaneously.
Non-Functional Requirement (Example): The system shall support a minimum of 5 concurrent Bluetooth connections without performance degradation.
Feature 3: Hands-Free Calling
User Story 3: As a driver, I want to make and receive calls using the infotainment system's Bluetooth connectivity while keeping my hands on the wheel so that I can stay focused on driving and keep my hands on the wheel, ensuring a safer and more convenient phone call experience.
Functional Requirement (Example): The infotainment system shall provide a hands-free calling feature that allows users to initiate and receive phone calls using voice commands.
Non-Functional Requirement (Example): Voice recognition for hands-free calling shall achieve an accuracy rate of at least 95%.
Feature 4: Voice Commands for Bluetooth
User Story 4: As a user, I want to control Bluetooth-connected devices using voice commands, ensuring a safe and convenient driving experience so that I can stay focused on driving and keep my hands on the wheel, ensuring a safer and more convenient phone call experience.
Functional Requirement (Example): The infotainment system shall support voice commands for controlling Bluetooth-connected devices, including initiating calls and adjusting audio settings.
领英推荐
Non-Functional Requirement (Example): Voice commands for Bluetooth control shall exhibit a response time of less than 2 seconds.
Sorting the user stories & features logically -
Automatic Device Detection (User Story 1): First, make sure the system can find and connect to your phone when you get in the car.
Hands-Free Calling (User Story 3): Next, focus on allowing drivers to make calls safely without using their hands.
Multi-Device Pairing (User Story 2): Now, work on letting multiple devices connect at the same time.
Voice Commands for Bluetooth (User Story 4): Lastly, add voice commands to control connected devices.
You're basically deciding what's most important and what needs to come before others. This sorting ensures that the features related to Bluetooth connectivity progress in a logical sequence, with automatic device detection as the foundational capability followed by hands-free calling, multi-device pairing and voice command functionality building upon it. And remember, you can change this order if needed as the project goes on.
Categorization of features or user stories -
For categorization, let's tag these features based on their focus areas:
Feature 2: Multi-Device Pairing (Security: Allowing secure pairing with multiple devices)
Feature 3: Hands-Free Calling (Security: Ensuring safe phone usage while driving)
Feature 4: Voice Commands for Bluetooth (UI: Enabling voice control for Bluetooth devices)
Feature 1: Automatic Device Detection (Performance: Quick and reliable device detection)
This categorization helps in organizing and understanding the areas of emphasis for each feature.
Prioritization of features or user stories -
Component: Bluetooth Connectivity
Portfolio Epic 1: Seamless Device Pairing
Prioritization: High
Description: This feature allows drivers to make and receive calls using the infotainment system's Bluetooth connectivity while keeping their hands on the wheel. It enhances safety and convenience.
Prioritization: Medium
Description: This feature enables the infotainment system to automatically detect and pair with a driver's smartphone via Bluetooth when they enter the vehicle. It enhances the user experience by reducing manual steps.
Prioritization: Medium
Description: This feature allows users to control Bluetooth-connected devices using voice commands. It enhances safety and convenience by minimizing distractions while driving.
Prioritization: Low
Description: This feature enables the infotainment system to support pairing with multiple Bluetooth devices simultaneously, such as a driver's phone and a passenger's phone. While valuable, it may be of lower priority compared to hands-free calling and automatic device detection.
This prioritization is based on the perceived importance and impact of each feature on the user experience and safety. Hands-free calling is prioritized highest as it directly enhances safety, while multi-device pairing, though valuable, is of lower priority as it may be a less common use case. Prioritization can be further refined through discussions with stakeholders and users.
As we wrap up this episode, remember that just as a well-organized & structured software requirements make development smoother. In episode 8, we will dive deeper into SWE.1.BP3: 'Analyze software requirements,' where we'll uncover the secrets to dissecting and understanding requirements effectively. So, stay tuned for the next exciting installment of the Agile-ASPICE Saga, where we continue our journey toward mastering Agile practices in the world of ASPICE!"