软件生产力并不存在

# 观点
560
1 min

Bill Caputo 通过我们多次的对话,说服了我一件非常令人惊讶的事情。这个观点改变了我看待世界的方式,也改变了我工作的方式。

软件生产力并不存在

正如 Martin Fowler 在将近十年前所指出的,软件中的生产力是无法有效衡量的。原因在于:它根本不属于“相关事务的范畴”(The Realm of Relevant Things)。换句话说,“生产力”作为一个指标在软件开发中没有适用性。“我们今天创造了多少?”这个问题并不具有现实意义。即便能被衡量,软件中的生产力也无法以任何有意义的方式近似为业务价值。

这是因为软件开发并不是一个“必然会产生某种成果”的活动。想象这样一个情景:有两个开发者在同一个项目上工作,碰巧他们在同一天开始处理同一个任务。

第一个开发者 Frank 大干一场,写了一个1000行的框架,完美地解决了问题。代码写得很好,测试充分,部署与运维都有详细文档。

第二个开发者 Peter 则去公园喂鸽子,一边思考这个问题。大约在下午4点45分,他回到办公室,删除了100行代码,部署后——问题解决了。

请问,今天这两位开发者中哪一个更“有生产力”?
答案是:这不重要

重要的是 Peter 解决了问题,同时还降低了团队未来的维护成本。而 Frank 虽然也解决了问题,但由于新增了大量代码,增加了维护负担,所以在其他条件相同的前提下,他的方案更差。说 Peter 更“有生产力”只是对这个比喻的强行扭曲,毫无意义。

我认为,优秀的软件开发者的真正职责是消除问题。这实际上是“生产”的反面。代码、文档、数据等技术产物的“创造”,只是实现解决问题目标的必要之恶。因此,有时一个5分钟的对话才是最有效的解决方案。

查看原文