互联网产品研发流程概论一、研究背景1、提高研发计划性产品开发流程每个环节都涉及时间排期,这些时间管理要素可以有效控制项目时间表。2、提高研发效率通过明确开发团队每个角色的职责和协作方式,让每个成员只需严格按照规范做好自己的工作即可高效协作,降低沟通成本。3、保证产品质量通过确保每个环节的输入输出结果,让最终产出的产品得到有效保证。4、及时发现问题通过各环节过程数据,方便管理人员深入了解问题。二、研发流程要点1、明确团队角色责权利每个角色都有明确分工和职责,以及业绩和晋升规则,从根本上保障团队执行力。2、明确项目管理工具通过项目管理工具将分解每个角色的工作任务,并形成高效信息流转。除了产品经理和项目经理需要通观全局外,其他每个角色只需及时关注自己负责的部分即可。3、明确研发流程最重要的是针对每个环节明确该环节的上下游关系,以及该环节作业的输入和输出内容。三、产品研发团队研发团队是产品研发管理的核心,建立强有力的产品研发核心团队是成功的关键步骤。1、组建团队产品研发核心团队通常由产品经理(1名)、研发经理(1名)、研发人员(5-10名)组成。产品开发涉及的职责分配到各位成员身上。2、角色与分工(1)产品经理产品经理是产品管理职位,负责市场调查并根据用户的需求,确定开发何种产品,选择何种技术、商业模式等。并推动相应产品的开发组织,他还要根据产品的生命周期,协调研发、营销、运营等,确定和组织实施相应的产品策略,以及其他一系列相关的产品管理活动。(2)研发经理研发经理是技术研发管理职位,负责了解项目的需求,系统分析,做相关的技术选型,制定开发计划与开发规范。(3)产品设计师产品设计师是产品策划职位,负责将客户需求转换为具体的产品形态。(4)架构师架构师是软件系统和网络系统的设计师,负责确认和评估产品需求、搭建软件研发和网络系统的核心构架、并扫清主要难点。架构师着眼于“技术实现”,能对常见场景快速给出最恰当的技术解决方案,并能评估团队实现功能需求的代价。架构师分为软件架构师和系统架构师两类,分别专注于软件开发和系统运维两个阶段的系统设计。(5)交互设计师交互设计师是功能设计职位,负责根据需求文档设计交互原型。(6)视觉设计师视觉设计师是界面设计职位,负责根据需求文档和交互设计文档设计出产品视觉界面。(7)Web前端工程师Web前端工程师是界面研发职位,负责根据架构设计文档和界面设计稿,使用Web技术(HTML/CSS/JavaScript等)进行Web产品界面开发,并调用Server端接口实现Web应用。(8)APP开发工程师APP开发工程师是APP界面研发职位,负责根据需求文档和界面设计稿开发出APP客户端界面,并调用Server端接口实现APP应用。(9)测试工程师测试工程师是软件质量的把关者,负责根据需求文档编写测试用例、执行测试任务、提交测试Bug、跟进Bug修正等。(10)运维工程师运维工程师是产品发布职位,负责维护并确保整个服务的高可用性,同时不断优化系统架构、提升部署效率、优化资源利用率提高整体ROI。四、项目管理工具推荐腾讯敏捷开发平台TAPD,这是腾讯内部正在使用的敏捷产品研发平台,微信、QQ、腾讯视频等产品,都是通过TAPD进行产品技术项目研发管理。1.打开TAPD平台首页2.注册系统帐号3.借助企业微信配置权限4.支持需求研发全流程管理贯穿敏捷研发生命周期,帮助团队敏捷迭代,小步快跑。通过迭代进行目标制定与计划评审,完成工作分配,使用故事墙与燃尽图进行研发过程跟踪。迭代全程目标清晰,进度可控,研发过程敏捷迭代,小步快跑。支持Web版本、PAD版、手机版。五、主要流程环节产品研发流程分为以下阶段:立项阶段、设计阶段、开发阶段、测试阶段、上线阶段、磨合阶段、运营阶段、总结阶段。1、立项阶段立项阶段从公司战略分解开始,然后通过市场调研获取客户需求,然后梳理产品方向形成产品提案给产品委员会审批,审批通过后正式进入产品研发阶段。(1)市场调研需求调研就是通过调研筛选典型客户,并对这些客户的需求细节进行汇总和梳理。典型客户一般都通过用户画像的形式进行描述。对已有产品,可以直接通过数据统计部门拿到用户画像数据。用户画像一般都是通过抽样方法,随机抽取一批客户(例如1%或者1万个以下)进行问卷调查。QQ早期用户画像数据对新产品则需要先约定大致客户群特征,然后针对这个群体做抽样问卷调查。问卷设计一般都需要产品经理完成,然后可以找专业调研公司去实施。新华信协助QQ音乐产品团队进行用户调研(2)客户需求分析客户需求分析就是将调研过程中涉及的需求信息,根据需求重要程度分级,优先满足客户基础需求,也就是我们常说的客户痛点。腾讯视频的需求层次分析V1.0(3)编写产品提案立项阶段主要是要输出产品提案,提交给公司产品委员会决策。产品提案也就是“商业需求文档”,简称BRD(BusinessRequirementDocument),是基于商业目标或价值所描述的商业需求。其核心用途是用于在投入研发之前,为企业高管层提供决策评估依据。其内容涉及产品概述、市场需求、竞争环境、重要性、成功要素、营销策略、盈利预测等内容,一般比较短小精炼,不包含产品细节。支付宝用户事业部产品提案模板(4)提交产品决策委员会评审提案评审主要是判断以下要点:与战略关联关系是否紧密?产品价值有多大?资源投入有多大?公司产品决策委员会根据提交的产品提案进行评估,评估流程如下图所示:产品决策委员会决策流程2、产品设计产品设计分为输出概念设计、输出功能清单、输出需求概要文档、输出需求详情文档等步骤。(1)产品概念设计概念设计是非常关键的产品环节,简单明确的概念不仅让客户更容易理解,也让产品研发过程思路清晰、少走弯路。而且,概念设计也是软件架构师将产品概念转化为技术对象化模型的关键环节。以支付宝产品为例,就是采用了“钱包”概念模型。钱包里有现金、银行卡,也可以放身份证、名片、照片、小票、发票等。区分好需求层级,产品交互体验的层次和用力程度自然就出来了。支付宝钱包用户产品模型(2)确定产品功能组合根据产品概念模型和需求优先级,确认关键性的功能要点。QQ音乐关键功能要点(3)确定功能清单然后对功能进行树状化梳理,把所有功能点都整理到一个列表里。QQ影音产品功能清单V1.0这些功能点后续都作为需求点加入项目管理系统TAP中,方便团队所有成员沟通和完善这个功能清单。形成功能清单初稿后,产品经理需要先在产品团队中组织讨论完善,然后再找运营团队沟通完善,然后是找交互视觉团队补充完善,最后再找研发项目经理、研发、测试、运维等角色沟通完善。这个过程既是帮产品经理完善的过程,也是形成团队共识、激发团队热情的过程。(4)输出需求概要文档概要文档明确某个功能模块下的功能介绍,一般是多个功能点的描述。需求概要一般由产品经理负责撰写,不包含功能细节描述。为了方便与产品设计师们沟通需求,可以将主要功能界面草稿加入该文档中,用原型草图能更好地描述主要功能。腾讯视频PC版播放模块的需求概要文档有了某个模块的需求概要文档后,研发项目经理组织团队沟通需求概要。产品经理首先介绍需求概要然后由其他团队成员提出自己关心的专业问题。会前产品经理提前分享文档,并收集准备大家的问题点。会后主架构师根据需求概要做架构设计框架,研发工程师也可以针对自己负责的模块做技术预研。有经验的工程师,往往在这个阶段就开始试着做个Demo,把主体功能流程跑通,这样在正式进入研发时就会比较轻松,专注于细节完善和产品质量。(5)输出需求详情文档需求详情文档由产品设计师负责编写。需求概要中的需求点,每个都需要单独编写需求详情文档,而不是把所有的需求详情都写在一个文档里。这样会导致需求详情文档非常长,内容庞杂,这个会导致后续很多问题。需求点最好都能拆分到1周内能完成研发测试比较好,这样才能有效实现敏捷开发。腾讯视频PC版自动登录需求文档需求文档并不是产品设计师一个人闭门造车就能写出来的。产品设计师需要频繁与交互、运营、视觉、用户研究(UER)、架构师、测试经理、开发、运维等人员沟通。沟通的过程更多是产品设计师学习和融合各个角色思考的过程,同时也让各个角色的工作更加明确。一般需求文档的编写分成以下步骤:第1步:根据需求概要设计用户操作流程图。第2步:根据用户操作流程拆分各个界面,绘制主界面草图加入文档,再分别描述每个界面的主要元素和功能点,再描述界面之间交互的逻辑,最后加上交互背后涉及的业务逻辑。第3步:找运营沟通需求,根据运营人员的建议补充营销位、运营后台工具等内容。第4步:找交互设计师沟通交互细节,根据交互设计师的疑问补充界面中的交互逻辑。交互设计师完成交互设计稿后,将交互稿截图并加入文档,并完善交互逻辑说明。第5步:找视觉设计师沟通视觉细节,提醒视觉设计师突出重点。视觉设计师完成设计稿后,将设计稿截图并加入文档,并完善视觉界面说明。第6步:找架构师沟通算法和技术逻辑,根据架构师提出的疑问完善业务逻辑。第7步:找测试经理沟通测试用例,根据测试经理提出的疑问完善功能细节。因为测试经理需要写测试用例,测试用例是以需求文档为蓝本,如果需求文档不清楚必然会导致测试用例不完善,因此测试经理往往对产品设计师的帮助很大,甚至会比产品设计师更了解产品细节。第8步:找UER做功能调研。UER将需求文档转化为调研文档,然后通过产品体验群、邀请客户当面体验等方式找出产品设计中的问题。然后UER反馈给产品经理,产品设计师合并优化成产品需求详情文档。有的公司UER调研也是由产品设计师承担,但是专业性上有可能难以保障。第9步:找产品经理、研发项目经理、运维确认需求文档,并初步确定排期。(6)需求评审如果之前编写过程与每个角色都有了充分的沟通,需求评审就会变得很轻松愉快。否则,产品经理和产品设计师将会陷入无止境的辩论中,往往动辄就让整个团队消耗了几个小时还无法形成结论。因此,需求评审的关键就是产品设计师事先做好评审会的一切准备。提前准备好所有资料并提前发给团队所有成员,并事先与所有角色都逐一确认过关键问题,而且得到了产品经理和研发项目经理的确认。在评审会上,先讲总体,再讲重要细节,再讲次重要细节,并层层确认。对于会议上争议较大的问题点,5分钟后还没结论的马上记录下来,会后再单独讨论。如果问题点太多,就说明产品设计师还没考虑清楚,那就尽早结束会议,重新修改后再召开评审。这种情况会严重影响产品团队的声誉,因为耽误的是所有人的时间。为了减少这种风险,需求评审一定要提前1-2周召开,而不要等到开发前夕才进行评审。3、交互设计交互设计主要是将产品经理的功能设计,用原型图和交互流程的形式展现出来,方便与用户及团队进行沟通。交互设计原型将产品经理提供的产品原型草图具象化,减少了需求不确定性,保证产品功能可用性。腾讯设计完整流程图(1)交互设计需求分析交互设计需求分析主要是要回答以下问题:A)重点是给哪些角色看?涉及交互稿的角色很多,几乎每个角色都需要,但是只要有专业细致的交互稿,也就能满足所有角色的需求了,无需针对每个人提供不同的交互稿版本。产品经理:产品经理需要将交互稿截图合并到需求文档,提供给各个角色作为需求源。视觉设计师:需要以交互设计稿为基础,设计出每个界面的PSD文档。研发经理:需要通过交互设计稿,判断需要调配哪些角色参与,大概需要多少时间。架构师:需要通过交互设计稿,梳理出软件架构设计,特别是功能流程设计与软件架构和网络架构设计紧密相关。Web前端开发:需要通过交互设计稿,确认网页界面是如何串联起来的。这里不仅涉及功能流程设计,也包括交互细节。APP客户端开发:需要通过交互设计稿,确认APP软件界面是如何串联起来的。这里不仅涉及功能流程设计,也包括交互细节。后台开发:需要通过交互设计稿,确认采用哪种后台调用方式,以及如何通过交互设计让用户在面对网络延迟等情况时体验更佳。测试:需要通过交互设计稿,编写功能测试用例,以及每个交互体验细节的测试用例。用户研究:需要通过交互设计稿,访谈客户,让客户更容易理解产品功能,从而获得更有效的反馈。B)用户场