吴涛:互联网产品研制流程概论(上)

吴涛:互联网产品研制流程概论(上)

来源:OD体育亚洲官方 时间:2024-03-07 20:34:59 点击:
详细介绍:

  产品开发流程每个环节都涉及时间排期,这些时间管理要素能有效控制项目时间表。

  通过明确开发团队每个角色的职责和协作方式,让每个成员只需严格按照规范做好自己的工作即可高效协作,降低沟通成本。

  每个角色都有明确分工和职责,以及业绩和晋升规则,从根本上保障团队执行力。

  通过项目管理工具将分解每个角色的工作任务,并形成高效信息流转。除了产品经理和项目经理需要通观全局外,其他每个角色只需及时关注自己负责的部分即可。

  最重要的是针对每个环节明确该环节的上下游关系,以及该环节作业的输入和输出内容。

  研发团队是产品研制管理的核心,建立强有力的产品研发核心团队是成功的关键步骤。

  产品研发核心团队通常由产品经理(1名)、研发经理(1名)、研发人员(5-10名)组成。产品开发涉及的职责分配到各位成员身上。

  产品经理是产品管理职位,负责市场调研并按照每个用户的需求,确定开发何种产品,选择何种技术、商业模式等。并推动相应产品的开发组织,他还要依照产品的生命周期,协调研发、营销、运营等,确定和组织实施相应的产品策略,以及其他一系列相关的产品管理活动。

  研发经理是研发技术管理职位,负责了解项目的需求,系统分析,做相关的技术选型,制定开发计划与开发规范。

  架构师是软件系统和网络系统的设计师,负责确认和评估产品需求、搭建软件研发和网络系统的核心构架、并扫清主要难点。架构师着眼于“技术实现”,能对常见场景快速给出最恰当的技术解决方案,并能评估团队实现功能需求的代价。

  架构师分为软件架构师和系统架构师两类,分别专注于软件开发和系统运维两个阶段的系统设计。

  视觉设计师是界面设计职位,负责依据需求文档和交互设计文档设计出产品视觉界面。

  Web前端工程师是界面研发职位,负责根据架构设计文档和界面设计稿,使用Web技术(HTML/CSS/JavaScript等)进行Web产品界面开发,并调用Server端接口实现Web应用。

  APP开发工程师是APP界面研发职位,负责依据需求文档和界面设计稿开发出APP客户端界面,并调用Server端接口实现APP应用。

  测试工程师是软件质量的把关者,负责依据需求文档编写测试用例、执行测试任务、提交测试Bug、跟进Bug修正等。

  运维工程师是产品发布职位,负责维护并确保整个服务的高可用性,同时一直在优化系统架构、提升部署效率、优化资源利用率提升整体ROI。

  推荐腾讯敏捷开发平台TAPD,这是腾讯内部正在使用的敏捷产品研制平台,微信、QQ、qq视频等产品,都是通过TAPD进行产品技术项目研发管理。

  通过迭代进行目标制定与计划评审,完成工作分配,使用故事墙与燃尽图进行研发过程跟踪。迭代全程目标清晰,进度可控,研发过程敏捷迭代,小步快跑。

  产品研发流程分为以下阶段:立项阶段、设计阶段、开发阶段、测试阶段、上线阶段、磨合阶段、运营阶段、总结阶段。

  立项阶段从公司战略分解开始,然后通过市场调查与研究获取客户的真实需求,然后梳理产品方向形成产品提案给产品委员会审批,审批通过后郑重进入产品研制阶段。

  需求调研是通过调研筛选典型客户,并对这些客户的需求细节进行汇总和梳理。

  典型客户一般都通过用户画像的形式进行描述。对已有产品,可以直接通过数据统计部门拿到用户画像数据。用户画像一般都是通过抽样方法,随机抽取一批客户(例如1%或者1万个以下)进行问卷调查。

  对新产品则需要先约定大致客户群特征,然后针对这个群体做抽样问卷调查。问卷设计一般都需要产品经理完成,然后可以找专业调研公司去实施。

  客户需求分析就是将调研过程中涉及的需求信息,依据需求重要程度分级,优先实现用户基础需求,也就是我们常说的客户痛点。

  立项阶段主要是要输出产品提案,提交给公司产品委员会决策。产品提案也就是“商业需求文档”,简称BRD(Business Requirement Document),是基于商业目标或价值所描述的商业需求。其核心用途是用于在投入研发之前,为企业高管层提供决策评估依据。其内容涉及产品概括、市场需求、竞争环境、重要性、成功要素、经营销售的策略、盈利预测等内容,一般比较短小精炼,不包含产品细节。

  提案评审主要是判断以下要点:与战略关联关系是否紧密?产品价值有多大?资源投入有多大?

  产品设计分为输出概念设计、输出功能清单、输出需求概要文档、输出需求详情文档等步骤。

  概念设计是最重要的产品环节,简单明确的概念不仅让客户更容易理解,也让产品研制过程思路清晰、少走弯路。而且,概念设计也是软件架构师将产品概念转化为技术对象化模型的关键环节。

  以支付宝产品为例,就是采用了“钱包”概念模型。钱包里有现金、银行卡,也可以放身份证、名片、照片、小票、发票等。区分好需求层级,产品交互体验的层次和用力程度自然就出来了。

  这些功能点后续都作为需求点加入项目管理系统TAP中,方便团队所有成员沟通和完善这个功能清单。形成功能清单初稿后,产品经理需要先在产品团队中组织讨论完善,然后再找运营团队沟通完善,然后是找交互视觉团队补充完善,最后再找研发项目经理、研发、测试、运维等角色沟通完善。

  这个过程既是帮产品经理完善的过程,也是形成团队共识、激发团队热情的过程。

  概要文档明确某个功能模块下的功能介绍,一般是多个功能点的描述。需求概要一般由产品经理负责撰写,不包含功能细节描述。为了方便与产品设计师们沟通需求,可以将基本功能界面草稿加入该文档中,用原型草图能更好地描述主要功能。

  有了某个模块的需求概要文档后,研发项目经理组织团队沟通需求概要。产品经理首先介绍需求概要然后由其他小组成员提出自己关心的专业问题。会前产品经理提前分享文档,并收集准备大家的问题点。

  会后主架构师依据需求概要做架构设计框架,研发工程师也可以针对自己负责的模块做技术预研。有经验的工程师,往往在此阶段就开始试着做个Demo,把主体功能流程跑通,这样在郑重进入研发时就会比较轻松,专注于细节完善和产品质量。

  需求详情文档由产品设计师负责编写。需求概要中的需求点,每个都需要单独编写需求详情文档,而不是把所有的需求详情都写在一个文档里。这样会导致需求详情文档非常长,内容庞杂,这个会导致后续很多问题。需求点最好都能拆分到1周内能完成研发测试比较好,这样才可以有效实现敏捷开发。

  需求文档并不是产品设计师一个人闭门造车就能写出来的。产品设计师需要频繁与交互、运营、视觉、用户研究(UER)、架构师、测试经理、开发、运维等人员沟通。沟通的过程更多是产品设计师学习和融合各个角色思考的过程,同时也让各个角色的工作更加明确。

  第2步:按照每个用户操作流程拆分各个界面,绘制主界面草图加入文档,再分别描述每个界面的主要元素和功能点,再描述界面之间交互的逻辑,最后加上交互背后涉及的业务逻辑。

  第3步:找运营沟通需求,根据运营人员的建议补充营销位、运营后台工具等内容。

  第4步:找交互设计师沟通交互细节,根据交互设计师的疑问补充界面中的交互逻辑。交互设计师完成交互设计稿后,将交互稿截图并加入文档,并完善交互逻辑说明。

  第5步:找视觉设计师沟通视觉细节,提醒视觉设计师突出重点。视觉设计师完成设计稿后,将设计稿截图并加入文档,并完善视觉界面说明。

  第7步:找测试经理沟通测试用例,根据测试经理提出的疑问完善功能细节。因为测试经理需要写测试用例,测试用例是以需求文档为蓝本,如果需求文档不清楚必然会导致测试用例不完善,因此测试经理往往对产品设计师的帮助很大,甚至会比产品设计师更懂产品细节。

  第8步:找UER做功能调研。UER将需求文档转化为调研文档,然后通过产品体验群、邀请客户当面体验等方式找出产品设计中的问题。然后UER反馈给产品经理,产品设计师合并优化成产品需求详情文档。有的公司UER调研也是由产品设计师承担,但是专业性上有可能难以保障。

  如果之前编写过程与每个角色都有了充分的沟通,需求评审就会变得很轻松愉快。否则,产品经理和产品设计师将会陷入无止境的辩论中,往往动辄就让整个团队消耗了几个小时还没办法形成结论。

  因此,需求评审的关键就是产品设计师事先做好评审会的一切准备。提前准备好所有资料并提前发给团队所有成员,并事先与所有角色都逐一确认过核心问题,而且得到了产品经理和研发项目经理的确认。在评审会上,先讲总体,再讲重要细节,再讲次重要细节,并层层确认。

  对于会议上争议较大的问题点,5分钟后还没结论的马上记录下来,会后再单独讨论。如果问题点太多,就说明产品设计师还没考虑清楚,那就尽早结束会议,重新修改后再召开评审。这种情况会严重影响产品团队的声誉,因为耽误的是所有人的时间。为减少这种风险,需求评审一定要提前1-2周召开,而不要等到开发前夕才进行评审。

  交互设计主要是将产品经理的功能设计,用原型图和交互流程的形式体现出来,方便与用户及团队做沟通。交互设计原型将产品经理提供的产品原型草图具象化,减少了需求不确定性,保证产品功能可用性。

  涉及交互稿的角色很多,几乎每个角色都需要,但是只要有专业细致的交互稿,也就能满足所有角色的需求了,无需针对每个人提供不同的交互稿版本。

  产品经理:产品经理需要将交互稿截图合并到需求文档,提供给各个角色作为需求源。

  研发经理:一定要通过交互设计稿,判断需要调配哪些角色参与,大概要多少时间。

  架构师:一定要通过交互设计稿,梳理出软件架构设计,特别是功能流程设计与软件架构和网络架构设计紧密相关。

  Web前端开发:一定要通过交互设计稿,确认网页界面是如何串联起来的。这里不仅涉及功能流程设计,也包括交互细节。

  APP客户端开发:一定要通过交互设计稿,确认APP软件界面是如何串联起来的。这里不仅涉及功能流程设计,也包括交互细节。

  后台开发:一定要通过交互设计稿,确认采用哪种后台调用方式,以及如何通过交互设计让用户在面对网络延迟等情况时体验更佳。

  测试:一定要通过交互设计稿,编写功能测试用例,以及每个交互体验细节的测试用例。

  用户研究:一定要通过交互设计稿,访谈客户,让客户更容易理解产品功能,从而获得更有效的反馈。

  以注册登录为例,能够最终靠抽样监测从进入注册到登录完成每个步骤进行数据跟踪,然后得出转化率数据值,然后再跟竞品或类似产品做对比,不断的提高这个转化率。

  交互细节涉及点非常多,不同公司、不一样的产品都会有自己不同的交互设计风格和细节解决方法。为了能够更好的保证产品交互细节上的统一和规范,网络公司大多数都会制定自己的交互设计规范,以便指导设计师完成交互设计。

  每个看似很小的功能细节,都往往要消耗大量精力去做细。为了节约成本,在这样的功能开发出来后,都最好对象化模块化,其他场景只需调用这个模块就可以快速创建类似的功能。

  产品上线后运维工作才刚开始,具体包括升级版本上线工作、服务监控、应用状态统计、日常服务状态巡检、突发故障处理、服务日常变更调整、集群管理、服务性能评估优化、数据库管理优化、随着应用PV增减进行应用架构的伸缩、安全、运维开发等工作。

  以Logo设计为例,最常见的需求要点是两个:明确表义、吸引视线。因此在设计过程中,通过把竞品和不同设计的具体方案可以放到一起,从而找到最优的设计方案。

  视觉概念设计建立在视觉风格推导基础上,用以描绘出产品视觉风格的基本方向。

  该步骤需要确定产品风格,为后续确定设计元素、明度、色调、质感等设计细节奠定基础。

  每个空间的分层素材都一定要通过PSD文档进行保留,色块区域的颜色值需要标注,按钮的每个状态都需要单独设计,每个控件的尺寸也需要明确标注。交互设计中的每一个细节设计状态,也都应该有对应的设计稿。

  与交互设计类似,视觉设计涉及点也非常多。为了能够更好的保证产品视觉细节上的统一和规范,网络公司大多数都会制定自己的产品视觉设计规范,以便指导设计师完成视觉设计。