首页 > 其他分享 >【稳定性】从项目风险管理角度探讨系统稳定性

【稳定性】从项目风险管理角度探讨系统稳定性

时间:2024-03-22 15:11:07浏览次数:20  
标签:分析 风险 定量分析 探讨 稳定性 项目风险 已知 未知 识别

背景:

在软件开发过程中,系统稳定性是一个重要的考量因素。它直接影响到软件的性能、可靠性和用户体验。然而,由于各种原因,如需求迭代、架构升级、配置变更、人力变动、系统不熟悉等,系统稳定性可能会受到影响。一直想写一篇风险管理的文章,想着从项目管理的风险维度出发,对系统稳定性进行有效的风险管理,来保证系统稳定性。

 

文章中会出现一些项目管理知识的专业术语,先来个日常生活中上班堵车风险的案例对PMP中风险管理有个初步概念

 


 

一、风险概念

分类 已知风险 未知风险
概念 包括已知的已知、已知的未知 未知的未知
共性 ▣ 已知风险和未知风险都是不确定性事件,本质上都具备风险的四个要素,即:事件、原因、概率和后果 ▣ 两类风险一旦发生,都需要执行应急措施来处理,相关费用最终都应计入到项目成本中。
联系 ▣曾经的未知风险一旦发生后,就变成今后的已知风险。▣ 对已知风险的应对,可能带来次生的未知风险。

已知风险 VS 未知风险

区别 已知已知风险 已知未知风险 未知未知风险
风险事件 已识别出 已识别出 未识别出
风险原因、概率、后果 清楚 不完全清楚 完全不清楚
应对策略 规避/解决 主动承受 被动承受
应对计划 可规划 无法清晰规划 不可规划

二、规划及识别风险

识别风险是风险管理的第一步。对于系统稳定性,小组长需要密切关注需求的各个环节,及时发现可能导致系统不稳定的因素。

1.【需求】需求不明确或不完整是一大风险因素。如果产品经理的需求文档存在不明确或不完整的情况,那么项目的开发和测试都会面临较大的风险。在这种情况下,如果能够及时与产品经理沟通、明确需求,就能够减少风险,否则,项目上线后就会面临更大的稳定性挑战。 2.【架构】系统架构设计维度,思考是否存在风险 3.【编码】开发代码,思考技术是否向前兼容,如果有问题,如何快速发现问题,解决问题 4.【测试】测试边界是否覆盖周全、引流场景是否覆盖周全,比如Promise有些场景可能只有大促才有。 5.【上线】上线doublecheck,配置变更、如果灰度、验证、监控等 6.【验证】业务是否验收完成等

风险识别技术非常的多,包括:信息收集技术(头脑风暴、德尔菲技术、访谈、根本原因分析),假设分析,图解法(因果图、系统或过程流程图),SWOT分析,专家判断。

 


 

集思广益会:针对复杂的场景可集思广益,目的是取得一个详尽的风险清单,可将风险分解结构作为:框架分类汇总,是最常用的风险识别方法。

风险登记册:记录已识别单个项目风险的详细信息,一般团队内部使用。始于风险识别过程,以后的风险管理需要对其更新。包含:已识别的风险清单、潜在风险应对措施、风险跟进人。

三、定性定量风险分析

对识别出的风险进行定性和定量分析,可以帮助团队更准确地评估风险的影响程度和可能性。

分类 定性风险分析 定量风险分析
概念 定性风险分析是对已经识别出的每一个风险进行主观分析,判断各风险发生的可能性和后果,并通过综合考虑可能性和后果来确定各风险的严重性,对各风险进行初步排序。 定性分析的结果要写入风险登记册,例如风险的可能性和后果、风险级别、风险排序、紧急风险、需进一步定量分析的风险、只需待观察的风险、风险归类。 定量风险分析是对被定性分析确认为严重而且又可量化分析的风险的客观分析。定量分析的结果要写入风险登记册。
共性 ▣ 都是风险管理知识领域的项目管理过程,都要用“专家判断”这个工具与技术。 ▣ 都要根据风险管理计划中的相关规定进行。 ▣ 定量风险分析要用到数字,定性风险分析也有可能要用到数字。例如:在定性分析中,可以用数字表示风险的可能性和后果;定性风险分析的工具“风险概率和影响矩阵”可以是由数字组成的。 ▣ 要根据定性分析和定量分析的结果来制定风险应对策略和措施。
联系 ▣ 定性分析的结果是定量分析的基础。
区别 ▣ 对已识别的每一个风险都要做定性分析,但不是对每一个风险都要做定量分析。许多风险,可在定性分析之后,跳过定量分析,直接进入规划风险应对过程。 ▣ 定性分析是主观的分析,即:不同的人很可能会得出不同的分析结果。定量分析是客观的分析,即:只要所依据的数据是一样的,不同的人会得到相同的分析结果。 ▣ 定性分析,作为主观分析,灵活性较大。定量分析,作为客观分析,灵活性较小。在定量分析中,必须采用一些硬性的分析技术,如决策树、敏感性分析、蒙特卡洛模似

 


 

 

 


 

四、风险防范

风险防范的目标并不是让风险出现的可能性降到零,这是不切实际的想法,专业的风险防范要做的其实是两件事情。

第一:要将【未知的未知】尽可能转化为【已知的未知】,再将【已知的未知】转化为【已知的已知】,当然这里面要考虑成本问题。比如梳理历史代码逻辑等等。

第二:对于无法防范的风险,做好应急预案,将它的损失维持在最小

根据系统论的原则,一个系统在受到刺激之后会做出响应,如果一个刺激是完全未知的,那系统受到刺激做出的响应就是未知的未知。

 

越是稳定的系统,刺激和响应之间的关联性就越好,响应所带来的风险也越容易控制。因此要防范风险就要把系统做稳定了,尽量让系统对于各种刺激做出的响应是可预期、有应对方案的。

对于一个不很稳定的系统,最好的做法就是尽量不要给它新的刺激,以免出现意想不到的反应。比如对于一个情绪不稳定你又不了解的人,就不要去刺激他,否则结果就难以控制

 

五、监督风险

TL组长要定期对风险进行监督,以确保风险管理措施的有效实施。

例如可以通过每日站会、每周周会了解项目进度和遇到的风险问题;通过持续集成和自动化测试,监控系统的运行状态;通过定期的代码审查和性能测试,确保系统的稳定性。

六、案例实践:

背景:团队最近开发了一个XXX需求,牵扯时效内核计算底层变更,原计划2人日*3周开发。

1.风险监督:由于事先知晓该需求存在很多已知已知风险,故每日站会会单独review该需求进行风险监督。在过程中发现进度有风险(日常打扰事宜较多、范围评估不准),进行了人员调整投入(从2人增加到3人) 2.识别风险:研发编写代码后,在编写单测场景中遇到很多特殊场景,不断确认,最终发现改动牵扯范围比预期的广(很多场景影响了其他业务),存在很多 已知未知、未知未知风险。 3.定性定量风险分析:针对特殊场景登记到PRD中(类似风险手册),并且备注影响范围等 4.风险防范:

4.1、将【未知的未知】尽可能转化为【已知的未知】,再将【已知的未知】转化为【已知的已知】

经过定性定量风险分析后产品同事牵头、研发、测试一起跟业务反馈风险点。并且弄清楚本次需求背后要解决的问题优先级到底是什么?每个问题影响面多大?是否有其他方案解决?

4.2、应对策略,即满足业务需求又能将风险降低到最少

经过跟业务沟通,本次需求背后需要解决3个问题,其中1个问题不紧急,业务可人工干预调整,第2个问题是上游需要去解决的,核心是第3个问题是必须要解决的。针对这找出了核心问题。本次需求只需要覆盖问题3,经过分析调整,问题3改动范围明确并且改动范围小,当场输出排期并且制定上线日期

最终是即满足了业务的最大诉求、研发对改动范围又小、也规避了最大风险、保障了系统稳定性。

思考:

1、隔离:系统A业务 和 B业务 隔离

2:思考需求背后是要解决什么问题?现在方案对系统风险大吗?是否还有方案?最终取舍平衡。

七、总结:

从管理风险维度出发,通过对风险的规划、识别、分析和监督,团队可以有效地管理系统风险,从而提高系统稳定性。

 

附:项目管理的风险管理:包含成本风险、进度风险等多维度

 


 

 

参考:

已知风险VS未知风险:https://blog.csdn.net/david_520042/article/details/118784646

定性风险分析VS定量风险分析:https://blog.csdn.net/david_520042/article/details/118887635

项目风险管理: https://blog.csdn.net/sun_meiko/article/details/127902352

标签:分析,风险,定量分析,探讨,稳定性,项目风险,已知,未知,识别
From: https://www.cnblogs.com/Jcloud/p/18089538

相关文章

  • 软件架构设计:确保系统可维护性与稳定性的关键策略
    在软件开发的世界里,软件架构设计是构建稳定、可维护系统的基石。一个优秀的架构设计不仅能够确保系统的稳定运行,还能降低维护成本,提高开发效率。那么,如何在软件架构设计中保证系统的可维护性和稳定性呢?本文将为您揭示其中的关键策略。一、模块化设计:实现高内聚低耦合模块......
  • 探讨Java代码混淆加固工具
    摘要本篇博客将介绍几种常用的Java代码混淆工具,如ProGuard、AllatoriJavaObfuscator、VirboxProtector、ipaguard和DashO。我们将深入探讨它们的特点、功能以及在保护Java应用程序安全方面的作用。此外,还将强调在使用Java代码混淆工具时需要注意的安全问题。引言随着J......
  • 【阻抗建模、验证扫频法】光伏并网逆变器扫频与稳定性分析(包含锁相环电流环)(Simulink
    ......
  • 【稳定性】稳定性建设之依赖设计
    背景随着分布式微服务的发展,一个普通的应用可能会依赖于许多其他服务,这给系统的限流降级、优化改造等操作带来了困难。在没有明确强弱依赖关系的情况下,我们很难有效地进行这些操作。为了解决这个问题,强弱依赖治理成为了一种科学的手段。通过强弱依赖治理,我们可以持续稳定地获取应......
  • 性能测试实战系列(19):压测执行 - 稳定性场景(含监控、分析、调优、回归)
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/15475614.html测试执行根据稳定性场景设计,非gui执行脚本。 结果说明:下图大概00:25后tps上升,是因为我把服务器上无关的服务停了 结论达到压测目标 ......
  • 关于游戏数值设计这个问题探讨
    关于游戏数值设计的这个问题,之前呢,首先呢, 这个游戏是个RPG类型的游戏,关于他的数值上的规划,我遇到了一些问题,而在类似的游戏中,包括原神,一些微信小游戏,至于为什么是小游戏,这我在后面讲,而这些问题有哪些,我怎么解决的,请继续观看。其中角色属性包括血量,攻击,防御,暴击率,暴击伤害,攻击速......
  • BOSHIDA DC电源模块与节能环保的关系探讨
    BOSHIDADC电源模块与节能环保的关系探讨DC电源模块与节能环保之间有密切的关系。首先,DC电源模块是一种转换电力的装置,能够将交流电转换成直流电供应给各种电子设备使用,相比传统的交流电源,DC电源模块具有更高的转换效率,减少了能量传输过程中的能量损失,从而达到节能的目的。 ......
  • 8分SCI | 揭示随机森林的解释奥秘:探讨LIME技术如何提高模型的可解释性与可信度!
    一、引言LocalInterpretableModel-agnosticExplanations(LIME)技术作为一种局部可解释性方法,能够解释机器学习模型的预测结果,并提供针对单个样本的解释。通过生成局部线性模型来近似原始模型的预测,LIME技术可以帮助用户理解模型在特定样本上的决策过程,提高模型的可解......
  • 超越基础设施:深度探讨平台工程的关键支柱
    在快节奏和瞬息万变的技术世界中,平台工程常常被狭隘地解释为基础设施和系统管理领域。正因为如此,它可能仅被视为一个纯粹的技术领域,由服务器、集群和网络主导。 然而,这种有限的视角并不能正确评价这一领域内在的丰富性和复杂性,因为它是一个技术、创新和人类工程交汇的宇宙。平......
  • 【VINKA原厂技术支持】电源供电系列高稳定性抗电压波动 6按键/通道触摸触控芯片VK3606
    概述 VK3606D具有6个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度,仅需极少的外部组件便可实现触摸按键的检测。提供了6路1对1直接输出低电平有效。最长输出时间10S。芯片内部采用特殊的集成电路,具有高电源电压抑制比,可减少按键检测错误的发生,此特......