大家好,我是徐石头。现在是移动互联网时代,我们手机中有各种各样的App,覆盖学习社交、吃喝玩乐。只有你想不到,没有它们做不到。
一个App从最初诞生的一个想法,到变成App上线,为用户提供价值,中间会经历怎样的千山万水?互联网行业的标准产品开发流程是怎么样的?
先从互联网公司岗位开始介绍,一个标准互联网产品公司主要有以下岗位:
-
运营人员,负责产品日常运营,上传产品内容,处理用户反馈意见,把产品使用体验反馈给产品经理。
-
产品经理,负责整个产品的功能设计,用户体验。接收用户和其他部门提出的需求和产品使用意见。研发部门开发完成后,验收产品功能。产出产品功能原型和需求文档。
-
设计人员,把产品原型设计成交互设计和用户界面图,提供给前端和客户端工程师。
-
研发人员,根据不同端可以分为前端工程师,后端工程师,客户端工程师。客户端又分为安卓工程师和iOS工程师。负责开发产品经理设计的产品功能。修复测试人员测试出来的Bug。
-
测试人员,根据产品功能完成测试用例,对研发人员开发完成的功能进行测试,提出Bug。
以我公司举例,日常产品功能开发分为两种: -
产品部门针对节日会设计特定的活动,引导用户积极参与和分享活动,目的是提高产品的每日活跃用户数(简称日活)和增加产品新注册用户(简称拉新)。
-
运营部门把产品使用过程中的问题和希望增加的功能反馈到产品部门,产品部门会进行梳理和判断,是否需要把需求放进需求池,每次产品迭代周期,产品部门会从需求池中整理一批需求,进行产品方案设计。
产品方案设计完成后,产品部门内部讨论评审,比如说用户体验,用户操作,使用流程等。
产品部门内部讨论通过后,提给领导评审,领导会给出意见,有可能产品方案会被打回去重新设计,重新走一遍流程。
领导评审通过后,产品经理交给设计人员产品原型图和需求文档,设计人员参照产品原型进行用户界面设计和功能交互设计,产出用户界面设计稿。
产品部门通知研发部门开产品评审会,讲解产品功能,开发人员讨论技术可行性(避免出现手机壳按心情变颜色的需求)。评审会一般是一次,如果是大版本更新,需要开发的功能点非常多,就会评审两次。
评审通过后,项目经理在项目管理软件上新增一个版本开发计划,产品经理把需要开发的功能点列出来,研发部门针对功能点进行开发计划时间排期,测试人员针对功能点编写测试用例。
测试用例是针对每个功能点进行测试具体场景,比如说登录功能,测试用例可以有输入不存在的账号、输出错误密码、输入非法手机号、要求输入手机号但是输入邮箱等。
项目排期后进入产品研发阶段,这个阶段时间比较长。研发人员开发产品功能,开发完成后先自己测试一遍,后端工程师和前端工程师需要进行接口联调。
后端工程师开发数据接口,前端工程师开发用户界面,两者需要组合起来才能成为一个完整功能。
还是登录功能,前端工程师负责开发登录界面,输入手机号和密码的输入框,用户点击提交的按钮。后端工程师负责把用户输入的手机号和密码进行校验是否正确,如果正确,用户就能成功登录 App。反之,提示用户手机号错误或者密码错误。
当产品功能全部开发完后,测试人员介入,对该版本所有新增功能和修复的旧版本 Bug 进行测试,包括手动测试和自动化测试,把 Bug 反馈到研发人员。待研发人员修复后再次进行测试,确认修复完成并且不影响其他功能。
测试人员确认所有开发功能测试完成没有问题后,产品经理进行产品功能验收,检查版本功能是否是按产品规划标准实现完成。如果不符合预期,反馈给测试人员和研发人员调整修复。
产品经理验收后,向运营人员讲解新版本功能并且培训使用流程,交付给运营人员使用。
运营人员在日常使用过程中,把遇到的问题反馈给产品经理。
整个流程形成闭环,可能具体到不同互联网公司细节略微有差别,但是大体流程都是类似的。
为什么不实行敏捷开发,根据市场反应快速开发上线,瀑布式开发每次都走流程太繁琐,不适合互联网的快速节奏。
敏捷开发适合产品从零到一的初期,小版本快速开发迭代上线,迅速抢占市场,扩大用户量。我们公司产品处于运营稳定期,规范开发流程,减少毫无价值的需求,把研发资源集中在关键功能上。