理顺软件开发各个环节-4(需求管理-软件需求-1)

 

4.4 软件需求分析

  软件需求分析,对开发团队而言,是软件开发工作的起点。 

  软件需求分析,是非常重要的节点,但实际情况是,在敏捷开发时代,很多研发团队错把产品需求作为软件需求。产品需求是以用户的语言表述的,而软件需求是开发人员的语言表达的,两者的受众是不同的。因此,软件需求分析不可省略。

  不做软件需求分析,我认为有以下问题:

  •  开发人员在开发软件时,根据产品需求,自己脑子里仍然有做软件需求分析,或者在草稿纸涂涂写写,梳理一下,这种“线下”的做法没有经过评审环节,质量难以保障,返工的情况很多;
  •  不同开发人员自己做的“线下”需求分析,相互之间沟通成本很高,软件需求碎片化,导致软件需求的完整性很成问题,开发的软件容易埋下更多的坑;
  •  没有文档化的软件需求分析,软件产品的维护成本很高。

  我认为,对产品需求的理解要完整,然后用开发人员理解的语言将之表达出来,即软件需求分析,基于此的系统分析设计才有可能符合产品需求,而不至于因为对某些需求的忽视,在后期加入时发现系统结构失效的情况发生。

4.4.1 软件需求分析节点关键信息

责任人:开发项目经理。

执行人:系统分析员、高级程序员或架构师。

关键行为:分析和沟通。

  • 分析:对产品需求进行分析,或者说对每个用户故事进行分析;

  • 沟通:

    • 与产品经理沟通;

    • 必要时,与最终用户沟通;

    • 与产品的上下游接口方沟通;

    • 开发团队内部的讨论沟通。

输入

  • 产品需求规格书;

  • UI&UE交互设计原型(如果有);

  • 用户故事;

  • 相关标准化文件:

    • 国际标准、规范;

    • 国家标准;

    • 行业标准;

    • 企业标准。

  • 相关外部接口文档。

输出

  • 软件需求规格书(SRS);

  • 数据字典(DD);

  • 相关接口文档。

职责要求

  • 完整地分析产品需求;

  • 分析每个产品需求项或用户故事:

    • 需求表达是否清晰?

    • 有无需要澄清的问题?如有,通过反复沟通来澄清;

    • 技术可行性:是否存在较大的未知技术风险,必要时预研一下;

    • 用户故事要素是否完备?

    • 特别是验收标准,如无,与产品经理一起商定,验收标准要合理。

      • 较高的标准:意味着较高的代价;

      • 较低的标准:用户体验差。

    • 暂不开发的需求项:需简单地评估技术可行性,避免依据局部需求而做出的设计方案不能满足未来需求;可以不详细展开分析。

  • 提请软件需求评审:

    • 需求分析人员:主讲人,负责讲解和答复各种质询和疑问;

    • 产品经理:评估产品需求是否被清晰、完整、无差错地表述,有无技术障碍;

    • 用户代表(市场、销售、客服):最好对业务比较熟悉,对代表的角色的需求较明晰,评估需求的完整性、准确性;

    • 项目经理:了解需求的相关方,便于协调开发、测试、部署资源;

    • 开发技术人员:了解软件需求,便于开发时对业务的理解;

    • 测试技术人员:了解软件需求,便于测试时对业务的理解,重点是需求的可验证性;

    • 运维人员:了解软件需求,对产品部署的需求。

 

 

posted @ 2020-05-18 11:21  阿拉伯1999  阅读(385)  评论(0编辑  收藏  举报