摘要:
[原文链接]又一次情绪激动、气氛高度紧张的会议,这一次是商议如何让目前这个重要项目“重回正轨”——计划的完工日期早已超了几个星期。所有的这些场景听起来都很耳熟吗?我想说的是,项目超期在任何行业里都是常见的事情。然而,软件行业里看起来更容易出现这种情况。我们怎么会走到这种地步的?这还要从我们梦开始的地方说起。所有的开始都是精神抖擞、干劲十足。一个漂亮的创意,这次我们发誓绝不会重蹈上次的覆辙,不会犯上次的错误。这次我们告诉自己,这次的计划将会“正确”的执行,不会图省事,也不会中途变更。经常有时候我们会感觉梦想正朝正确的方向前进,设计很成功,每个人都很乐观,外界评论也很好。然后,噩梦开始降临,因为各 阅读全文
摘要:
[原文链接]ACME公司的Widgets系统出了点问题。这个系统被他们用来管理器材的库存,当初设计时没考虑到如今这样大量的数据的增长。他们的员工因为这个问题备受折磨。很显然,需要想办法解决这个问题,让系统恢复正常。经过对本地软件公司的一番筛选,ACME联系到了Hamster软件公司,看看他们能否解决这个库存系统中的问题。他们很喜欢Hamster软件公司的网站,他们没有任何软件开发的经验,但根据网站的外观,他们估计这个软件公司能解决他们的问题。这件事上他们并没有做错,但也不是很对。于是,ACME公司和Hamster软件公司开始讨论如何解决他们库存系统中的问题。私底下,Hamster软件公司的开发 阅读全文
摘要:
[原文链接]这个问题是我最常碰到的一个,也是我最难回答的一个。对这种问题最好的回答方式是用全职员工来推算天数。这非常容易,你只需要找出有多少个不重叠的功能特征,然后每个人负责一个。一旦各个功能块被分成了不能再分的任务,你计算需要多少人天,这就是你的答案。你无论如何都不可能用比这更少的时间开发完这个项目。“一个女人生一个孩子要10个月,不论你再增加多少个女人来做这事,都不会缩短这个时间”“只有当一个任务的完成可以分配多人,并且不需要他们之间相互交流合作的情况下能完成时,人和月才能互相替换。”“往一个已经延迟的项目里添加程序员只会使项目进一步延迟”(因为项目中现有的人需要培训新来的人)-《人月神话 阅读全文
摘要:
[原文链接]一种态度认为,应该对程序员在软件开发中的行为进行约束(DirectingAttitude)。持这种态度的人认为大部分的程序员水平都不高(谣传说有50%的人低于平均水平),所以应该对他们所做的事情进行管教约束。要防止他们做一些可能会给他们正在开发的系统带来危害的事情。通常,这种态度体现在一些系统设计和工具中时,你会发现它们会试图阻止程序员去做某些事情,限制程序员的一些做法,以此避免他们陷入过于复杂的境况。另一种态度认为程序员都是可以信赖的专业人员,应该给他们做自己任何想做的事情的自由。秉持这种态度的软件设计以好用易用为目标,但前提假设是程序员必须知道自己在做什么。所以,遵循这种态度的 阅读全文
摘要:
[原文链接]长期从事编程活动的程序员都期望在50多岁时能爬到一个足够高的职位,或者能顺利的退休。但我在这里讨论的可能是一个你还没有想过的问题:如果到那时你失业了呢?50多岁时你的职业仕途会成为一个问题。如果你有很好的技术,有人雇你,你会有一个很高的职衔,或你是一个专家,或有很好的人际关系,你都有可能找到一个新的职务。否则,你会从衣食无忧沦落为无家可归。这是真的。我55岁,我的简历会让你感觉非常优秀,10年前我能挣到多达100万美元。现在我是一个流浪汉。我身体不是很好,没有医险,没有牙医。能找到的工作只是一些基本不需要技术的体力劳动,我也干不了。我在试着做家教。然而,这点钱基本上不够付燃气费的。 阅读全文