面对疫情这样的复杂问题,有什么招呢?

我在 提到Cynefin框架。

Cynefin是由Dave Snowden在知识管理和组织战略中提出的一个概念框架,用于辅助领导者认知问题并进行决策。简单说,这个框架将问题域进行划分,把我们可能会遇到的形形色色的各种问题归类为五种,分别是

简单繁杂复杂混乱以及失序。不同领域的问题,应当采取不同的解决策略。


面对疫情这样的复杂问题,有什么招呢?


面对疫情这样的复杂问题,有什么招呢?


疫情显然是一个复杂(Complex)问题。这是一种新的病毒,人类对它的认识和理解非常有限,而且病毒本身也在变异、发展。因此疫情充满了未知和不确定性。

对于这样的复杂问题,不会有所谓的“英明决策”,只能走一步看一步。要边观察、边决策、边行动,及时复盘,及时调整。决策对了,是幸运;决策错了,也不必苛责,面对复杂问题,错是大概率事件,试错是不可避免的过程。千万不可一条道走到黑。

其实软件和软件项目也是复杂问题。

软件的复杂性在于代码和代码之间会发生相互影响,产生“级联效应”。也就是成千上万行代码之间会发生不可预测的关联互动,而且是一层层不同级别的互动,会产生无数的可能性。

光靠追求一切可设计、可控制、可预测,通过精确来规避风险的物理学思维来解决所有软件问题是不够的,还要采纳像冗余设计(故障切换、“双活”设计、容灾设计等)、混沌工程(在弹性架构下,对系统进行随机的破坏性测试)、回滚(Rollback)等生物学手段。甚至重启这种“不求甚解”的方法,往往奏效。

由于每个新的软件项目都在交付一个不一样的产品,这就导致了软件交付团队在收到需求时充满了大量的未知因素,交付团队对所需要的资源和时间的估算也无法准确。交付过程也是一个看不见、摸不着,又充满意外的过程。以往的项目经验并不能直接套用到新的项目中。每个新项目都是重新踩坑的过程。

这就是为什么敏捷开发方法比瀑布模式更适合管理软件项目。

瀑布模式强调在项目一开始就制定详尽的长期计划,并要求严格执行计划。计划变更在瀑布模式里面是非常繁重的过程,相当于重新立项。

所谓敏捷开发,大致来说就是把整个项目或产品的交付过程,拆成若干个短的迭代周期,每个迭代周期是一到三个星期。在迭代周期开始时,用户与交付团队详细计划下一个迭代周期要做什么。在迭代周期结束时,通过演示和验收来确定该迭代开发出来的东西是否满足用户期待。如果用户有任何修改和意见,都可以形成新的用户故事,放入到今后的迭代中。这样便可以在软件交付过程中及时收集用户反馈,确保交付出用户真心想要的软件。

它其实就是通过短迭代探路的过程,在行动中不断通过反馈学习、复盘、调整,确保交付出用户真正想要的产品。

瀑布模型强调预见性,计划性。今天很多的管理思维都是从工业时代沿用过来的。在工业时代,人们面对更多的是繁杂(Complicated)问题。工业生产,不管产品是多繁杂的组合,它都是一个拼装的过程。即使是像飞机这样的产品,虽然各个子系统本身可能是复杂问题,比如它的软件系统,但从整体上说,飞机制造是一个繁杂问题。对于繁杂问题,我们可以通过分析、拆解和计划来解决。

但是在今天这个时代,我们面对的更多是复杂问题,问题比繁杂问题升高了一个维度,我们切忌用应对繁杂问题的方法来应对复杂问题

当然,应对繁杂问题的方法可能更符合人们的习惯和偏好,因为人类天然更拥抱确定性,对于复杂问题的不确定性是恐惧的,所以必然希望能有更多的确定性。计划就是一种确定性的手段。应急预案也是人们希望在应对灾难时,能有所准备。

这次疫情,也有很多人抱怨预案不足。但这就像你永远不可能在测试环境模拟软件在生产环境上的所有行为一样,就算预案做得再面面俱到,面对“黑天鹅”级别的小概率事件,也只能是事后诸葛亮。这个时候,人的能动性、应变能力、迅速调集资源的能力,就显得非常重要。

我在 提到,要应对全体员工在家上班的情况,没有应急预案能预估这样的场景,所以预案能起的作用不大,平时也不可能搭建这样的配置,毕竟成本巨大。但管理层和相关部门迅速、及时行动,并不断尝试不同的方法和调整策略,多管齐下,加上志愿者的群策群力,使对业务的影响降到最低。

做软件项目,也需要这种能动性和应变能力。时刻围绕着当前要满足的业务目标,业务部门或用户与交付团队及时共同商讨能实现这个业务目标的核心需求是什么,把项目的目标交付日期作为一个限制条件,用最小的功夫、最短的时间优先实现和上线核心需求,实现其业务价值,然后通过后续的持续交付实现其他业务目标或非核心需求。先完成,再完美。也就是“期限不变,紧盯目标,范围可调

”的思路。

最后,以今天看到一段话作为文章的结尾和总结:

“In a complex world, a vision is not a photograph of a future destination, and a strategy isn’t the map that charts the course. A complex vision is a compass that points towards a future direction, and a complex strategy is a set of safety guardrails inside which people can innovate and learn.”

歌词大意:

在一个复杂的世界里,愿景不是一张未来目的地的照片,战略也不是地图上的路线。一个复杂的愿景是指向未来方向的指南针,而一个复杂的战略是一套安全护栏,人们可以在其中创新和学习。


面对疫情这样的复杂问题,有什么招呢?


相关阅读:


关于作者


面对疫情这样的复杂问题,有什么招呢?

刘华(Kenneth)

  • 就职于世界500强银行,负责基金服务业务软件开发与交付
  • 敏捷、精益、DevOps专家
  • 精通极限编程、Scrum、看板方法、测试驱动开发、持续集成、行为驱动开发、DevOps工具栈
  • 曾在GDevOps、DevOpsDays Meetup、中国软件技术大会、ArchSummit等论坛发表主题演讲
  • 著有《猎豹行动:硝烟中的敏捷转型之旅》一书


面对疫情这样的复杂问题,有什么招呢?

小说体敏捷/DevOps转型教科书和实战经验分享


分享到:


相關文章: