西安一码通连续崩溃,产品经理如何写文档才能不背锅?图解产品可靠性

2022年1月4日9时,西安一码通又崩溃了。这是半个月内,一码通第二次出现故障。

一方面,软件开发方有责任,开发的系统可用性太差。而另一方面,软件的需求方也需写清楚要求,这也往往是产品经理的工作,具体而言就是定义清楚产品需求、验收标准、违约责任。

否则研发只需一句话——“是产品经理没有定义清楚需求,所以责任不在我”,这就可将责任推掉。而我们如做好这些工作,就能分清责任,明确义务,避免背锅。

这些工作涉及面很广,本文仅探讨其中的非功能需求的部分,也就是产品经理如何定义清楚一码通的非功能需求。

一码通的功能需求很简单,就是查询自己的核算检测信息,个人健康信息。难是难在了非功能需求,下面我们就用3000字来逐一说明。

一、需求的全貌

产品经理要明确的需求众多,在我的书《图解产品》中,我将这些需求做了归类,并命名为PURPS+模型,具体就是:

而产品经理需逐一定义这些需求,才能将文档写全面。下面我们重点说说其中的可用性、可靠性、性能和可支持性需求如何写,这些内容在《图解产品》中有更多说明。

二、可靠性需求

可靠性定义了系统的健壮性,如可靠性高则说明产品的软件、硬件故障少,能正常运行。而这些故障常常会严重影响用户的使用。

而软件的故障多是因为软件BUG,因此很难预估MTBF值,有时会给个承诺值。

(2)可靠性

同样该值也较难预估,惯例是厂商会承诺99.99%或99.999%的可靠性。

三、可用性需求

可靠性是从系统角度看的,也就是反应了软件有没有问题;而可用性则是从人的角度看的,也就是人觉得产品可用不可用。有时两者是一回事,但有时两者不是一回事。

而所采取的手段是,当疑似有问题后,该系统会自动重启系统或重启某进程。所以从用户的角度看,其可用性尚可;但从系统角度看,其可靠性很差,系统总是坏掉。

现在的互联网系统也多是分布式部署,从而将单点故障的影响降到最低,提升用户的可用性。

而西安一码通也需定义清楚可用性。如当软件、硬件出现故障后,系统应尽可能支持一定的恢复手段,同时也要实现分布式部署等。

但从本次一码通的故障看,主要是性能问题,此时靠重启进程等手段是不能解决问题的,由此需要定义清楚性能需求。

四、性能需求

1.用户访问情况

用户访问情况需确认峰值访问量、平均访问量和访问的业务。对于一码通业务,需依据历史数据做预估。如预估每日10点-11点为峰值访问,且同时使用的人数是多少人,并应尽可能精确到每秒的峰值。

定义清楚了用户访问情况后,就要再从软件角度定义性能指标,如能定义清楚这些指标,就可避免不合适的软件架构设计,这些指标如下。

(2)新建数

(3)并发数

定义了当访问系统的特定应用时,能同时维持的连接数量。据统计西安有1300万人口,按照最大10%的市民同时扫码(已经很大了),也就是要支持百万的并发量。

(4)吞吐量

该系统定义清楚吞吐量,很多性能问题就可避免。

按照一些研发的分析,认为一码通的问题集中在该系统所有的js/css/img静态资源全都从一个出口进行提供,没上CDN。

粗略估算了一下,js/css/img数据总共约500kB。而按照某个群里得到的数据(暂且认为是准的),健康码的请求量峰值达到了3.3wqps,也就是吞吐量要33000x500x8bps≈125Gbps这个出口量级很难用单机房承载,由此系统挂掉。

该指标和系统实现方案有密切关系,需要由经验丰富的研发来分析、明确。

五、可维护性需求

(1)可支持性需求

定义了开发人员是否可以方便地升级系统、用户是否可以很方便地升级。

而据每日经济新闻报道,一码通的升级需要人工删除小程序,并清除数据。这就是没有做好可支持性需求。

(2)可移植性需求

括用户的增长和数据量的增长。用户量的增长是指当用户量增加后,系统应能方便地扩容。数据量的增长是指当存储的数量增加后,系统也能很好地支持。而一码通半个月后又出故障,由此可看出其可移植性需求做的并不好。

六、总结

以上就是一码通需定义的主要非功能需求,而这些需求涵盖面又广又重要。除了这些指标外,还有一些次要需求,本文就不再赘述,你可参考《图解产品》继续完善。

其实该系统的实现不算难,实现方案也颇为成熟,甚至优秀的应届生都能搞定,确实不该出问题。

有人可能会问,工作中我没有定义这些内容,研发一样工作。是的,对于互联网公司的自研产品多数不需这么详细,但对于这种关系民生的定制开发则必须明确,从而避免上线失败。

如一些实现细节不清楚,需求方也可列出框架,由开发方填写。

而需求方还应基于以上指标,再定义验收标准,违约责任,并进行压力测试,由此来约束开发方的行为。这样开发方就不至于敢派经验不足的研发来应付事,更可避免扯皮,分清责任。

作者:擎苍,《“图解”产品:产品经理业务设计与UML建模》作者、UML建模、数据建模研究者,公众号:图解产品设计

本文由@公众号:图解产品设计原创发布于人人都是产品经理。未经许可,禁止转载。

THE END
1.一篇文章认识性能测试响应时间通过在被测系统上不断增加压力,直到性能指标,例如“响应时间”超过预定指标或者某种资源使用已经达到饱和状态。 特点: (1) 主要目的是找到系统处理能力的极限。 (2) 需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,使得测试结果具有业务上的意义。 https://blog.csdn.net/yjt2045263063/article/details/138579861
2.响应时间是什么意思响应时间的意思1、响应时间是一个计算机,显示器成像等多个领域的概念,在网络上,指从空载到负载发生一个步进值的变化时,传感器的响应时间。2、通常定义为测试量变化一个步进值后,传感器达到最终数值90%所需要的时间。网络对整体响应时间的影响是通过不同机制完成的。 3、在图像领域的液晶显示器响应时间,是液晶显示器各像素点对输https://edu.iask.sina.com.cn/jy/2Ei2vJSWZK3.html
3.关注某个业务的响应时间,可以将该业务定义为亲亲,您好很高兴为您服务。关注某个业务的响应时间,可以将该业务为系统响应时间业务 https://wen.baidu.com/question/434468830653899012.html
4.HTTP(RESTful)API响应时间分析及SLA定义HTTP (RESTful) API 响应时间分析及SLA定义 查看原文 性能测试指标笔记 1、前端性能测试:指web客户端对服务器返回的数据进行解析并界面展示的时间性能,通常与浏览器有关。在Firefox浏览器中,可以使用Firebug的网络菜单页面,查看每个请求从发出请求到响应的处理服务端响应时间指应用系统从请求发出到客户端接收到数据https://www.pianshen.com/article/85671562620/
5.福建工程学院旗山校区10kv高压电房设备元件采购项目附件※根据上述资格要求,供应商响应文件中应提交的“资格证明文件”相关规定和资料要求,详见竞争性谈判须知前附表和谈判文件第五章。 7.供应商报名期限:详见谈判公告或更正公告(若有),若不一致,以更正公告(若有)为准。 7.1如果采购过程中有发出更正公告,采购人将根据实际情况确定是否延长报名期限,则报名截止时间以更正公https://zfcg.czt.fujian.gov.cn/upload/document/20221220/663c7a2960f54205a8c652527b008bd8.html
6.性能分析之可悲的响应时间腾讯云开发者社区不止一次并且在不同的场合都被问到了响应时间该如何分析和定义的问题。问题大概是两种: 我们的系统性能差,应该如何分析响应时间呢? 响应时间的长短如何定义呢?258原则是否适用? 最大值多长算是不可接受呢? 不同的系统怎么定最大值呢? 我们这个系统是做电商的,应该怎么定最大响应时间、最优响应时间呢? https://cloud.tencent.com/developer/article/1465672
7.响应时间和输入延迟怎么区分94CTO搜一搜响应时间和输入延迟是两个不同的概念,它们在定义、影响和应用场景等方面有所不同。具体分析如下: 1. 定义 - 响应时间:指的是从接收到指令到屏幕显示图像所需的时间。这是液晶拼接屏中一个关键的性能参数,直接影响画面的切换和运动效果。较短的响应时间可以带来更流畅的视觉体验。 https://www.94cto.com/search/content/id/154322
8.GB5135.12003:3术语定义符号和单位注册消防工程师是喷头动作灵敏度的度量,表示为RTI=τu0.5,τ为热敏感元件的时间常数,单位为s;u为气体流速,单位为m/s。响应时间系数的符号为RTI,单位为(m·s)0.5。 3.4标准方位 standard deviation 当热敏感元件对称时,标准方位为使气流方向既垂直于喷头水流的轴线又垂直于其轭臂所在平面的方位。当热敏感元件为非对称时,标准https://www.educity.cn/xfgcs/1953987.html
9.电竞显示器响应时间为什么有低中高级别?在飞碟图中表现为蓝色的诡异的影子,所以叫做“鬼影”;而拖影则来自响应时间(响应时间越长拖影越多)https://www.zhihu.com/question/526789183
10.湿度测量的响应时间及其对测量性能产生的影响定义响应时间: 通常使用两个不同指标来定义响应时间:T63和T90。当被测参数量值有瞬时变化时,测量值需要多长时间达到醉终值的63%或90%。以下是为什么选择63%来定义响应时间的原因:T63在一阶线性时域不变系统中等于时间常数,该常数通常用希腊字母τ(tau)来表示。这个一阶线性时域不变系统的数学模型描述了某一物理https://www.chem17.com/tech_news/detail/2926262.html
11.java自定义响应超时java接口响应时间优化java 自定义响应超时 java接口响应时间优化 本节的目标是做一些优化以满足对应用对延迟的需求。这次需要几个步骤,包括完善Java堆大小的配置,评估垃圾回收占用的时间和频率,也许还要尝试切换到不同的垃圾回收器,以及由于使用了不同的垃圾回收器,需要重新优化Java堆空间大小。https://blog.51cto.com/u_14587/6779200
12.并发用户RPSTPS的解读性能测试(PTS)针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到串联链路中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没https://help.aliyun.com/zh/pts/interpretation-of-concurrent-users-and-rps-and-tps