Requirements are produced and consumed by everyone involved in the production of software: end users, customers, product managers, project managers, sales, marketing, software architects, usability engineers, interaction designers, developers, and testers, to name a few.
Thus, requirements documentation has many different purposes.
It is used throughout development to communicate how the software functions or how it is intended to operate.
It is also used as an agreement or as the foundation for agreement on what the software will do.
This approach allows the architecture of a system (even a large solution) to evolve over time, while simultaneously supporting the needs of current users.
This avoids the stop-and-redesign phases inherent in phase-gated methods.
At the end working software is deployed to production. They coordinate the process to get ideas prioritized and user stories ready. But, how about all those technical features and aspects?
Developers must be able to update the code, test it and deploy it to multiple locations with high precision and velocity.
Software documentation is written text or illustration that accompanies computer software.
It either explains how it operates or how to use it, and may mean different things to people in different roles.
A second reason is that technical stakeholders like the Operations department are not always recognized as stakeholders.
And a third reason could be that technical stakeholders are unable to explain the business value or needs for technical changes to the Product Owners.