0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 小程序

产品研发流程和各个角色的执行方法论,却是大同小异

发表时间:2023-09-27 09:56:52

文章来源:炫佑科技

浏览次数:142

菏泽炫佑科技 菏泽炫佑小程序开发 菏泽炫佑app制作 炫佑科技

产品研发流程和各个角色的执行方法论,却是大同小异

互联网业务不尽相同,各家公司采用的研发模式自然也各有千秋。 但每个角色的总体研发流程和执行方法是相似的。

一、研究背景 1、完善研发规划

产品开发过程的每个环节都涉及到时间安排,这些时间管理要素可以有效地控制项目进度。

2、提高研发效率

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

3、保证产品质量

通过保证各个环节的输入输出结果,有效保证了*终的输出产品。

4、及时发现问题

通过各个环节的流程数据,方便管理者深入了解问题。

二、研发流程要点 1、明确团队角色、责任和权利

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

2. 明确项目管理工具

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

3、明确研发流程

*重要的是要明确各个环节的上下游关系,以及该环节工作的输入和输出内容。

3、产品研发团队

研发团队是产品研发管理的核心,建立强大的核心产品研发团队是成功的关键一步。

1. 组建团队

核心产品研发团队通常由产品经理(1人)、研发经理(1人)、研发人员(5-10人)组成。 产品开发的职责分配给各个成员。

2、角色及分工

(1)产品经理

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

(2)研发经理

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

(3)产品设计师

产品设计师是一个产品策划岗位,负责将客户需求转化为具体的产品形态。

(4) 建筑师

架构师是软件系统和网络系统的设计者。 他们负责确认和评估产品需求,构建软件开发和网络系统的核心架构,清除重大难点。 架构师专注于“技术实现”,能够针对常见场景快速提供*合适的技术解决方案,并且能够评估团队实现功能需求的成本。

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

(5)交互设计师

交互设计师是一个功能设计职位,负责根据需求文档设计交互原型。

(6)视觉设计师

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

(7)Web前端工程师

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

(8)APP开发工程师

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

(9)测试工程师

测试工程师是软件质量的把关人产品研发流程和各个角色的执行方法论,却是大同小异,负责根据需求文档编写测试用例、执行测试任务、提交测试Bug、跟踪Bug修正。

(10)运维工程师

运维工程师是一个产品发布岗位,负责维护和保证整个服务的高可用性,同时不断优化系统架构,提高部署效率,优化资源利用率,提高整体ROI。

4. 项目管理工具

我们推荐腾讯的敏捷开发平台TAPD,这是腾讯内部目前正在使用的敏捷产品开发平台。 微信、QQ、腾讯视频等产品均采用TAPD进行产品技术项目开发和管理。

1.打开TAPD平台主页

2. 注册系统账号

3.使用企业微信配置权限

4、支持需求研发全流程管理

在整个敏捷研发生命周期中,我们帮助团队敏捷迭代,小步快跑。

通过迭代进行目标设定和计划审查,完成工作分配,并使用故事墙和燃尽图来跟踪研发流程。 整个迭代过程目标明确,进度可控,研发过程小步迭代、快速。

支持网页版、PAD版、手机版。

五、主要流程环节

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

1、立项阶段

项目立项阶段首先对公司战略进行分解,然后通过市场调研获取客户需求,然后梳理产品方向形成产品提案并提交产品委员会审批。 获批后,正式进入产品研发阶段。

(一)市场调查

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

典型客户一般以用户画像的形式进行描述。 对于现有产品,可以通过数据统计部门直接获取用户画像数据。 用户画像一般采用抽样的方法,随机抽取一组客户(例如1%或10000人以下)进行问卷调查。

QQ早期用户画像数据

对于新产品微信小程序可以一个人开发么,首先需要认同客户群体的一般特征,然后对该群体进行抽样问卷调查。 问卷设计一般需要产品经理完成,然后可以找专业的研究公司来实施。

新华信协助QQ音乐产品团队进行用户调研

(2)客户需求分析

客户需求分析就是将调研过程中涉及的需求信息按照需求的重要性进行分类,优先满足客户的基本需求,也就是我们常说的客户痛点。

腾讯视频需求层次分析V1.0

(3)撰写产品提案

立项阶段主要是输出产品提案,提交公司产品委员会决策。 产品提案也就是“业务需求文档”,简称BRD(),是基于业务目标或价值描述的业务需求。 其核心目的是为企业高管在投资研发前提供决策评估依据。 内容涉及产品概述、市场需求、竞争环境、重要性、成功因素、营销策略、利润预测等,一般简短明了,不包含产品细节。

支付宝用户部产品提案模板

(4)提交产品决策委员会审核

提案审核主要确定以下几点: 是否与战略相关性密切相关? 产品的价值有多大? 将投入多少资源?

公司产品决策委员会对提交的产品提案进行评估。 评估流程如下图所示:

产品决策委员会决策流程

2、产品设计

产品设计分为输出概念设计、输出功能列表、输出需求概要文档、输出需求详细文档等步骤。

(1)产品概念设计

概念设计是非常关键的产品环节。 简单清晰的概念不仅让客户更容易理解,也让产品开发流程更加清晰,少走弯路。 而且,概念设计也是软件架构师将产品概念转化为技术对象模型的关键环节。

以支付宝产品为例,它采用“钱包”概念模型。 钱包里有现金和银行卡,还有身份证、名片、照片、收据、发票等,区分了需求的层次,产品交互体验的层次和水平自然就出来了。

支付宝钱包用户产品型号

(2)确定产品功能组合

根据产品概念模型和需求优先级确定关键功能点。

QQ音乐主要功能

(3) 确定功能列表

然后将功能组织成树状结构,将所有功能点组织成列表。

QQ音视频产品功能列表V1.0

这些功能点随后将作为需求点添加到项目管理系统TAP中,使所有团队成员更容易沟通和改进功能列表。 功能清单初稿形成后,产品经理需要先在产品团队中组织讨论并完善,然后找运营团队进行沟通和完善,然后找到交互视觉团队进行补充和完善,*后*后找到研发项目经理,研发、测试、运维等角色。 沟通是完美的。

这个过程不仅是帮助产品经理提升的过程,也是形成团队共识、激发团队积极性的过程。

(4)输出需求汇总文件

摘要文档明确了某个功能模块下的功能介绍,通常是多个功能点的描述。 需求概要一般是产品经理写的,不包含详细的功能描述。 为了方便与产品设计者进行需求沟通,可以将主要功能界面草案添加到本文档中,并使用原型草图更好地描述主要功能。

腾讯视频PC版播放模块需求汇总文档

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

会后,主架构师会根据需求总结做出架构设计框架,研发工程师也可以针对自己负责的模块进行技术预研。 有经验的工程师往往会在这个阶段开始尝试做一个demo,跑一遍主要的功能流程。 这样,他们在正式进入研发时会更加轻松,专注于细节和产品质量的提升。

(5)输出需求明细文档

需求详细文档由产品设计师编写。 需求摘要中的每个需求点都需要写在单独的需求明细文档中,而不是将所有的需求明细写在一个文档中。 这会导致需求细节文档非常长且复杂,进而导致很多后续的问题。 *好将需求点进行拆分,使得开发和测试能够在一周内完成,这样才能有效地实现敏捷开发。

腾讯视频PC版自动登录需求文档

需求文档不能由产品设计师单独编写。 产品设计师需要经常与交互、运营、视觉、用户研究(UER)、架构师、测试经理、开发、运维人员进行沟通。 沟通的过程更多的是产品设计师学习和融合各个角色思维的过程,也让各个角色的工作更加清晰。

通用需求文件的编制分为以下几个步骤:

(6) 需求审核

如果在编写过程之前与各个角色有充分的沟通,需求审查就会变得轻松愉快。 否则,产品经理和产品设计师会陷入无休止的争论,往往需要整个团队几个小时才能得出结论。

因此,需求评审的关键是产品设计者提前做好评审会的一切准备工作。 提前准备好所有材料,并提前发送给所有团队成员。 关键问题已提前与各角色确认,并由产品经理、研发项目经理确认。 审查会上,先讲大局,再讲重要细节,再讲次要重要细节,一步步确认。

对于会议上有争议的问题,如果5分钟后没有结论,立即记录下来,会后单独讨论。 如果问题太多,说明产品设计师还没有想清楚,所以尽早结束会议,重新修改,然后进行评审。 这种情况会严重影响产品团队的声誉,因为每个人的时间都被浪费了。 为了降低这种风险,需求评审必须提前1-2周进行,而不是等到开发前夕。

3、交互设计

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

腾讯设计完整流程图

(1)交互设计需求分析

交互设计需求分析主要是回答以下问题:

A) 你关注哪些角色?

交互草稿涉及的角色很多,几乎每个角色都需要它们。 不过,只要有专业、详细的交互草稿,就可以满足所有角色的需求,不需要为每个人提供不同的交互草稿版本。

B) 用户场景是什么?

确定您想要在场景中进行什么交互设计。 具体包括用户画像、主要功能流程等。

C) 它采取什么形式?

大多数交互式文档都是使用 Axure 设计的,通常采用线框草稿的形式。

使用Axure创建交互设计文档

D) 应满足什么标准?

衡量交互水平的通用指标是整个功能运营流程的流量转化率。

以注册和登录为例,您可以通过对从注册到登录的每一步进行采样和监控来跟踪数据,然后得到转化率数据值,然后与竞品或同类产品进行比较,不断提高转化率。

(2)功能交互设计

功能交互设计主要是为了清晰地表达软件界面之间的跳转关系。

(3)交互细节设计

涉及到的交互细节很多,不同的公司、不同类型的产品会有自己不同的交互设计风格和细节。 为了保证产品交互细节的统一和标准化,互联网公司一般都会制定自己的交互设计规范来指导设计师完成交互设计。

腾讯网站​​产品交互设计规范V1.0

交互细节设计一般涉及交互控制元素、交互文案、装饰图形等。

每一个看似微小的功能细节,往往都需要花费大量的精力才能细化。 为了节省成本,这样的功能开发之后,*好将其对象化、模块化。 其他场景下,只需调用该模块即可快速创建类似的功能。

网页翻页功能交互详细设计

4.视觉设计

(1)视觉设计需求分析

视觉设计需求分析主要是为了明确视觉设计需要达到的目的。

以Logo设计为例,*常见的要求有两个:含义清晰、引人注目。 因此,在设计过程中,可以将竞品和不同的设计方案放在一起,寻找*优的设计方案。

百度输入法标志设计要求调查

(2)视觉概念设计

视觉概念设计基于视觉风格的推导,用于描述产品视觉风格的基本方向。

这一步需要确定产品款式以便后续确认

为定义设计元素、亮度、色调、纹理和其他设计细节奠定基础。

(3)主界面设计

首席视觉设计师收到交互稿后,设计主要功能界面的风格定位稿。

百度视频播放器主界面

(4)视觉细节设计

然后界面中的每个控件都是按照像素级标准来绘制的。

每个空间的分层材质需要通过PSD文档保留,色块区域的颜色值需要标记,按钮的每个状态需要单独设计,每个控件的大小也需要明确标记。 交互设计中的每一个细节设计状态也应该有相应的设计稿。

腾讯视频播放器内容库视觉细节设计

(5)视觉设计规范

与交互设计类似,视觉设计也涉及到很多点。 为了保证产品视觉细节的统一和标准化,互联网公司一般都会制定自己的产品视觉设计规范来指导设计师完成视觉设计。

QQ音乐视觉设计规范

5、架构设计

架构设计是架构师对各个子系统之间关系的抽象模型,用于指导大型系统的开发和运行。

架构设计主要包括三个部分:系统架构设计、软件架构设计、网络架构设计。

系统架构设计一般采用MVC(Model-View-)模型,将业务逻辑模型、软件接口、控制器逻辑层分层,然后通过控制器逻辑层保证业务逻辑层和软件接口层的同步。 MVC模型的优点是在优化界面和用户交互的同时无需重写业务逻辑。 它还有助于管理复杂的应用程序,使您能够专注于视图设计,而不依赖于业务逻辑。 不同的开发可以同时开发接口、控制器逻辑和业务逻辑,这也使测试变得更加容易。

(1)系统架构设计

如果整个系统开发是从头开始的话,架构设计需要从总览图开始,然后补充各个模块的架构图。 这部分一般由首席架构师主导,属于整个产品技术架构的总纲。

支付宝平台系统架构概览图

一般来说,子系统的名称与产品概念是一致的。 子系统无论是应用前端还是后端,都是通过公共服务层、业务逻辑层、基础业务逻辑层联系起来的。 这种基于对象的架构设计方法将允许整个团队使用同一种语言进行沟通,使他们更容易相互理解,这将有助于提高协作效率。

支付宝记账系统架构图

(2)软件架构设计

软件架构设计一般采用分层架构设计模型。

软件首先分为两个主要层次:前端和后端。 前端应用负责提供与用户交互的软件,分为Web应用、PC客户端应用、移动APP应用等场景; 后端应用负责实现所有与业务相关的操作和服务,分为界面层、业务逻辑层和基础逻辑层。

在设计软件架构时,主要要做到以下几点:支持模块化、高内聚、低耦合、可扩展,同时还要防止过度设计。 如果要在已经上线的软件上增加一个新的功能,就需要设计该功能的软件架构,*终形成软件架构设计图。

腾讯视频邮件推荐功能软件架构设计图

然后细化软件架构图,首先明确系统涉及到的所有基本逻辑层模块(对象),以及模块的输入输出项,明确模块内部的基本处理逻辑。 其中一些模块可能已经存在,因此不需要再开发,可以单独标记; 尚未开发模块可以交给软件项目经理并分配给工程师开发。

然后明确接口上可以直接调用的各个业务逻辑层模块(对象)的名称,以及对应的接口、属性、方法。

对于还没有开发接口,如果涉及到数据调用,需要梳理相关的数据结构,确定算法。

上面介绍的只是*基本的软件架构设计流程。 为了保证软件的灵活性和可用性,往往会包含RPC服务组件(使网络分布式应用程序开发更容易)和消息中间件(使模块之间的交互异步化)。 )和其他计划。

(3)网络架构设计

A)运维架构

架构设计需要保证各个环节在配置上能够快速迭代,特别是在服务器CPU、内存、存储、带宽方面,需要高可用。

以新零售个性化推荐动态Feed为例,梳理整个网络结构设计流程。 首先,您需要根据业务数据分析网络系统需求。 一般来说,Feed信息流的前三页往往占据90%以上的访问量。 因此,在设计缓存时,我们只能在缓存数据中保存每个用户*近的100条数据,其他的需要用户拉下来并从数据库中检索。 实时生成。

那么我们就需要从技术上解决高并发和高性能的问题。 由于Feed性能压力主要集中在查询请求量上,而一条Feed数据往往被数百甚至数百万人访问,因此Feed非常适合使用缓存系统。 当访问压力不高时,使用单层缓存数据就足够了。 如果日均访问量达到百万,且峰值非常明显,*好采用双层缓存机制,增加系统扩展的灵活性。 当写Feed量较小但访问量急剧增加时,只需扩展L1层服务即可; 如果写入量急剧增加,则快速扩展L2层服务。 缓存扩容主要是为了改善QPS、带宽瓶颈和缓存数据库性能。

如果你想降低研发成本,也可以考虑购买腾讯云的个性化推荐服务。 所有这些中间处理过程都将交给云服务,让您可以集中精力解决业务层问题。

feed中除了文本数据外,还会有大量的图像甚至视频数据。 这种情况下,可以使用CDN来进行文件缓存。 本地缓存+分布式缓存,这是常见的CDN缓存策略。 此时更经济的选择是购买CDN云服务。 发布Feed时,先将图像和视频数据发布到服务器,然后同步到CDN云服务。

然后就是数据库的分布式架构。 网络架构师从软件架构师那里获得数据结构后,他首先区分馈送数据中的热数据和冷数据。 feed数据的冷热一般都是非常明显的。 可以按照时间维度进行分表(比如每天的feed数据就是一个单独的表),将冷热数据分开,对冷热数据采用不同的存储方案,以降低成本。 Feed数据也需要快速检索,因此需要通过索引来提高检索速度。

B) 业务拨测系统

运维发布系统后,运维团队的压力才真正开始。 随着用户数量不断增加,稳定性、性能和监控变得势在必行。 每个客户请求都需要在后台不同机器之间不断调用和返回。 只要其中一个接口出现问题,就会导致整个系统的性能下降、服务延迟甚至崩溃。

此时就需要一个有效的服务跟踪系统。 对于新零售企业来说,*划算的方式就是使用腾讯云拨入测试系统。 通过将采样接口部署到云端拨号测试系统,尤其是高峰时段的监控,可以通过手机短信或邮件监控服务异常情况。

C) 日志统计系统

建议日志统计系统直接使用腾讯云日志服务。

此外,还必须考虑全链路压测、服务器登录安全、运维权限分配、高峰后流量降级计划、共享集群资源等问题,保证系统可用性、安全性和单位成本。

6. 创建版本计划

架构设计完成并审核后,研发项目经理开始对需求和架构进行细分,形成版本计划。

The main of the is to the and team , and .

The is one small per week to and . , the APP has and costs to , a major will be every few weeks.

Each a of , so the scope of is so that the scope of will not limit. It can make the very clear and form a R&D style of rapid and agile 开发 .

When the is on the code level, the key is the Trunk in the code (Git is used). First, the needs to a trunk in Git and a for each . R&D test the code in the , and the or will merge it into the trunk . This will be and for and . If there are no , it will be to the and for .

7. 开发 stage

(1) 开发 and test

Web and APP 开发 and , as well as , code Git, etc.

Game Hall R&D Plan

(2) 开发

After 开发 gets the 's , he can the parts he is for, and then and 开发 of this part in to form a 开发 . 开发 and are used to 开发 , , and the of . They are also very to R&D and code .

The and of front-end 开发 , APP 开发 , and back-end 开发 are , but the on 开发 , 开发 , usage , , , data , 开发 , and , etc. .

(3) Front-end 开发

Front-end 开发 use it to write and front-end with good , and the Web CSS+XHTML. Front-end often not only need to front-end , but also often need to back-end and , so that they can the front-end code and the and of web .

(4) APP 开发

App 开发 to 开发 of IOS, 小程序 .

Xcode is for IOS 开发 and needs to run on Mac OS; it is for 开发 ; 小程序 开发 the use of 开发 tools.

(5) 开发

开发 to -side 开发 , Web 开发 and 开发 . In fact, the two are , and the web can be as the front end of the . The web the HTTP , and then it to of the and calls .

use Linux, it will also Shell , Linux , etc., and you need to be with the APIs of under Linux/Unix.

(6) 开发 self-test

开发 can self-tests while , and then self-tests of after 开发 of the they are for.

The focus of 开发 self-test and is . It is to costs than to the work of test . the code is by 开发 , there is no need for test to that can be by self-. , when are , you can and them , and costs.

8. phase

After the , .

(1) Test cases

The test the test to write test cases based on the .

Test cases are the for and are used to guide the of , plan test data, test , test , , etc. Test cases in the that test have, which can help test in .

Test case , test cases, test data, etc. Test cases can be in in the TAPD. TAPD can write and test cases, test plans and them, and then use bug to track and solve .

Test case list and page in TAPD

There are many that can be into test case , and then and , which can of test cases. It is to the work, and . For , the test case is every once in a while. When the needs to be in the , the test can test to this to write test cases for this .

Test case for (part)

(2) test

is to and test them one by one to test cases to check the meet user . the black box , the test as a black box, and tests the the and code of the . from the and of the , test cases are to the , and the input data is the and the , and then the for the to meet the user's are .

Black box to find the types of : or , , data or , , and , etc.

In this part of the test, in to test , , , and also need to be , a lot of is to write down in the , but can see it at a . There are many , and it is for test to judge these they often don't know what think.

is best with R&D. Web a . The team can the by the host and can see 开发 at any time. For 开发 , the code is into the trunk every day and a daily build is . The team the in time and the R&D of the the work group work, so that the R&D can make the next day. This can in time and the need for R&D to hold back big moves. This is where a small in work can make a world of . The so- agile 开发 is also in these .

(3) test

on the speed, and and cost of the to . to , , , and other .

the . By the with a load of and the to for a of time ( 7×24 hours), it is the can .

test plan ( part)

The main steps of are as :

A) List the main user and load

Focus on where may occur, break down and the load item by item.

In order to make the more to , a of the load is to .

B) key of

Then, based on the load of each , we break down the that each , APP, and web side need to pay to, such as time, CPU, usage, etc.

C) Unit and

在准备好测试环境后,使用测试工具对每个接口按照合法输入格式进行压力测试,确保在目标负载量都不会导致出现问题。比较常用的压力测试工具是。

如果系统出现响应延迟或崩溃的情况,则需要运维和研发快速迭代。然后再次测试,直到系统性能指标达标为止。

D)客户端兼容性测试

Web界面的兼容性测试,可以直接用内置开发工具即可完成。

APP兼容性测试,*好借用第三方工具(例如云测),提交APP后,云测将会部署APP到数百款手机,然后自动输出兼容性稳定性报告。也可以根据测试工程师提供的测试用例,针对每款手机批量进行功能和体验测试。

E)整体系统测试与改进

当每个场景下的单元测试完成后,再针对整个系统进行完整的压力测试。

同样,如果出现响应延迟或崩溃的情况,则需要运维和研发快速迭代,找到出问题的后台接口或前台模块进行优化,直到系统性能指标达标为止。

(4)数据初始化运营

数据初始化首先是数据库工程师根据产品和运营人员的需求,对基础数据进行完善和补充,以达到能用户能正常使用的状态。

比较麻烦的是以往旧系统的数据迁移,由于旧系统和现有系统的字段,类型,日期格式,数字格式等差异,需要抽丝剥茧一层层把数据注入到对应的数据表里,特别是表间关系需要继续保留下来。

然后是运营人员通过运营后台,手动修改部分有问题的数据。

(5)产品内部测试

测试工程师完成所有测试用例的测试工作,研发人员将所有必须完成的Bug修正修正完成,其他待修正bug完成转需求后,就可以启动产品内部测试了。

内部测试首先可以针对产品相关的所有员工,包括产品、研发、运营、市场、运维等各个角色。这个过程一方面是为了收集产品缺陷反馈,同时也是让相关人员有参与产品改进的机会,让大家能荣辱与共。同事对于产品的容忍度比用户要高得多,就算产品做得很烂,他们都会坚持着把产品所有功能都用一遍,而真实用户很可能看到一个不好的体验点转身就走。因此产品经理一定要高度重视同事反馈,同事发现每个的缺陷,都一定会导致大量用户流失。

员工反馈的问题如果是之前没有发现的缺陷,就需要尽快改进修正。如果对当前版本影响不大,就可以放到以后版本Bug转需求,并记录下反馈人信息和详细沟通结论。

等员工完成内测后,产品经理可以将产品内部测试版发到核心用户群里,以有奖测试的形式刺激大家提交缺陷。如果线上反馈不够深入,可以由UER调研小组邀请用户当面沟通交流,找到更深入的缺陷。这些问题汇总提交到Bug列表中,可以马上修正的尽快修正,可以放下个版本的Bug转需求。

9、发布上线阶段

发布环境的搭建,包括预发布环境、生产环境、灰度发布环境的准备等工作。

而正式上线的工作,则包括数据库上线、程序文件上线等工作。

推荐腾讯云毫秒服务引擎,这是一个开源框架,适用于在廉价机器组成的集群上开发和运营分布式后台服务。毫秒服务引擎集RPC、名字发现服务、负载均衡、业务监控、灰度发布、容量管理、日志管理、key-value存储于一体,非常适合中小型互联网公司部署发布分布式应用。

(1)发布环境准备

预发布环境准备:预发布环境是跟生产环境配置一模一样的系统,只是往往只有一个测试节点,但是它后面调用的是正式生产环境的资源(例如DB、Cache、队列等)。

预发布环境主要是要在正式发布前,做一次完整回归测试。测试人员可以通过地址参数、、请求头参数、VPN等工具,接入预发布环境进行系统整体回归测试。预发布环境下,*常见的Bug如下:生产环境代码已更新到*新版本了,但是数据库变更却忘了操作生产数据库。这个情况下,测试环境很可能都是正常的,但是预发布环境就可以很好的发现bug。

跟开发环境不同,预发布环境不允许开发人员直接接触,以防因为开发人员提交代码的瑕疵影响预发布环境里的系统。因为这是运维人员保障上线质量的*后一道屏障,运维标准也基本等同于生产环境。

正式生产环境准备:生产环境包括发布产品所需要的所有服务器资源,包括Web服务器、数据服务器、CDN服务等。

灰度发布环境准备:每个项目一般都会部署到多台机器,所以一般会拿1-3台服务器看看是否可用,如果失败则只需要回滚这几台服务器,比较方便。灰度发布需要使用跳板机并进行域名绑定,这样才能保证用户访问到的只有*新代码的服务器。

(2)数据库上线

生成数据库项目时,可以先从测试环境导出数据库对象定义脚本,然后再将预先部署脚本、数据库对象定义和后期部署脚本合并为一个生成脚本,再将该脚本拿到主数据库服务器上生成数据库。然后通过主数据库备份到各台从属数据库。

如果系统对读取及时性要求非常高,则可在数据库层之上架构Redis这样的分布式缓存,其性能肯定远高于从数据库读取数据。

(3)程序文件编译上线

(4)上线版本整体评估

上线评估阶段需经过市场、产品、运营、开发、测试等对于上线做出整体评估后才能正式上线运营。这个过程一般是由产品经理先在全员群里提醒大家*后一次确认还有什么问题。

如果有任何问题,则需要在群里和相关人员评估是否要在当前版本解决,如果是则尽快解决以免影响版本发布计划,如果不是则转需求到后续版本。

如果每个人都没有提出异议则发出上线版本发布告知邮件,进入正式发布流程。

(5)灰度发布

Web前端灰度发布:对比较小的Web应用,在页面或服务器端实现分流即可。但对于大规模用户的Web应用,采用分流发布引擎很有必要。

组件灰度发布:

IOS APP灰度发布:常见做法是制作一个带数字签名的测试版,然后提供给测试用户使用。

APP灰度发布:由于没有统一的发布渠道,因此只需逐个替换发布渠道的安装包即可。

10、优化阶段

(1)研发工作总结

产品上线后需要对产品研发过程做总结,不论是产品上的还是流程配合上的,为后续加强沟通协作、产品运营打好基础。

产品流程也并不是一成不变的,不同的产品有不同的要求。对一些中小互联网公司而言,采用完整研发流程必然成本高昂,因此如何裁剪成自己需要的研发流程,是这类公司面临的关键问题。

(2)上线后收集用户反馈

对于产品做出优化,对于用户常见的问题及反馈做出调整,这阶段更多是产品与用户的磨合,做到更好的用户体验。

为了更好的收集用户反馈,需要在所有产品上都增加反馈入口,以便用户提交反馈内容。用户反馈的所有问题将出现在用户反馈平台中,以便产品和运营团队跟进。

支付宝用户反馈平台

一般每天的反馈量都数以万计,因此产品设计师每天都需要花费相当比例的时间去浏览,并将反馈建议转化产品需求点加入需求池。

(3)产品体验可用性测试

可用性测试常见方法是邀请一批真实的典型客户,针对典型场景使用产品,用户研究员在一旁观察、聆听、记录,从而发现产品中存在的可用性缺陷。

为什么需要可用性测试呢?这是因为产品运营团队的员工往往潜意识里会认为用户一定会怎样操作,但是事实上用户很大概率上都不会按照他们希望的进行操作,甚至会陷入茫然根本用不下去。而通过可用性测试,就可以找到问题点,通过优化体验设计降低用户使用门槛。

腾讯UER团队用户参与体验调研流程

(4)运维系统优化

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

5. 总结

因为互联网业务不尽相同,因此各个公司采用的研发模型自然也各有千秋。但是大致的研发流程和各个角色的执行方法论,却是大同小异。特别是产品研发思路,大多都是遵循“快速迭代”、“敏捷开发”、”柔性扩展”、“稳定高效”的原则。

作者:吴涛

来源:微信公众号:吴涛的好友圈

本文由@吴涛授权发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自,基于CC0协议

*喜欢的收藏{{ . }} 喜欢 喜欢 {{ . }}

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多