有故障,毋宁死

作者:Tim
源地址:http://timyang.net/tech/quality-or-death/

—谈系统故障及软件质量

如果你是一个7×24小时在线服务的整体(或模块)的技术或系统负责人,你的大部分生活会如游走钢丝。

程序会出bug、资源会出故障、发布会操作错误、测试会有疏漏、安全会出漏洞、网络会有波动、服务器会突然坏掉。当产品的需求日益增多,判随工程师团队会日益增大,一个软件项目或功能从开发到上线的完成,都不可能由一人或者几个核心工程师去做,需要由不同背景、不同能力及做事风格的的开发、测试、工程师配合完成。当任一环节问题(包括有不少并非你直接可控范围之内的问题)未及时发现并带到线上之后,最终的责任会落在你的肩上。每当问题一出,你会感受到各方面的压力,有技术的缺陷、工作的失职、流程及规范执行方面的欠缺的问题;同时也会来自组织内外对你能力及人品等方面的质疑的声音。当发生问题后,你可能会独处一隅,沉浸在未能把事情做好的懊悔中。

尽管平时付出了很多辛勤与努力,在业界普遍处于KPI焦虑的环境中,技术作为底层支撑部门,出现的各种问题通常是显而易见的,不足的问题通常会被放大。

因此,你经常面临的艰难的选择是,quality, or death.

传统工作生产中,有标准化的流程及规范来提高质量、降低故障。比如六西格玛(Six Sigma)可以降低产品瑕疵率。他们有成熟的规范与制度,有熟悉制度执行的专业人员,有提供咨询服务且具有丰富经验执行的咨询公司,企业员工及业务负责人只需要按步就班,就可以把问题做得相对到位。但在互联网在线服务这种不规范的软件系统中,有没有类似的标准化流程来指导生产呢?大部分团队需要从头到尾摸索一遍,在交足学费后才能得到一套并不完善的流程及制度?

发布前流程

设计及架构,是否在开发的特性进行设计上的tradeoff?
风险及依赖,开发计划中充分考虑风险及项目依赖因素?
代码是否经过足够的review?
上线计划及风险因素是否考虑详尽?比如是否需要灰度发布?上线后检查及测试措施是否到位?是否有回滚方案,回滚是否会产生脏数据?

当故障发生时

是否有充足渠道及时发现问题?以免小问题变成大问题?
收到问题后是否有合适方式(如日志及工具)快速定位并确认问题?有时候一些用户反馈的些问题并不好测试及重现。

处理问题

是否有现成的问题处理预案?
对于新功能是否有回滚处理方法,回滚后是否存在脏数据需要修复?

总结问题

问题的根源是什么?在技术上、流程上、风险防范上各有什么可以马上执行的行动计划?

非技术因素

在很多企业中,容易把软件质量上发生的各种问题归结到单一的技术因素。但是,如果没有非技术体系的支持,一个团队不可能做到完善的高质量。

研发流程及质量改进在你企业规划中的权重是怎样?年度规划中除了业务目标、竞争环境、市场份额、产品策略之外,研发体系改进是否有一席之地?

在功能需求及产品设计阶段,是否充分考虑了技术风险及人力资源因素?是否会突然启动当前团队并不能支撑的项目?

在开发阶段,开发计划是否符合软件开发规律?开发计划是根据项目压力制定,还是从定好的交付日期来倒推开发时间表?

安全及优化,是否有专门的人力及团队?开发工程师需要面临日常的开发任务,突然被用户发现之前开发的模块存在安全问题,修复完之后发现又带出了另外一个bug?

国内大部分产品面临市场及竞争对手的压力非常大,在相对恶劣的环境下,研发技术建设大多只考虑短期收益。如果期望研发体系做到零故障或者可控的故障(比如six sigma中的99.99966%),需要长时间的体系建设与积累,包括整个企业的工作流程,同时也需要在技术基础研发上投入更多的精力。

有故障,毋宁死—谈系统故障及软件质量相关推荐

  1. 工作计算机操作系统出现故障应该,浅谈高校多媒体教室的使用与管理

    浅谈高校多媒体教室的使用与管理 来源:用户上传 作者: [摘要]为适应现代化教学,各高校对多媒体教室建设的投入数目日渐增加,多媒体技术在高校中已经得到了广泛的应用,但多媒体教室的管理还存在一些问题,直 ...

  2. linux故障排查书籍,Linux系统故障排查和修复技巧.docx

    fsck -y /cievZhdab (fsck为文件系统检测修复命令,"-y"设定检测到错误自动修复,Zdev/hda6 为发生错误的硬盘分区,请依据具体情况更改此参数) 系统修 ...

  3. java web 点着点着就死掉了_Websphere(was)故障-挂死,重启,产生core.*.dmp,javacore文件-分析和解决...

    复杂的故事简单说,复杂的问题简单做. Was故障 现象 1:应用部分功能只要一访问就重启. 2:每一次重启在was安装目录下产大批量文件,主要4类:core.*.dmp,javacore,gc和trc ...

  4. 从研发效能的视角解析软件系统“故障复盘”

    本文共计4645字,建议阅读时间:9-10分钟. ‍ 阅读本文你将收获: 1.从研发效能的视角谈"故障复盘" 2.系统故障复盘的具体步骤与最佳实践 3.故障复盘的常见误区与应对策略 ...

  5. 电脑常见问题主板,CMOS/BIOS,内存常见 故障维修指南 2

    电脑常见问题主板,CMOS/BIOS,内存常见 故障维修指南 2 2011年04月25日 不必着慌!主板常见软硬件故障分析排除方法 " R% h$ K5 h! @- \3 }- J l9 J ...

  6. 计算机故障诊断与失误,计算机系统故障诊断与维护常见故障及排除.ppt

    计算机系统故障诊断与维护常见故障及排除.ppt 第12章 常见故障及排除 12.1 计算机系统故障诊断与维护的步骤和原则 12.2 主机硬件设备故障分析 12.3 外部设备的故障 12.4 故障排除后 ...

  7. html提示警告图标,一目了然:汽车仪表盘上指示、警示、故障图标全解

    小小的汽车仪表盘上,有多少种图标?粗略统计后,给出的答案是64种! 除了我们常见的大灯.转向灯.机油灯等图标外,还有许多图标车友们可能未必能读懂它们的用途.要知道,在大风或大雨时行驶,这些隐患就可能成 ...

  8. 电脑故障维修大全2.0[转载]

    作者在电脑维修工作过程中,遇到了各种各样的问题,一般故障都能当场解决,但也有些不常见的故障,却是绕了很多弯路才能解决,或者一时无法解决问题.每当这时候我就借口回店,翻书或是上网搜索解决办法.几次经历之 ...

  9. 微服务应该这么搞,万字长文谈微服务经历!

    微服务越来越火.很多互联网公司,甚至一些传统行业的系统都采用了微服务架构.体会到微服务带来好处的同时,很多公司也明显感受到微服务化带来的一系列让人头疼的问题.本文是笔者对自己多年微服务化经历的总结.如 ...

最新文章

  1. Linux进程及进程管理命令
  2. 华为的鸿蒙系统可以装在电脑上吗_继鸿蒙系统后!华为首款台式机电脑上线:联想PC霸主地位危险了...
  3. 夏普深陷亏损 郭台铭何以执著寻求“联姻”?
  4. 学长毕业日记 :本科毕业论文写成博士论文的神操作20160317
  5. Mysql or Mongodb LBS快速实现方案
  6. aws ec2时间_AWS中自动化的三大领域,以避免支付过多的云账单
  7. c++删除数组中重复元素_leetcode 数组中重复的数字
  8. Jquery图片放大镜效果
  9. APP如何进行通信的
  10. NYOJ833 - 取石子(七)
  11. 最小公倍数和最大公约数的简洁写法
  12. 记一次Alluxio HA master启动失败
  13. 前端常用的JavaScript 库和框架(一)
  14. 基于人脸识别的教室管理系统设计与实现
  15. Word基础(三十八)插入书签
  16. MFC入门基础(十)静态文本框()、编辑框(Edit Control)
  17. BZOJ4134: ljw和lzr的hack比赛
  18. 【《关于我一个小学生用C++写了个抽奖游戏这件事》】
  19. PO模型(设计模式)
  20. oracle rman crosscheck,rman crosscheck作用

热门文章

  1. Android和Java检查字符串中是否含有表情符并和谐(替换)
  2. 国外物联网平台初探(五) ——Exosite Murano
  3. mysql 查看所有的连接数_Mysql 查看连接数,状态
  4. 使用Blogdown构建个人博客
  5. 新建服务器显示8080被占用,快速解决eclipse/myeclipse下的tomcat服务器端口号8080被占用的简单方法...
  6. netty-Netty框架简介
  7. 消费升级新节点:大屏电视为何成热潮?
  8. 曾经那么被看好的共享单车,如今押金难退,共享单车还能走多远?
  9. 聚米微商好做吗 、为什么这么多人都在做聚米婧氏品牌呢
  10. MyBatis-Plus联表查询及分页