I am working on a project where we develop an embedded application for a Linux-based device handling data from different sensors and visualizing them to the end user. We try to use Scrum process but came across different difficulties related to our and management team perception of Requirements Engineering.
Basically Scrum recommends User Stories maintained in a Backlog prioritized by the Product Owner. Scrum assumes that there is no "requirements freeze" or single document describing the project at the start. User stories can be added "on demand" when stake holders thinks they are necessary to have a "releasable" software version.
On the other hand embedded system due to tight coupling with hardware need upfront specification of different system features, e.g.
- HW / SW interfaces (e.g. shared memory between main CPU and FPGA)
- Data formats, what and how will be stored with what frequency
- hard real time requirements, how fast must the system react on certain events
- interaction with other disciplines, eg. HW, optics, mechanics
What are the best practices to handle requirements engineering in embedded systems in a lightweight (Agile) way (in contrary to e.g. automotive processes) ?