The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
这是规格说明书;创建这个软件需要多少费用?我几乎每天都听到Zerocracy的客户和计划成为我们客户并将软件开发外包给我们的潜在客户这样问。我最好的回答是:“我不知道,这取决于情况。”听起来像是一个声称自己知道自己在做什么的人的奇怪回答,不是吗?“这是一个解释产品所有功能的20页规格说明书;为什么你不能估算成本?”我可以,但我不会。原因如下。
让我问你另外一个问题:你为什么需要一个估计? 是的,我是说真的,为什么你问我为你开发软件需要多少费用?我可以告诉你为什么。
因为你不信任我。
而且显然你有充分的理由这样做,因为我们都知道软件产品可能会永远处于开发中而永远无法完成。以YouTube为例。你认为创建一个像YouTube那样的网站需要多长时间,用户能够上传视频并进行流媒体播放?对于一个优秀的网络开发人员来说,只需要几天时间。它能流媒体播放视频吗?能。它准备好与YouTube竞争了吗?不能。再加上几百名开发人员,几年时间和几百万美元,即使那样你仍将落后于YouTube。因为这是一个永无止境的过程。无论软件有多么大或好,总是需要越来越多的改进和错误修复。
因此,当你问我创建一个类似YouTube的系统需要多少费用,根据你的规格说明,我诚实而准确的回答应该是:“你所有的钱,还不够。”在这个回答之后,你会签署合同并将项目外包给我吗?不,你不会。这就是为什么我必须撒谎并承诺“三个月和4万美元”之类的东西。你为什么要相信我?如果你足够聪明,你不会相信我。
我的观点是,无论我向你承诺什么,我都会错。非常错。
解决方案是什么?你应该怎么办?我完全理解你确实需要一个数字来制定计划并确保资金的安全。你需要选择正确的软件外包伙伴,你需要知道可以期望什么以及何时可以期望,但是…
你问的是错误的问题!
这个问题只有一个有效的答案,而且这个答案永远不会有人告诉你—开发将永远持续下去,消耗你所有的钱。所有其他答案都只是谎言。
如果我给你带来了坏消息,我很抱歉。
但让我们回到最初的问题:如果你知道这是一个永无止境的过程,基本上没有限制,为什么你还要问我开发软件需要多少时间?因为你想确保你的4万美元将被正确使用,并产生最大的效果。为了从我这里得到这个保证,你要求一个估计。我告诉你,你的软件将准备好,需要40K美元,你就可以安心了。直到你意识到自己被愚弄了。被你自己愚弄了。
你的担忧是完全合理的。你希望不超过4万美元,你希望得到一个能帮助你实现业务目标的产品。例如,你希望进入市场并获得前几千个用户。换句话说,你最担心的是你的美元能够变成正确数量的正确软件。
任何软件团队都可以消耗你的4万美元,但每个团队将会产生不同数量和不同质量的软件。
我的观点是,与其问一个软件项目会花费多少费用,你应该问我们可以为每一美元创建多少软件,质量会是什么。
基本上,不要问我们需要多少汽油才能到达终点,因为没有终点。相反,问我们每加仑收费多少以及每英里消耗多少加仑。
不同的团队使用不同的指标来衡量他们的成果(老实说,他们中的大多数人都不使用任何指标)。我们在Zerocracy使用代码行数、错误、拉取请求、测试覆盖率和其他一些指标作为可量化的数量和质量指标。我们清楚地知道我们可以为每100美元付给我们的费用生产多少软件。
收集其他团队的这些数字并进行比较。同时,确保你在项目过程中能够控制这些数字。这就是你要找的保证。现在你知道你正在购买什么以及你为此支付了多少钱。换句话说,就像我上面说的,当这些数字摆在你面前时,它们将向你保证你的钱正在产生最大数量的软件,以最高的质量。
唯一剩下的问题是你如何知道你正在购买正确的软件。换句话说,你知道我们每加仑收费多少以及每英里消耗多少加仑,但你如何知道我们是在走正确的方向,而不是绕圈子或绕道太多?
只有一个机制可以保证:定期检查点。你应该问我们是否以小而规律的增量交付软件,以及我们是否允许你对我们的进展进行定期独立审查。同时,确保我们优先处理我们的技术目标,使用里程碑,版本化发布,发布版本说明等。确保在旅程过程中,你能够控制进展并进行修正。
总结一下,这是错误的(因为没有“那里”):
And this is right:
嘿,司机,你每英里收费多少,你有地图吗?
希望我已经表达清楚了。
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-05 at 21:50