Subscribe to our newsletter
Stay informed about the nearshoring and software engineering trends shaping the future of your industry.
Why Requirements Management
The experience we have gained over many years in the field of software development has confirmed a well-known fact about the importance of Requirements Management.
There are two main reasons why Requirements Management is an important part of the software development process at Enlight Engineering:
- The lack of Requirements Management is one of the leading reasons for project failure
- Requirements Management is an integral part of QA that minimizes the risk that the delivered solution does not meet the needs of stakeholders. More precisely, Requirements Management increases the chance that the delivered solution satisfies business objectives, functional requirements, non-functional requirements as well as compliance with the standards that the solution needs to meet.
Important Aspects of Requirements Management
The Requirement Management includes, but is not limited to, the following aspects:
- Ensuring all stakeholders are aligned, so they can cooperate efficiently.
- Tracking requirements throughout the entire software development lifecycle to have a clear picture of the current project state and progress.
- Performing impact analysis to understand how the project scope and schedule are affected by requirement changes.
- Reducing requirements churn – minimizing unnecessary changes to requirements in the project.
- Validating compliance requirements if the software solution needs to satisfy industry standards or regulations.
All these aspects must be taken int account if we want to minimize the risk that delivered solution does not meet business objectives and stakeholder needs.
How Does Enlight Implement Requirements Management
The best way to cover all aspects mentioned in the previous chapter is to use the Requirements Traceability Matrix. Here is how we do it in Enlight:
- Defining business objectives and defining the project scope with the focus on the MVP
- Based on the previous point define what should be delivered by the requirements traceability matrix.
Typically, the goals are:
- prove that compliance requirements for the product have been met
- all requirements have been implemented, tested and passed before the product is shipped
- reporting project status
- Based on the goals, define which artifacts should be included in the Requirements Traceability Matrix and set up the relationship between them (link them forward and backward).
The most basic matrix should include:
- Business requirements
- User Stories
- Tasks
- Tests
- Test results
- Static code analysis results
- Issue/Bug
- Setup continuous integration pipeline to automatically create and link artifacts such are test results and static code analysis results
Tools and Integration
Typically, we use well-known tools such as:
- Jira - requirement management and task management
- TestLink and RTM Jira plugin - test management and requirement management
- Jenkins - continuous integration
- Python unittest and Robot Framework – Testing Framework
- CANopen, J1939, Modbus, pro – ECU communication
- CompactRIO, LabJack, PLC and Raspberry Pi – testing equipment
And integrate them to automate requirements traceability.
Conclusion
As we've explored, Requirements Management serves as the compass guiding projects towards success by aligning stakeholders, maintaining a clear project trajectory, and mitigating risks through impact analysis and compliance validation. By adopting a proactive approach, embracing and integrating tools for requirements management, test management, task/issue management, continuous integration, etc. (like Jira, TestLink, and Jenkins), and implementing a robust Requirements Traceability Matrix, teams can forge the route to success.
In this intricate tapestry, Requirements Management stands as the silent architect, ensuring precision, coherence, and excellence in the realization of every project.