《软件需求》读书笔记NO.2

        之前我们了解了什么是软件需求,他需要解决的问题,那么软件需求的首要是什么呢?当然是客户,那么客户是怎样思考的呢?

        在软件开发过程中。要求开发一个新信息系统的客户通常并不懂得从系统的实际用户处得到信息的重要性。市场人员在有了一个很不错的新产品想法后,也就自认为能充分代表产品用户的兴趣要求。然而,直接从产品的实际用户处收集需求有着不可替代的必要性。通过对8 3 8 0个项目的调查发现,导致项目失败的最主要的两个原因是缺乏用户参与和不完整的需求以及不完整的规格说明(Standish 1995)只有实际用户才能描述他们要用此系统必须完成的任务。但他们又不能指出完成这些任务所有具体的功能需求。这时候就需要与客户交流,从客户的交流中知道客户到底需要什么。

       那么什么是客户?客户是指直接或间接从产品中获得利益的个人或组织。软件客户包括提出要求、支付款项、选择、具体说明或使用软件产品的项目风险承担者或是获得产品所产生的结果的人。他们能说清楚要使用该产品完成什么任务和一些非功能性的特性,而这些特性会对使用户很好接收具有该特点的产品是重要的。优秀的软件产品是建立在优秀的需求基础之上的。而高质量的需求来源于客户与开发人员之间有效的交流与合作。通常,开发人员与客户或客户代理人,如市场人员间的关系反而会成为一种对立关系。双方的管理者都只想自己的利益而搁置用户提供的需求从而产生摩擦,在这种情况下,不会给双方带来一点益处。只有当双方参与者都明白要成功自己需要什么,同时也应知道要成功合作方需要什么时,才能建立起一种合作关系。由于项目压力与日渐增,所有风险承担者有着一个共同的目标这一点容易被遗忘。其实大家都想开发出一个既能实现商业价值,又能满足用户需要,还能使开发者感到满足的优秀软件产品。

客户具有的权利:

1. 要求分析人员使用符合客户语言习惯的表达。
2. 要求分析人员了解客户系统的业务及目标。
3. 要求分析人员组织需求获取期间所介绍的信息,并编写软件需求规格说明。
4. 要求开发人员对需求过程中所产生的工作结果进行解释说明。
5. 要求开发人员在整个交流过程中保持和维护一种合作的职业态度。
6. 要求开发人员对产品的实现及需求都要提供建议,拿出主意。
7. 描述产品使其具有易用、好用的特性。
8. 可以调整需求,允许重用已有的软件组件。
9. 当需要对需求进行变更时,对成本、影响、得失(t r a d e - o ff)有个真实可信的评估。
10. 获得满足客户功能和质量要求的系统,并且这些要求是开发人员同意的。

客户具有的义务:

给分析人员讲解业务及说明业务方面的术语等专业问题。
2. 抽出时间清楚地说明需求并不断完善。
3. 当说明系统需求时,力求准确详细。
4. 需要时要及时对需求做出决策。
5. 要尊重开发人员的成本估算和对需求的可行性分析。
6. 对单项需求、系统特性或使用实例划分优先级。
7. 评审需求文档和原型。
8. 一旦知道要对项目需求进行变更,要马上与开发人员联系。
9. 在要求需求变更时,应遵照开发组织确定的工作过程来处理。
10. 尊重需求工程中开发人员采用的流程(过程)。

只有从深程度了解客户,用户,才能清晰的知道他们到底需要什么,想做什么,想要的效果。

原文地址:https://www.cnblogs.com/zll20153246/p/8302371.html