—谈系统故障及软件质量
如果你是一个7×24小时在线服务的整体(或模块)的技术或系统负责人,你的大部分生活会如游走钢丝。
程序会出bug、资源会出故障、发布会操作错误、测试会有疏漏、安全会出漏洞、网络会有波动、服务器会突然坏掉。当产品的需求日益增多,判随工程师团队会日益增大,一个软件项目或功能从开发到上线的完成,都不可能由一人或者几个核心工程师去做,需要由不同背景、不同能力及做事风格的的开发、测试、工程师配合完成。当任一环节问题(包括有不少并非你直接可控范围之内的问题)未及时发现并带到线上之后,最终的责任会落在你的肩上。每当问题一出,你会感受到各方面的压力,有技术的缺陷、工作的失职、流程及规范执行方面的欠缺的问题;同时也会来自组织内外对你能力及人品等方面的质疑的声音。当发生问题后,你可能会独处一隅,沉浸在未能把事情做好的懊悔中。
尽管平时付出了很多辛勤与努力,在业界普遍处于KPI焦虑的环境中,技术作为底层支撑部门,出现的各种问题通常是显而易见的,不足的问题通常会被放大。
因此,你经常面临的艰难的选择是,quality, or death.
传统工作生产中,有标准化的流程及规范来提高质量、降低故障。比如六西格玛(Six Sigma)可以降低产品瑕疵率。他们有成熟的规范与制度,有熟悉制度执行的专业人员,有提供咨询服务且具有丰富经验执行的咨询公司,企业员工及业务负责人只需要按步就班,就可以把问题做得相对到位。但在互联网在线服务这种不规范的软件系统中,有没有类似的标准化流程来指导生产呢?大部分团队需要从头到尾摸索一遍,在交足学费后才能得到一套并不完善的流程及制度?
发布前流程
设计及架构,是否在开发的特性进行设计上的tradeoff?
风险及依赖,开发计划中充分考虑风险及项目依赖因素?
代码是否经过足够的review?
上线计划及风险因素是否考虑详尽?比如是否需要灰度发布?上线后检查及测试措施是否到位?是否有回滚方案,回滚是否会产生脏数据?
当故障发生时
是否有充足渠道及时发现问题?以免小问题变成大问题?
收到问题后是否有合适方式(如日志及工具)快速定位并确认问题?有时候一些用户反馈的些问题并不好测试及重现。
处理问题
是否有现成的问题处理预案?
对于新功能是否有回滚处理方法,回滚后是否存在脏数据需要修复?
总结问题
问题的根源是什么?在技术上、流程上、风险防范上各有什么可以马上执行的行动计划?
非技术因素
在很多企业中,容易把软件质量上发生的各种问题归结到单一的技术因素。但是,如果没有非技术体系的支持,一个团队不可能做到完善的高质量。
研发流程及质量改进在你企业规划中的权重是怎样?年度规划中除了业务目标、竞争环境、市场份额、产品策略之外,研发体系改进是否有一席之地?
在功能需求及产品设计阶段,是否充分考虑了技术风险及人力资源因素?是否会突然启动当前团队并不能支撑的项目?
在开发阶段,开发计划是否符合软件开发规律?开发计划是根据项目压力制定,还是从定好的交付日期来倒推开发时间表?
安全及优化,是否有专门的人力及团队?开发工程师需要面临日常的开发任务,突然被用户发现之前开发的模块存在安全问题,修复完之后发现又带出了另外一个bug?
国内大部分产品面临市场及竞争对手的压力非常大,在相对恶劣的环境下,研发技术建设大多只考虑短期收益。如果期望研发体系做到零故障或者可控的故障(比如six sigma中的99.99966%),需要长时间的体系建设与积累,包括整个企业的工作流程,同时也需要在技术基础研发上投入更多的精力。
相关推荐
【优化方案】2014-2015学年高中语文 不自由毋宁死奥林匹克精神演练 苏教教必修4
2015高中语文第四专题走进语言现场在演讲厅不自由_毋宁死评测练习无答案苏教版必修4
很抱歉,但根据您提供的信息,这个文档的内容实际上属于高中语文的学习材料,包含了...如果您需要关于IT领域的知识,例如编程语言、软件开发、网络技术、数据分析等,请提供相应的IT主题,我将乐意为您提供详细的解答。
#### 一、问题背景及定义 约瑟夫环问题源自古罗马时期的历史事件。据史学家约瑟夫记载,在公元66年至70年间,犹太人反抗罗马统治期间,约瑟夫和他的40名部下在裘达伯特城沦陷后躲入了一个山洞,为了避免被俘虏,...
3. **技术升级**:北斗三号系统相比北斗二号,有更大的覆盖范围,更高的定位精度,以及增加了全球搜救功能,搜救精度可达“米”级,这些都体现了技术的进步。 4. **国际认可**:北斗系统已经开始被国际搜救卫星组织...
- 如果要表达“未及...就...”的含义,即主句的动作在从句动作发生之前,只用before。比如:“I must write it down before I forget it.” 这句话意味着必须在忘记之前记录下来。 - 在表达“与其...倒不如...”或...
在那里,这些叛乱者表决说“要投降毋宁死”,决定在罗马人俘虏他们之前自杀。方法是他们站成一个圈,从一开始,依次杀掉编号是三的倍数的人,直到一个人也不剩。 据传说,Josephus具有非凡的数学天赋,他快速的计算...
3、Portable流派 — 以C Runtime和STL为主要工具,使用类和模版,不跨平台毋宁死。 4、MFC流派 — 秉承MFC的风格,主要使用MFC/ATL对象和Win32 API,不喜欢STL,用很多的宏把IDE的语法提示模块折磨到崩溃
IBM坚持“不培训,毋宁无销售”的原则,确保每一个员工在接触客户之前都经过充分的准备和训练。这样的做法既保护了公司的品牌形象,又保障了客户能够得到专业且优质的服务。 IBM对新入职的销售人员和系统工程师提供...
8. 错别字纠正:应为“姗姗来迟”、“怏怏不乐”、“毋宁”、“羸弱”。 9. 词语解释: - “耀武扬威”在这里形容挪威国旗在南极点飘扬的样子,暗指阿蒙森队的成功。 - “疲惫不堪”表示斯科特团队在严寒中极度...
- 教学过程中,学生的自我效能感、动机和归因风格对学习成绩有显著影响。 3. **教学理念与方法**: - “与其守成法,毋宁尚自然;与其求划一,毋宁展个性。”这句话体现了教育家倡导的个性化教育和自然教育思想,...
1. 文字基础:茨威格(cí wéi gé),拉拽(lā zhuài),毛骨悚然(sǒng rán),怏怏不乐(yàng yàng bù lè),吞噬(tūn shì),羸弱(léi ruò),告罄(gào qìng),毋宁(wú nìng)。...
2. 词汇解释:这部分要求学生理解并解释一些词汇的含义,如“拽”(用力拉)、“毛骨悚然”(形容极度恐惧或紧张)、“怏怏不乐”(形容不满意或不高兴的样子)、“毋宁”(不如,宁可)、“吞噬”(吃掉,比喻侵占...
3. 人物描写手法:了解并识别不同的人物描写方式,如心理描写、外貌描写和语言描写,有助于提高阅读理解和写作能力。 4. 汉字积累 - 字形和字音:汉字的正确书写和发音是语文学习的基础,例如“毋宁”的“毋”读作...
”歌德生前却没有把他化费一生心血的《浮士德》全部发表,他把全稿封装捆扎之后,请艾克曼把全稿在他死后再予刊印。 歌德的一生充满了精神上的痛苦(正是这种痛苦使歌德写下了不朽之作),歌德一生又常为人误解,遭...
- **“对我来说,不学习,毋宁死”**:强烈表达了学习对于个人的重要性。 - **“谁游乐无度,谁没空学习”、“谁要懂得多,就要睡得少”**:强调了为了获取更多知识必须牺牲娱乐时间甚至是休息时间。 **4. 学习的...
1. 语文基础知识积累:课文设置了基础的语文练习,如选择题,旨在检查学生对汉字读音的掌握,如“癫狂”的“癫”读diān,“毋宁”的“毋”读wú,“广阔无垠”的“垠”读yín等。同时,还包含了改正错别字的练习,...
【标题】和【描述】提及的是江苏省南京市六校联合体高一语文下学期期末联考试题及解析,属于中学试题类别。试题主要测试学生的语文基础知识和应用能力。 【部分内容】展示了试卷的部分题目和答案,涉及汉字拼音、...
- 错别字纠正,如“跚跚来迟”应改为“姗姗来迟”,“秧秧不乐”应改为“怏怏不乐”,“母宁”应改为“毋宁”,“赢弱”应改为“羸弱”。 2. **词汇理解**: - “耀武扬威”在这里形容挪威国旗在风中飘扬的样子,...
例如,“拽出”、“毋宁”、“吞噬”等词,不仅要求学生掌握正确的发音,还应理解它们的含义。这些词语在文中起到丰富语言表达、增强情感色彩的作用。 课文重点句子分析部分,揭示了茨威格选择为失败者斯科特立传的...