Requirement Management
Requirements are the basis of software development. Every software development projects intention is to implement requirements. However, there are basically two major things which can go wrong with that: On the one hand, it could happen that wrong or incorrect requirements are implemented correctly, or on the other hand, that correct requirements can be implemented incorrect or in a wrong way.
Those risks, mentioned above, might have various root causes. Firstly, requirements are usually not static. It's in most of the cases not so simple that those are initially defined once and afterwards implemented straight ahead. This starts with the fact, that requirements are usually defined from a "high level perspective" and need to be refined later onwards. Already this refinement changes the original requirement so that it could even lose its primary intent. Further evolution could brings additional, real changes (i.e. with regards to the contents) due to the fact, that the product perhaps needs to get different functionality to that from the first draft.
Furthermore in many cases, it is quite a difficult matter to precisely and correctly note down all necessary items needed to make a requirement quite clear and understandable. Due to that, wrong notes or wording could lead to uncertainties and, as a result, to wrong interpretation which might have far reaching consequences for the software product.