Requirements engineering is a systematic and disciplined approach to identify, specify and manage requirements with the following goals:
1. Understanding and documenting the stakeholders’ desires and needs, specifying and managing requirements to minimize the risk of delivering a system that does not meet the stakeholders’ desires and needs.
2. Knowing relevant requirements, achieving a consensus among the stakeholders about them, documenting them according to given standards and managing them systematically.
Requirements engineers analyze and synthesize information provided by customers, staff, IT professionals and executives. They elicit the actual needs of stakeholders, not simply capture their expressed desires. Requirements engineering activities may be performed in many job titles or organizational roles.
Requirements engineering practitioners include requirements engineers, business systems analysts, systems analysts, product managers, product owners, enterprise analysts, business architects, management consultants and interaction design professionals.
Need for good requirements engineering
As per a study by TechRepublic (http://www.techrepublic.com/blog/tech-decision-maker/study-68-percent-of-it-projects-fail/), it is estimated that around 68% of projects fail due to poor requirements engineering. Majority of customer expectation mismatches can be attributed to poor requirements.
Hence, it is extremely essential that we focus on identifying and documenting complete requirements for all projects.
As per the TechRepublic study mentioned above, two third of system errors in production are due to requirements errors.
Developers develop solutions as per their understanding of requirements. Unclear, incomplete, or wrong requirements lead to development of wrong solutions.
Complete and correct requirements are the basis for successful system development. Discovering gaps in requirements early avoids tedious change control processes.