Kevin Riedl

11 分钟 阅读 · 2024年6月7日

为什么人们觉得外包公司糟糕

我们都听过这些关于软件外包的恐怖故事。外包交付的软件有缺陷、没在约定截止日交付,或者费用远超预期。

真正的问题是什么?通常是糟糕的沟通、上报缺失、不可预见的风险,以及没有被计入的任务的组合。

那我们如何造更好的软件,同时把成本压低?(理想结果)

在做软件产品?

 挑战你的产品

魔鬼四角

我们看看所谓的魔鬼四角

你可能听过魔法三角。魔法三角由三项项目约束组成:时间、成本和范围。这些约束必须相互平衡才能交付项目。改变其中一项,会影响其他两项。

软件工程教授 Harry Sneed 把这个模型扩展了第四项约束:“质量”。扩展版本通常被称为项目管理的魔鬼四角,或 Sneed 的魔鬼四角。它把质量从范围中拆出来,让范围只关注内容,不关注交付质量。

我们来推一遍。如果我们希望软件在很短时间内交付,我们大概要雇更多开发者、可能要缩小范围,甚至牺牲软件质量。

The Devil's Quadrangle聚焦于软件开发支出,会导致更低的软件质量、更紧的范围和更慢的交付速度。

同样,通过花更多钱来追求质量,意味着更紧的范围,且很可能延期上线。要为质量、范围和交付速度同时优化,你必须面对显著更高的软件开发成本(见下图)。

软件外包名声不好的诸多原因之一是预期不对齐。请始终设定现实的预期,并选择你愿意接受的取舍。

Kevin Riedl

"快、便宜、好。你只能选两个。"

质量的成本

下图是展示这一点的另一种好方式。

Cost of Quality

团队花在测试与优化软件上的时间越多,软件缺陷就越少。因此预防成本会更高。预防成本是指数级的。也就是说,你希望软件越稳定,开发者在测试与优化上要花的时间就指数级增长。

例如,如果你的软件用于飞机,你绝不能冒任何错误的风险,因此你会在预防上投入更多时间。同样适用于 Web3 应用,因为你通常在处理大量客户资金。根据你的软件被用在哪里,你会希望停在曲线上的某一点,通常在运营区间内。

我们切到失败成本。生产中出现的错误越多,需要弥补的就越多。这可以是品牌损害、技术债、额外维护开销,或人们起诉你造成的实际金钱损失。

因此你通常希望在预防上花刚好够的钱,以让失败成本合理。这叫做经济均衡

在做软件产品?

 预约免费咨询

风险呢?

生活里做任何事都有风险。我们意识到的风险,以及当我们意识到时已经太晚的风险。

很遗憾,软件开发里也要处理这些。结果是项目风险会对任何项目预算带来显著压力。我们快速看看。

How to budget a Project

每份项目预算都应分成三桶:工作包估算(功能,你想要建造的东西)、应急储备(如果识别出的某个最坏情况发生时要做的工作),以及管理储备(一笔扁平预算,但愿能覆盖所有未预见、且实际发生的最坏情况)。把风险计入预算会显著降低总体项目风险,因为有明确的预算分配给解决问题。

另请参见:大多数外包的功能失调来自激励不对齐。我们的奥地利 Fractional CTO 模式通过让一位资深 CTO 与你的结果直接对齐来修这件事,依据 Werkvertrag,而不是按小时计费的跑步机。

最终思考

总之,软件外包本身不糟。最常让他们看起来糟的,是预期不对齐和沟通缺失。请始终设定现实的预期,并选择你愿意接受的取舍。

下次和一家软件外包接洽时,问他们如何向你更新进度,以及他们是否设定了合理预期。

Kevin Riedl

11 分钟 阅读 · 2024年6月7日