软件项目的任务积压管理

这是一篇关于如何管理软件项目需求、任务、缺陷的文章,来自大名鼎鼎的Joel Spolsky, StackOverflow的创始人。 想像一下你生平第一次来的一家面包工厂。开始这里看起来像是一个无法理解的杂乱不堪的机器,一些工人在里面东奔西跑的忙碌着。仔细再看看,你就会看到一些你认识的东西。一些桶装的芝麻,大桶大桶的面团,一些小面球,还有些烤好了的面包条。 这些都是库存,或者叫积压。积压逐渐的堆在机器之间。在机器边上,是大桶的将被撒在汉堡面包片上的芝麻。生产线的尽头,是些装满面包的箱子和空箱子。它们在等着被卡车运到商店去。 维持积压需要费用。假设你的面包厂有6个50吨的面粉贮仓。贮仓空下来时,你就会把它填满。这意味着平均你有150吨面粉积压。按照现在的价格计算,你需要73000美刀来维持这个积压。一直需要占用这么多钱。 积压还有别的消耗,比如腐烂、变坏。面粉可以储存几个月,但是面包从它们出炉的那一刻起价值就在不断的降低;24小时之后,基本上就一文不值了。 为什么还要要保持有库存,有积压呢?因为缺货也会造成损失。如果订购芝麻需要2天,在你的芝麻用光的时候,你就2天没办法生产面包。库存可以防止类似的生产流程上的阻塞。丰田汽车的精益生产系统和限制理论,可以指导我们优化每一个生产环节上需要多少缓冲库存。 为什么我会关心这些呢?因为软件开发流程上也有几个主要的积压堆积点。这些环节上的堆积,会造成大量的时间和金钱的浪费。 你也许会问:“什么?软件怎么能跟工厂比呢?” 好吧,想像一下,把产品想法当作生产原料。根据你的流程不同,产品想法可能会经过下面这几个开发阶段,才最终完成为客户看到的软件的特性。 特性决策阶段 (我们真的需要实现这个特性吗?) 设计阶段 (特性描述, 白板讨论, 原型测试, 等等) 实现阶段 (软件编码) 测试阶段 (抓虫) 修复阶段 (杀虫) 部署阶段 (把代码发送给客户,或者部署到WEB服务器,等等) (备注: 不是,这可不是“瀑布式开发”。真的不是。 真不是。 闭嘴。)…

Continue Reading

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

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

Continue Reading

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

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

Continue Reading

End of content

No more pages to load

Close Menu