论文地址:如何量化可伸缩性:通用可伸缩性定律(USL)-Gunther

    通用可伸缩性法则、Little’s法则和Kingman公式可以告诉您很多关于系统行为的信息,也可以告诉您组织的信息。从中,我为快速发展的组织的领导者们总结了四个经验教训:

    • 学会有效地授权并谨慎地选择你要参与的事情是非常重要的。
    • 随着组织的发展,尽量减少需要参与任何决策的利益相关者的数量
    • 你需要严格控制你同时参与的事情的数量;你天生的人类本能是帮助那些要求你为他们做某事或为他们的项目做贡献的人,实际上根本没有帮助。(如果你有这种想法,你也不想控制/影响一切)。
    • 工作在或接近100%的利用率将减缓性能损耗爬坡。

    今天的帖子有点不同。我在考虑我应该给一家快速发展的公司的首席技术官的建议,这家公司正努力在所有竞争对手对他时间的要求中保持速度。我突然想到,通用可伸缩性法则对这种情况有很多要说的。因此,今天的“论文”选择实际上是参考了尼尔·冈瑟的网站(上面的链接),他在该网站上对USL做了一个快速的概述。

    该模型具有广泛的适用性,包括:LoadRunner和JMeter等负载测试工具;对磁盘阵列、san和多核处理器进行建模;对某些类型的网络I/O进行建模;考虑内存抖动和缓存未命中延迟等影响。

    它甚至比我意识到的还要普遍,因为它也为组织规模的扩展提供了一个很好的指导(至少我认为是这样,在这篇文章的结尾你可以自己判断!)。因此,我将对USL做一个不寻常的介绍,它是以“向快速发展的组织的领导人提供建议”的形式提出的。当然,你也可以将USL应用到各种各样的技术场景中。在我们完成之前,我们还将看一看利特尔定律和金曼公式。

    应用USL扩展组织
    作为一家快速发展的公司的领导者,在一个快速发展的行业中,你可能会关心你的公司在给定的时间单位(也就是吞吐量)内能完成多少工作,以及任何一项工作通过系统所需的时间(也就是延迟或提前期)。通过高吞吐量和低延迟,您将完成大量工作,并快速移动;能够快速响应新信息。

    让我们先看看吞吐量,看看它是如何影响你的组织增长。当你增加人手时,在理想情况下,你的组织工作能力会随着人数的增加而线性增加。如果C(N)表示您的N人容量(最大吞吐量),那么在理想情况下:

    C(N)=N/1
    (当然分母中的1在这里是多余的,但我们稍后再讨论这个问题……)

    gman-scale1.png

    线性可伸缩性——信用:Neil Gunther/Performance Dynamics

    (实际上,有一个有趣的现象叫做超线性,随着你的成长,它甚至比线性更好——请看这篇最近的CACM文章了解详细信息——但对于组织来说,我们将忽略这一点)。

    一个更为普遍的经验是,随着组织的成长,它们会放慢速度。世界大学生领导者研讨会可以帮助我们理解为什么会这样,这与争论和连贯性有关。让我们先看看竞争,因为这可能是你成长过程中遇到的第一件事。争用度量等待或排队共享资源的效果。USL用一个介于0和1之间的参数α对此进行建模。下面是我们的精炼方程式,包括竞争效应:

    C(N)=N/(1+α(N-1))
    让我们快速直觉α在这里做什么。当α为0时,我们又回到线性可伸缩的情况。当α为1时,我们最终得到C(N)=1;换句话说,当您添加更多资源(人员)时,瓶颈完全阻碍了吞吐量的任何改进。α作为你能看到的改进的上限,当你达到这个上限时,你的能力改进曲线变平。

    gman-scale3.png

    竞争带来的收益递减——信用:Neil Gunther/Performance Dynamics

    作为一个领导者,你可能会享受成为组织中最优秀的男性或女性的感觉。结果发现你真的是阿尔法(如果你不小心的话)。不是像“顶级狗”(或者猫,如果你喜欢的话)那样的阿尔法,而是像超声仪的阿尔法系数那样的阿尔法。Alpha正在模拟当你不能有效地委派决策和任务时会发生什么。你需要参与的运营决策越多,参与的越深,你自己处理的任务越多,你的α系数越高,你就越限制了组织的整体可扩展性。因此,第一个教训是,你必须学会有效地授权,并谨慎地选择你真正参与的事情。

    当你没有足够的授权时,你得到的回报会随着组织的成长而递减。看看上图中的绿色和红色三角形。两者都代表增加了相同数量的人员(沿x轴的距离),但在早期,我们得到了更大的能力增加(沿y轴的距离)这些额外的工作人员比我们做的,因为我们接近阿尔法上限。

    我们稍后将更详细地讨论任务选择和委派的数量,但首先让我们快速了解阻止组织随着增长而线性扩展的第二个因素:一致性。一致性衡量在正确的事情上达成一致的成本。在超声仪中,它是由β系数测量的,β系数在0到1之间变化。

    C(N)=N/(1+α(N-1)+β.N(N-1))
    这是完整的USL方程。在最坏的情况下,由于USL涉及到双方之间的成对一致性,因此它的一致性因子是N的二次方。由于参与每个决策的利益相关者数量较少,因此一致性开销较小,但随着N的增长(在我们的组织类比中,随着参与每个决策的利益相关者数量的增长),组织中不一致的成本(获得一致性的代价)可能会占主导地位。这甚至可能导致负回报,因为你增加更多的人,见下图从冈瑟的网站:

    gman-scale4.png

    非一致性带来的负回报——信用:Neil Gunther/Performance Dynamics

    这个结果似乎与我们对大型组织行为的直觉相符。随着规模越来越大,围坐在桌旁的人越来越多,决策也逐渐停止。在增长的第一个层次上,你可能有多个单独的利益相关者,在下一个层次上,每个利益相关者实际上可能代表一个部门,在部门内部以及在高层共享视图之前,还必须达成一致(一致)。

    因此,我们有第二个关键教训:随着组织的成长,努力将需要参与任何决策的利益相关者的数量降到最低。由于N中的一致性因子是二次的,而竞争因子是线性的,所以随着组织越来越大,一致性因子变得最重要。你需要有意识地设计你的组织结构,以尽量减少连贯性开销,同时也要努力实现文化期望。在考虑组织结构时,我总是回到软件工程原则上来,特别是那些围绕模块化的原则。你想在一个团队中有很强的凝聚力,团队之间有很弱的耦合,你想控制扇出等等。。关于文化期望,你当然不想创造一种隐秘的文化——有良好的决策信息流是可以的——但你确实想限制积极参与决策的人数。

    保持流畅:Little and Kingman学到的教训…
    我们已经看到了影响你的组织能够产生多少工作的因素(吞吐量),现在让我们看看你能多快地通过系统获得工作(你的组织能够有多快的反应)。

    从了解USL的角度来看,您显然希望降低α瓶颈因子,这样就不会拖累组织。自然的做法是尽最大努力工作,以避免拖累其他依赖你的部门。这当然是我在大多数领导人身上观察到的行为,这也是我多年来不时陷入的陷阱。不幸的是,这种本能是错误的!

    为了理解为什么,并让你对你应该做什么有所了解,我们需要求助于利特尔定律和金曼公式。Little’s定律为我们提供了一个简单的关系,即在任何一个时间点上(进行中的工作)你在处理多少事情,以及完成任何一个项目所需的时间(从in第一次出现在队列中的时间到完成它的时间)。

    屏幕快照 2020-03-19 上午9.39.08.png

    由于你的个人吞吐量(或容量)是固定的(一天只有这么多小时),你唯一真正能控制的就是你的工作量。Little’s Law告诉我们,你承担了多少,以及每个依赖于你的投入、决定或批准的人需要等待多长时间之间的关系:
    屏幕快照 2020-03-19 上午9.40.02.png

    我想你也会告诉我,你对正在进行的工作量也没有太大的控制力,因为你的请求不断地被淹没……我已经做到了,所以现在让我们想象一下你可以控制它,好吗?

    让我们看一个简单的例子。假设你一次只专注于一个项目(WIP=1),如果你能做到,你可以平均在2.5天内完成每个项目。因此,你的工作能力是每周两个项目(我给你放周末假,充电和远离办公环境是很重要的)。在这种情况下,从接受一件工作到完成它的平均等待时间是1/2周。但当然,你更可能同时参与10或20件事,这是对一个快速发展的组织中的领导者的要求。如果你接受了这20个项目,并且你仍然在努力工作(每周完成相同的工作量),那么每个项目的平均等待时间会被阻塞,最多20/2=10周!哎哟!现在,你已经大大降低了所有20个项目的速度,你的组织速度也在下降。作为一个领导者,当你成为一个瓶颈时,你会有很大的放大效应。

    因此,第三个关键的教训是,你需要严格控制你同时参与了多少事情;你天生的人类本能,即帮助所有要求你为他们做某事或为他们的项目做贡献的人,实际上根本没有帮助。(如果你有这种想法,你也不想控制/影响一切)。你需要限制你正在进行的工作,这意味着在任何一个时间点都要无情地对待你参与了多少事情。再次,这意味着有效的授权。

    事实上,这种情况比直读利特尔定律要糟糕得多。假设一周工作40个小时,并且很好的统一任务只需要1个小时就可以完成(例如,一个标准的长会议,如果你的工作日是由日历决定的)。你决定不希望组织中的任何部分被阻止,等待你超过一周(40小时)。

    屏幕快照 2020-03-19 上午9.40.49.png

    有了这些非常小的任务,利特尔定律说,你可以在任何一个时间点有40个任务在进行中,仍然可以达到你的目标。这将使您以100%的利用率运行。现在,在你把自己痛打一顿之前,你似乎在这附近什么都做不到,你是对的——你做不到!

    问题是变化性——对你的时间的请求没有以统一的速度到达,项目也不需要统一的时间来完成。例如,从回复一封邮件到参与一个多周的战略项目。这种商业本质所固有的可变性,导致了数量惊人的混乱。金曼的公式建立在利特尔定律的基础上,告诉我们到底有多少混乱:

    屏幕快照 2020-03-19 上午9.41.40.png



    这里,ρ是你的利用率(1=100%利用率),ca和cs是到达时间和服务时间的变化系数(即,它们告诉你在这些方面有多大的变化),τ是平均服务时间(项目完成时间)。

    如果您在电子表格中探索Kingman公式,您会发现它会创建如下曲线:


    kingmans-formula.png

    首先观察一下,当您接近100%利用率时,等待时间会急剧增加。其次,我绘制的三条曲线显示了不同变化水平的影响——黄色曲线的变化最大。

    根据我的经验,作为一个组织的高级领导团队的一员,你被要求做/选择做的事情有很高的可变性。所以“金人效应”比蓝色曲线更接近黄色曲线。第四个关键的教训是,在或接近100%利用率的情况下工作,会使依赖于你的一切变得缓慢。

    那我建议你怎么做?你需要回到利用率曲线上,直到你引入组织的延迟是可以接受的。我建议您设置一个WIP限制,使您的利用率在60-80%范围内。因为这是难以置信的困难,拍摄更多的60%的范围结束,然后当你错过了一点,这将不会对组织造成如此大的损害。

    到目前为止,我们所看到的一切都是由数学方程很好地控制的。为了帮助你回到60%的利用率,并使你的组织畅通,我将转向一个更主观的模型,史蒂芬科维推广的艾森豪威尔决策矩阵。在这个模型中,任务(项目)分为两个维度:重要性和紧迫性。

    covey.jpg

    不重要的事情(矩阵的下半部分)可以删除或委派。重要和紧急的事情你可以用它来填满你60%的可用时间。把最重要的60%交给其他人。对于这里的“紧急”问题,我正在考虑如果你不及时处理的话,会阻碍组织其他部门的运作项目。另外40%的时间你可以花在重要的和非紧急的任务和项目上。因为它们不紧急,它们可以在短期高负荷下临时移位,提供缓冲以消除可变性。(但请注意这里的短期因素,如果它开始成为常态,并且您在紧急任务上的利用率正在攀升,您需要再次修剪它)。什么是重要的和不紧急的?战略思维、未来规划、组织效能反思等。这有双重好处:这些事情很容易被排挤和忽视,但通过优化你在紧急事情上的效率,你也可以腾出时间来关注这些对组织长期成功至关重要的问题。如果你不关注这些问题,谁是呢?

    这个理论就到此为止。引用Yogi Berra的话,“理论上理论和实践没有区别,实践上是有区别的。”在担任首席技术官和高级领导职务的这几年里,我从来没有像上面描述的那样,把所有的基础理论放在一起,但我肯定认识到了理论所描述的效果。