如何在不知道问题时解决或防止某些情况的发生? 这就是暗债问题 – 隐藏在稳定的IT环境中最终造成严重破坏的漏洞。
我们都听到过技术债务,这是一种基本IT概念,但暗债看不见。直到发现才知道问题。应对这一挑战的方式意义重大:忽略暗债会使系统故障变得更糟, 但发现暗债,特别是主动发现,有助于减少对IT环境的影响。
什么是暗债?
暗债由物理学名词“暗物质”派生而来,暗物质影响宇宙,但其本身不能直接检测或发现,暗债是IT系统中的漏洞,导致系统出现问题之前是未知的或看不见的。
暗债指任何意外或无法防御的情况。但暗债一般不只是QC中未发现的小错误。暗债通常是复杂的系统故障,复杂到设计逻辑确保系统中单独的一个故障不可产生如此复杂的问题。
任何企业中,IT都可以处理依赖于其他应用程序和系统的庞大且复杂的工作负载。重要的是,软件系统并不只是基于代码运行。
任何系统最基础层面,软件与硬件、另一完整系统、电子芯片和电气设备相互作用。系统的这些部分紧密相连,往往不可能检测或预测它们之间的微妙交互产生的影响。
随着这些交互越来越复杂,并在框架中广泛蔓延,暗债也变得无处不在。
在软件和硬件开发中,我们开发功能,利用大量保障措施防止潜在问题的发生,如故障切换、备份、异常和异常处理等。但暗债的隐蔽性很难预测这些问题如何或何时作怪。
暗债不是技术债务
技术债务是选择编码快捷方式的过程,以加快交付成果的速度。技术债务是不可避免的代价,但可以通过迅速抵偿将其降到最低限度。技术债务通常有三个特点:
· 有意或故意采用
· 在代码中可见
· 可通过重构来纠正 – 不改变代码外部行为的情况下重组代码内部结构的规范技巧
与技术债务不同,暗债并不局限于编码;它可以出现在任何地方,并在任何复杂的系统中以变幻无穷的方式产生影响。重要的是,暗债别无选择。
这是我们无法控制的,直到系统中出现一些反常现象表明存在问题,往往表现为故障或意外结果。
如何确定故障根源
暗债存在并且是无形的,我们如何防范呢? 虽然不可能完全消除所有暗债,但肯定可以将其降到最低限度。
有两种方法可以检测暗债:被动处理,一些故障或副作用可以表明暗债存在,或者主动处理,积极寻找暗债。
发生故障时,快速识别问题根源至关重要。第一反应可能是一次检查一个组件, 直到解决问题为止,但这样实际上浪费更多时间。
相反,应该利用掌握的数据诊断问题。使用二进制方法确定问题产生的两个或更多可能的原因。查寻数据确认或否定每种可能的原因。不断缩小范围,直到找出解决故障的合理办法。
当然,积极查找暗债可以防止许多深夜系统故障。通过测试系统故障承受能力,同时保持可接受的服务质量,可以发现暗债。这种方法称为混沌工程,其目的是建立系统抵御意外情况或事件的信心。
初级开发人员与资深开发人员 ("暗物质开发人员") 相配合,选择灵活的开源代码和更智能的设计是发现暗债的另一种方法。
同时,还要重新考虑假设:我们每个人都有工具和系统交互的 “心像地图”,不管对错。我们不能保证这些都是正确的,除非无先入之见,通过检查日志和数据报告的准确性来测试这些假设。
开放态度尤其重要,因为我们的 “心像地图”往往是静态的,而系统绝不是静止的。系统中的每一个变化都会重新定位暗债以及我们对系统运行的理解。
一旦确定暗债并采取措施进行补救之后,考虑写一份简明的事后分析报告。请记住,目的不是确定发生了什么问题 (您已经确定了),而是指出漏洞的位置。
有一件千万不能做的事吗? 解雇您认为造成这种故障的人。这样做恰恰消除了密切了解问题出在哪里的人。
文化暗债
暗债不一定隐藏在硬件和软件中 – 它也会在企业文化中发酵。文化暗债可以包括对团队产生负面影响的任何取巧做法。
这种暗债以“软技能”的方式产生有害作用:如果人们感觉不到自己会失败,他们就无法以有利于公司的方式学习或适应。
文化暗债的标志是任何时候发生故障都要指责他人并寻找借口,突出表现为鼓励不受欢迎的不良行为、粗心大意以及工作无计划、拖沓或质量差。
与IT系统中的暗债一样,确定问题的根源是十分重要的。员工净推荐值 (NPS)调查可以跟踪主管对负面消息是否持开放态度,以及团队如何工作、彼此信任及从失败中学习。
鼓励协作、辩论和讨论 – 这是采纳新思路并将其转化为坚定信念的最佳途径。
在IT领域中,变革和失败不可避免。处理 (或不处理) 都可能构成暗债。