轻量级过程改进之需求开发

需求开发是指通过对用户需求进行分析,开发产品需求的过程。需求开发在于把面向用户的需求转换为面向研发团队的需求的过程,回答研发团队“我们要做什么样的产品”的问题。需求开发直接面向研发团队,是用户需求传递到研发团队中的必要一环。本文主要阐述在项目需求开发过程中涉及的主要规程、可能存在的问题、分析这些问题并提出相应的改进措施。

一.需求开发的规程

在轻量级过程改进系列的上下文中,关于需求管理和需求开发的区别和联系已经在“需求管理”这一改进域中有明确说明,这里不再展开。该上下文可能每个团队都有不同的理解和诠释,但需求开发的主要任务就是让研发团队获取产品的需求并根据产品需求进行系统设计和实现,需求开发通常也是一项跨职能团队的活动,通常包括的规程有:

1.      需求分析
  • 目的:需求分析就是一个产品需求定义的过程,通过分析来自项目线的各项需求并结合产品线现有功能进行产品需求开发和管理,确保产品需求能够满足产品平台建设和项目线的需求管理。
  • 主要角色:产品经理主导
  • 主要步骤:产品管理团队需要收集产品需求,一方面来自于项目线的输入,另一方面也需要进行市场分析。在现有产品需求的基础上,使用需求分析和定义的工具方法进行系统建模,并形成《产品需求说明书》。
2.      需求评审
  • 目的:对于产品需求和用户需求一样同样需要应用评估策略以确保需求的正确性,用户需求我们使用需求确认和客户达成一致,对产品需求而言我们使用的则是正式的评审。需求评审确保产品需求对现有产品结构以及未来的产品战略起到补充和完善作用。
  • 主要角色:产品经理主导,各研发小组的负责人参与
  • 主要步骤:召开需求评审会议,由产品经理主导会议议程,项目、技术、运营等团队参与需求会议并对产品需求进行评审,评审结果形成正式的《产品需求说明书》。

二.需求开发中的问题

需求开发在本系列文章中属于产品管理范畴,主要是以产品经理为代表的产品管理团队进行工作展开,产品管理难度很大,除了需求开发过程还有产品平台、标准化等多项工作,所以这里的产品需求开发只从需求分析定义的角度出发进行讨论,相对比较简单,主要涉及的是需求分析的工具和方法论,存在的问题可能有:

1.      需求定义的粒度和维度不合理

需求定义普遍存在的一个问题是需求的粒度和维度问题,也就是我们如何进行需求分解和描述的问题。不合理的需求定义粒度会加大研发工作的管理难度,因为研发范围的管理通常都会以产品需求的定义粒度为基准,粒度太大不便信息同步,粒度太小则加大管理成本。从维度上讲,一份对非功能性需求以及其他辅助性需求有明确定义的需求会对研发工作的展开和度量起到促进作用,反之则需要一定的协调工作才能对这些需求进行定义和开发。

2.      需求定义的展现方式太单一

有时候需求定义的表现形式很重要,无论是用户体验驱动的互联网产品还是业务领域驱动的企业级应用,找到合适的需求定义方式并不容易,需要根据具体产品进行灵活把握。但无论何种产品需求定义,采用多样化的表现形式往往能更好的表达需求本身的含义,确保研发团队能够快速直观的进行需求理解。很多需求难以理解和维护就是因为其表现形式过于单一,不利于团队充分把握需求的细节。

3.      缺乏统一的需求建模过程

需求分析过程中进行需求建模是必要的,建模的程度可能视系统特点和复杂性而异,但我们都应该采用一种被团队普遍认可的、统一的建模方式进行需求的梳理。缺少需求建模的结果就是每个需求定义人员都可能有自身的一套规则和方法,可能导致不同的人对同一份需求有不同的理解和维护方式,在团队协作环境下就形成一种无形的壁垒从而降低了工作效率。

三.需求开发的过程改进

需求开发更多涉及的是对如何高效的把用户需求和产品特点展现给研发人员的过程,对需求开发过程改进的切入点包括:

1.      关注产品需求的分解

需求分解的通用原则无论对用户需求和产品需求都同样有用,但通常产品需求的粒度和维度都会比用户需求更加需要斟酌,因为产品需求是开发人员对产品理解的主要来源,直接影响研发团队的开发计划和系统设计。关注产品需求分解也是一个裁剪的过程,需要根据团队认知的现状以及产品开发的特点达到一种平衡。

2.      关注建模工具的使用

本质上需求分析可以理解为一个系统建模的过程,系统建模也是一个很大的领域,无论是结构化分析方法还是面向对象的建模手段都能够为我们提供一个系统模型。在需求开发的改进过程中,使用统一的系统建模工具能够确保产品需求符合目前业界主流的分析和定义风格,确保团队成员尤其是研发人员对产品需求得到充分认识,消除不必要的歧义和误解。

3.      关注需求的表现形式

不同团队可以使用不同的需求表现形式,但需确保团队理解和认同这种表现形式。上文提到的需求定义展现方式单一的问题是改进过程中的一个关注点。另一方面,表现形式务必做到统一。

针对上述切入点,我们梳理需求管理过程改进的模式和实践包括:

1.      确立配置管理理念和流程

需求管理中提到的对需求的配置管理理念和流程同样适用于需求开发过程,这里不再展开。

2.      灵活应用各种“武器”

产品经理手中应有一些产品需求开发的武器,这些武器从不同的方面对产品需求进行展现,这里列举几项个人认为比较重要又容易把握的武器:

  • Feature列表:Feature列表是产品需求的一种分解模式,也是一种量化方式,通过需求->模块->功能线->功能点的分析形成的Feature列表,能够帮助整个研发团队对产品需求形成一致认识,也为研发团队进行研发任务拆分、计划安排和过程管理提供基础,Feature列表参考下图:

  • User Case:用例是对功能的一种有效描述,而用例本身的表现形式多种多样,这里不展开讨论,大家可以参考Alistair Cockburn的《Writing Effective Use Cases》,下面是其中的一种表现形式:

  • 系统原型:系统原型是一种产品需求的可视化表现形式,为研发团队甚至客户提供一份系统视觉和用户交互上的产品需求,常见的系统原型开发工具有Axure RP和Mockups等,使用Mockups开发的系统原型类似:

3.      开展系统建模工作

系统建模的方法论有很多,如结构化分析、面向对象、领域驱动等,作为这些方法论的支持性工具,UML是目前主流的系统建模工具。UML既可以作为需求分析建模,也可以进行系统设计建模,这里举UML顺序图作为需求分析建模的一个例子,如下图:

四.需求开发的过程资产

1.      产品需求说明书

产品需求说明书主要包括以下要点:

  • 产品整体介绍,包括产品的目的、用户群体、范围、角色、分解的原则、表现形式等
  • 系统功能性需求,包括界面风格、各个功能模块和功能点介绍
  • 系统非功能性需求,包括软硬件环境、质量要求等

五. 小结

需求开发属于产品管理类改进域,相比需求管理更加偏向于团队内部的规范。需求开发通常会与产品平台和标准化建设紧密结合,改进过程中也主要关注产品需求的定义和表现形式。但产品管理远不止需求开发,关于产品的定位分析、产品功能的优先级等决策等我们将在后续产品管理类改进域中进行详细阐述。

时间: 2024-10-27 00:20:43

轻量级过程改进之需求开发的相关文章

轻量级过程改进之需求管理

需求管理在于管理产品研发过程中的客户需求,建立项目相关干系人对需求的共同理解,维护需求与所开发产品之间的一致性,并控制需求的变更.需求管理的重要性不言而喻,在前面讲到的项目启动.项目计划以及接下去要讲的项目监控这几个改进域中,客户需求都是我们开发工作的输入和基础,研发团队存在的意义也是围绕着客户的需求,以满足客户需求.提高客户满意度为工作的目标,项目管理团队更是如此.本文主要阐述在项目需求管理过程中涉及的主要规程.可能存在的问题.分析这些问题并提出相应的改进措施. 一. 需求管理的规程 关于需求

轻量级过程改进之综述

轻量级过程改进(Light-weight process improvement,LPI)是一种针对中小型团队软件研发过程中普遍存在的重技术轻管理.研发管理缺乏规范.过程改进理念淡薄等现状和问题而整理的一种"软件过程改进方法和规范".有众多轻量级过程改进域组成,主要对中小型团队持续地改进其软件过程能力提供一些參考,内容组织上尽量保持其通用性,但个人水平和经验有限,非常多改进域可能仅仅局限于特定团队和场景,须要大家依据各自团队的现状做裁剪和扩充. 一.轻量级过程改进 轻量级过程改进參考了

轻量级过程改进之绩效管理

绩效管理是对团队成员进行工作评估和激励的过程,虽然很多时候会由人事部门进行员工的绩效管理,但对研发团队而言,技术人员的绩效管理很难把控,所以很多团队往往对绩效管理避而远之,采用管理层主观判断的方法进行绩效把控:有些团队虽然会做一些绩效管理,但只是关注于绩效考核,而忽略绩效背后的工作计划.评估.激励以及过程改进.个人认为研发团队的绩效管理是一项很有挑战性的工作,但难度再大首先还是要理一下思路,尤其作为轻量级过程改进的一环,绩效管理的目的并不是说能够达到很完善的程度,而是先做到60分,然后通过团队整

轻量级过程改进之项目计划

项目计划的目的包含两个主要方面,对内是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照该计划有条不紊地开展工作:对外是为客户提供项目的统一视图,确保所有干系人能够根据计划进行工作配合.进度同步并最终提高客户对项目实施进度的满意度和认可度.本文主要阐述在项目计划过程中涉及的主要规程.可能存在的问题.分析并提出相应的改进措施. 一.项目计划的规程 项目计划过程涉及面很广,按照集成项目管理理念,项目计划除了项目实施计划之外还需要集成各种子计划,如<配置管理计划>.<质量保证计划&

轻量级过程改进项目启动

项目开始时的研究和开发的源泉,在r \\ u0026研发团队而言是一个很大的事情,然而,项目启动是不是easy事儿,这个过程必须满足很多条件才能真正启动项目,否则,非正规甚至是不合理的项目才会开始进行研究和开发工作陷入困局.本文主要侧重于过程中涉及的项目启动程序.可能出现的问题.措施. 本文中的场景指的是产品线的已有产品须要通过项目实施推广给客户的过程. 一.项目启动的规程 项目启动是一项跨部门活动.通常包含的规程有: 1.      项目立项建议 目的:项目立项建议的目的是通过前期客户接触和分

轻量级过程改进之项目启动

项目启动作为研发工作的源头,对研发团队而言是一件大事情,然而项目启动却不是一件容易的事情,在流程上需要满足很多条件才能真正启动项目,否则不正规甚至是不合理的项目启动只会为让研发工作陷入困局.本文主要阐述在项目启动过程中涉及的主要规程.可能存在的问题.分析这些问题并提出相应的改进措施.本文中的场景指的是产品线的已有产品需要通过项目实施推广给客户的过程. 一.项目启动的规程 项目启动是一项跨部门活动,通常包括的规程有: 1.      项目立项建议 目的:项目立项建议的目的是通过前期客户接触和分析,

软件工程过程 第7章 软件工程过程改进

1.软件工程过程评估模型描述了作为有效过程特征的元素的结构化集合.这些评估模型提供了:P201 过程改进的出发点 业界过去经营的结晶 共同的语言和共享的构想 活动优先次序的框架 2.基于软件工程过程评估模型进行过程改进可以帮助组织或个人建立过程改进的目标和优先次序,协助改进过程,并为确保建立一个稳定.有能力的以及成熟的过程提供指南.P202 ISO 9001 CMM/CMMI ISO/IEC 15504 (SPICE) 3.软件质量管理体系由三部分要素构成:软件质量管理体系的框架.生存期基本活动

有项目管理模板提供吗?(模板和管理工具对过程改进的帮助)

过程改进的美好愿望 不少朋友包括公司管理者有这样的美好愿望: 1)能借鉴某大企业的现成流程和模板,最好能直接拿来用,期望能在短时间内提升自己公司的研发流程水平: 2)希望能有一套研发管理流程工具,帮助将这些流程和模板等落地,降低流程实施的成本和管理的成本. 两次惨痛的过程改进教训 我曾经也有过类似的美好愿望,而我当时的老板也是,结果我们经历了两次的惨痛教训. 第一次: 公司要过ISO,请来了咨询公司,上了一套管理工具和流程模板,而我的项目是执行这个流程的主力.咨询公司无法解释清楚这套流程和管理工

测试计划及过程改进

目录 软件测试计划的概念 制定软件测试计划的好处 谁来负责制定软件测试计划 编写软件测试计划的时间 软件测试计划的要素 软件测试计划模板 软件测试计划维护与评审 什么是CMMI CMMI的级别 CMM五级模型 什么是ISO 什么是ISO9000 CMMI和ISO9000的比较 软件测试计划的概念 一个叙述了预定的测试活动的范围.途径.资源及进度安排的文档.它确认了测试项.被测特征.测试任务.人员安排,以及任何偶发事件的风险. 制定软件测试计划的好处 项目经理.高层经理等相关领导能够根据测试计划做