需求工程师
需求阶段的错误在后期的纠错成本,远高于软件设计和实现阶段的错误的纠错成本,因此需求工程是软件工程领域非常关键的分支之一。
软件⼯程师、计算机科学家与数学家的 cold joke
一天,软件工程师、计算机科学家和数学家在圆明园相遇,他们看 到湖面上游来一只黑天鹅,于是不约而同地使用各自领域的建模方法描述这只黑天鹅:
- 在软件工程师的模型中,将天鹅建模为黑色的: ;
- 计算机科学家的模型中,仅将一部分天鹅建模为黑色的: ;
- 数学家的模型则是:在圆明园,有一个湖上,存在至少一只天鹅,它的一面是黑色的… :
软件工程师做出尽可能简化问题复杂度的假设,计算机科学家要找出不失一般性的解决方法,数学家追求对问题描述的精确性。
什么是合格的需求工程师?
现代需求工程师应当具备这些能力:
- 分析问题和解决问题的能力
- 人际沟通及交流能力
- 软件工程知识和技能
- 应用领域有关知识
- 书面语言组织和表达能力
优秀需求工程师应当追求这些目标:
- 对环境或系统的错误假设,
- 确保描述的一致性,
- 提升对标准和规范的依从性,
- 减少团队和个人间的误解,
- 提高支持人员的反应速度和效率,
- 提升客户满意程度,
- 撰写优质的需求文档
需求定义
需求是对外可见的系统特征,关注的是系统的特征描述。