开发者社区> 问答> 正文

复杂系统中人的角色

复杂系统中人的角色

展开
收起
kun坤 2020-04-23 19:42:49 543 0
1 条回答
写回答
取消 提交回答
  • 无论多么复杂的软件最终都是人写出来的。

    任何对分布式系统和复杂度管理的讨论最终都必须承认 人在我们设计和运行的系统中 的角色。人是我们创造出来的复杂系统中不可分割的一部分,而且很大程度上我们要对他 们的多样性(variability )和适应性(resilience )负责(或对他们缺乏这两种特性负 责)。

    作为复杂系统的设计者、建造者和运营者,我们受一种厌恶风险(risk-averse)文化 的影响,不管我们是否意识到这一点。在试图(在进程、产品或大型系统中)避免故障的过 程中,为了使自己能够有更多“把控”(control),我们倾向于粗细不分地列出需求( exhaustive requirements)和创建紧耦合(tight couplings),但这种方式经常 更容易导致故障,或者产生更脆弱的系统。

    当系统发生故障时,我们的方式是责备(blame)。我们粗鲁地寻找所谓的故障“原因” —— 实际上,相比于寻找真正原因以避免将来再出现类似问题,这种所谓的寻找故障“原因”的 过程经常只是一个减轻负罪感和寻求内心平静的活动。这类活动通常会导致人们继续加强对 系统的“把控”,而结果是最终的系统更加脆弱。

    这里的现实是:大部分大故障都是一连串小故障叠加的结果,最终触发了某个事件(most large failures are the result of a string of micro-failures leading up to the final event)。这些故障并没有根本原因(There is no root cause)。我们最好不 要再去试图寻找根本原因了,这样做只是在攀登文化期望(cultural expectations)和强 大且根深蒂固的心理本能(psychological instincts)的悬崖峭壁。

    20 世纪 80 年代奏效的流程和方法论,到了 90 年代已略显落后,现在更是完全不适用了 。我们正在探索新的领地和模型,以构建、部署和维护软件 —— 以及开发软件的组织自身( organizations themselves) 。

    2020-04-23 19:43:06
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载