软件库存

本文是Joel大侠的新作(对,就是《Joel说软件》的那个Joel) ,以“库存”为类比讨论如何改进软件开发的效益。

想象一下面包作坊:机器中间摆放着一桶桶芝麻、一坨坨面团、一袋袋面粉,还有一箱箱做好但尚未运走的面包。这些都是库存,库存可不是免费的。假如平均每天储备150吨面粉,那要花费多少钞票?库存还有其他成本,面粉可以多放些时日,面包一过24小时就卖不掉了。那为什么需要库存呢?因为“耗尽”也会带来成本。假如订购一批芝麻需要两天时间,一旦芝麻用光,便有两天时间不能做生意了。库存提供了缓冲,防止生产过程的任一环节中断。

可见,库存没有不行,但也不是越多越好。一些现代算法可以计算这一缓冲的最优值。

为何关心起这个来?因为软件生产过程中也有几处主要的“库存”堆积点——在这些节点,事情会堆积起来,浪费大量的时间和金钱。

把你的“想法”想象成原材料。一种想法要经历多个流水环节,如决策、设计、实现、测试、调试、部署等,最终才能作为就绪的特性交付客户。在环节之间,库存会堆积起来。比如,程序员每完成一部分代码便交给测试员检查。在任何时间,总会有一定数量的代码在等待测试,这便是库存。

“库存”代价高昂。有可能长达6~12个月的工作堵在流水线上而没有到达客户手中。而这会导致严重后果,造成的差别就像头前领跑的iPhone和不断追赶的Windows Phone那样。

我们来看看软件开发中最容易堆积库存的三个地方。

特性候选单:产品设计时总会有新想法出现,而实现这些想法的速度永远赶不上把它们想出来的速度。你把它们写下来,它们就成了候选特性。问题在于有90%的候选特性你永远都不会去实现,于是每次你把这些永不实现的特性记录下来,考虑一番,设计一番,甚至集体讨论一番,都是在浪费时间。

Bug数据库:这本来是个好东西,然而在许多公司里,不遗漏任何Bug报告的目标反而导致了“Bug破产”:某天一觉醒来,你发现库中还有3000多个Bug处于开放状态,一些古老的已没有实际意义,还有一些已无法重现,更多的则太小,不值得修正。可是,已有成年累月的工作消磨在这些Bug报告的准备和维护中了。

未部署的特性:这是库存中代价最高的一种。这些特性本来可以为你赚钱,却一直放在货架上没卖出去。马路对面男孩早已在使用另一款产品,里面有完全相同的特性。

本文选自《程序员》杂志2012年08期,未经允许不得转载。如需转载请联系

market@csdn.net

《程序员》2012年杂志订阅送好礼活动火热进行中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值