Requirements Engineer
- Requirements Engineer
(a.k.a., Business Analyst, Business System Analyst, Requirements Analyst, and Systems Analyst)
- the role that is played when a
person performs
requirements engineering tasks during an
endeavor
As illustrated in the preceding figure, Requirements Engineer is part of the following inheritance hierarchy:
The typical role-specific responsibilities of a Requirements Engineer are to:
- Engineer the requirements for an system.
- Engineer the requirements for an application.
- Engineer reusable requirements for an application domain.
- Engineer the requirements for a reusable component.
Requirements Engineer typically inherits the
general role responsibilities from the
Role method component.
To fulfill these responsibilities, requirements engineers typically should have the following
personal characteristics, expertise, training, and experience:
- Able to think abstractly and work at high-levels of abstraction (i.e., able to work with requirements without
being drawn into the details of design and implementation decisions).
- Able to successfully manage the multiple concurrent issues, ambiguities, and contradictions that typically occur
during requirements engineering.
- Able to collaborate well with customer representatives, domain experts, managers, and architects.
- Flexible when confronted with evolving goals and requirements.
- A deep and practical understanding of the theory, practice, and tools of requirements engineering.
- Deep knowledge and experience in requirements analysis techniques such as use case modeling and object modeling.
- Excellent verbal and written communications skills that can be used to clarify and effectively specify requirements.
- Basic knowledge of the customer’s overall business and the relevant application domain(s).
- Academic courses, conference tutorials, or on-the-job training (OJT) in requirements engineering including
both functional requirements (e.g., use case modeling) and non-functional requirements.
- A bachelor’s degree in systems engineering, software engineering, or the equivalent.
- Have significant (e.g., one year) actual experience on a requirements team successfully
engineering requirements on similar endeavors.
Requirements Engineers typically perform the following role-specific tasks in an iterative,
incremental, parallel, and time-boxed manner:
Requirements Engineer typically inherits
common role tasks from the
role method component.
Requirements Engineers typically perform these tasks as members of the following teams:
As members of these teams, Requirements Engineers typically produce all or part of the following work products:
The following guidelines have proven useful with regard to Requirements Engineers:
- Persons who play the requirements engineer role often come from a technical, managerial, or marketing background.
- However, requirements engineer is not a part-time role that a manager or a domain expert can lightly take on.
Persons typically require explicit training in requirements engineering to be sucessful requirements engineers.
- This role typically inherits the
common team guidelines from the
roles method component.
- Although requirements engineers are also known in industry as business analysts, business systems analysts, requirements
analysts, and systems analysts, we use the term ‘requirements engineer’
for the same reasons that we call the activity ‘requirements engineering’:
- Requirements involve more than just analysis.
- Requirements are critical to the success of an endeavor and consequently need to be engineered
to have the necessary qualities.