软件项目的任务积压管理

On

这是一篇关于如何管理软件项目需求、任务、缺陷的文章,来自大名鼎鼎的Joel Spolsky, StackOverflow的创始人。 想像一下你生平第一次来的一家面包工厂。开始这里看起来像是一个无法理解的杂乱不堪的机器,一些工人在里面东奔西跑的忙碌着。仔细再看看,你就会看到一些你认识的东西。一些桶装的芝麻,大桶大桶的面团,一些小面球,还有些烤好了的面包条。 这些都是库存,或者叫积压。积压逐渐的堆在机器之间。在机器边上,是大桶的将被撒在汉堡面包片上的芝麻。生产线的尽头,是些装满面包的箱子和空箱子。它们在等着被卡车运到商店去。 维持积压需要费用。假设你的面包厂有6个50吨的面粉贮仓。贮仓空下来时,你就会把它填满。这意味着平均你有150吨面粉积压。按照现在的价格计算,你需要73000美刀来维持这个积压。一直需要占用这么多钱。 积压还有别的消耗,比如腐烂、变坏。面粉可以储存几个月,但是面包从它们出炉的那一刻起价值就在不断的降低;24小时之后,基本上就一文不值了。 为什么还要要保持有库存,有积压呢?因为缺货也会造成损失。如果订购芝麻需要2天,在你的芝麻用光的时候,你就2天没办法生产面包。库存可以防止类似的生产流程上的阻塞。丰田汽车的精益生产系统和限制理论,可以指导我们优化每一个生产环节上需要多少缓冲库存。 为什么我会关心这些呢?因为软件开发流程上也有几个主要的积压堆积点。这些环节上的堆积,会造成大量的时间和金钱的浪费。 你也许会问:“什么?软件怎么能跟工厂比呢?” 好吧,想像一下,把产品想法当作生产原料。根据你的流程不同,产品想法可能会经过下面这几个开发阶段,才最终完成为客户看到的软件的特性。 特性决策阶段 (我们真的需要实现这个特性吗?) 设计阶段 (特性描述, 白板讨论, 原型测试, 等等) 实现阶段 (软件编码) 测试阶段 (抓虫) 修复阶段 (杀虫) 部署阶段 (把代码发送给客户,或者部署到WEB服务器,等等) (备注: 不是,这可不是“瀑布式开发”。真的不是。 真不是。 闭嘴。) 在这些阶段之间,就可能产生积压。比如:当程序员完成了代码开发(阶段3 实现阶段),把代码交给测试人员去测试(阶段4 测试阶段)。任何时候,都有一定量的的代码等着被测试。这就是代码积压。 代码积压的代价是巨大的。它很可能累积成6到12个月的工作量,导致生产线卡壳,产品交不到客户手里。这甚至有可能造成巨大的差别,就像时髦的尖端产品(如iPhone)跟永远在别人屁股后面追赶的产品(如Windows Phone)这样的差别。几乎不会有人会去购买Windows Phone,尽管iPhone其实仅仅比它先进6个月而已。很多市场都有网络效应,领先者意味着赢取几乎所有的份额。所以在开发流程上消除积压,能创造或毁掉一个产品。 现在我们来回顾一下积压累积的3个主要环节。 1.产品特性点子库 每个产品都有很多新点子,你实现点子的速度永远赶不上新点子涌现的速度,所以你就把他们记录下来,这就形成了产品特性点子库。点子库里很多点子其实是坏点子,你把他们记录下来,只是为了避免伤害想出这些点子的人的感情而已。点子库看起来能让每个人都感觉良好。 问题是,这些点子中90%的点子永远也不会被实现。所以花在这些永远也不会被实现的点子上的分分秒秒,记录、设计、思考、讨论,都是浪费时间。当我听说产品团队定期的开展“点子库梳理”会,在会上仔细的研究这些永远也不会被实现每一个点子,每天、每周细心的浪费着自己的时间和精力,我戳瞎自己眼睛的心都有。 建议:不要让点子库里的工作超过一或两个月。如果点子库满了,不要加入新的项目,除非你删除掉一些别的项目。不要花时间细化说明、设计、讨论这些点子库里的项目。产品特性点子库事实上应该被视为是一个关于你现在还不用讨论或开始工作的项目的列表。 2.缺陷数据库…

专注!专注!专注在过程中!

On

“嗨,你,你..”Hugo喊道. 那个高高的女孩转过身来. “对,就是你!”他重申道. 女孩不认识他, 她感到有些困惑. 但是女孩还是大步的朝他走了过来. 她一头卷卷的红发, 眼睛闪闪的, 反射着周围的颜色, 她的手很柔美, 腿修长而白皙. “听着,听我说.注意停,我没有时间了.” Hugo气喘嘘嘘的说. “我认识你吗?” 女孩问到. “奥,对不起,我叫Hugo.” 他回答道. “你叫什么名字?” 女孩向后退了一步, 有点犹豫是不是应该回答他, 还是一走了之算了. 她嘴唇微微颤抖道, “Charlotte.” “很高兴遇到你,亲爱的女士. 可以占用你一点时间吗?” “嗯…, 当然” Charlotte一边检查自己那小巧的腕表一边回答道. 那天有点微风,阳光灿烂. 他们面对面站在布鲁塞尔火车站前. 两个陌生人 – 一个人遇到了点难处, 另一个人也许能帮他. “我错过了火车.” Hugo解释道. “你知道我在哪儿能查到下一班去巴黎的火车是什么时候吗?” “我知道, 跟我来.” 她回答道. 他们穿过一间高高天花板的大房间, 里面的人们像是蚁丘里的小小的蚂蚁….

我任务列表文件的开头部分

On

一个缓和疗护护士打电话给Bronnie Ware,她列出自己死前的一些最大的遗憾。她的遗憾列表看起来挺有道理的。从中我也看到自己犯下的至少4到5个错误。 如果你必须把这个列表压缩成一句话,那也许是:不要做一个不知停顿的齿轮。这个5个错误,刻画出一个后工业时代人的形象。他把自己压缩成一个适应形状,以适应他的环境,然后直到他停下来,才变得忠实(dutifully)。 值得警惕的是,这些错误都是由于疏忽(omission)引起的。你忘掉了自己的梦想,忽略了自己的家人,压制了自己的感受,忽略了自己朋友,忘记了要快乐的活着。疏忽是一种特别危险的错误,因为你会默认犯这种错误。 我希望能避免这些错误。但是你要怎样做才能防止犯这些默认就会犯的错误呢?理想情况就是转变自己的生活方式,用别的默认行为代替这些默认行为。不过要彻底改变很难。只要这些错误还会默认犯,你也许就应该不停提醒自己。所以我把这个五个错误编成了5个命令,然后把他们列在我的任务列表文件的最头上。他们是: 不要忘掉自己的梦想 不要只顾着工作 说出你的想法 积累朋友 快乐的活着 翻译自: Paul Graham的The Top Of My Todo List