这个项目要多久开发完成?

 对于标题所述的问题,很多从事IT软件开发的人员会被经常问到,而我就几乎每周都会被问到。巧合的事今天读到一篇文章《How long would this project take?》的中文翻译,索性直接转过来,借由抒发一下心中的感慨。

中文翻译原文如下:

  英文原文:How long would this project take?

  这个问题是我最常碰到的一个,也是我最难回答的一个。对这种问题最好的回答方式是用全职员工来推算天数。这非常容易,你只需要找出有多少个不重叠的功能特征,然后每个人负责一个。一旦各个功能块被分成了不能再分的任务,你计算需要多少人天,这就是你的答案。你无论如何都不可能用比这更少的时间开发完这个项目。

一个女人生一个孩子要 10 个月,不论你再增加多少个女人来做这事,都不会缩短这个时间

只有当一个任务的完成可以分配多人,并且不需要他们之间相互交流合作的情况下能完成时,人和月才能互相替换。

往一个已经延迟的项目里添加程序员只会使项目进一步延迟”(因为项目中现有的人需要培训新来的人)

《人月神话》

  不幸的是,大部分人只想知道一个项目需要多少时间完成。这实际是个伪命题,因为 90% 软件成本的产生是发生在软件发布之后。这些费用会产生于修复 bug、增加欠缺的功能、性能的改进、对新平台进行支持(安卓就是一个大债主)或重写质量差的老代码来减少技术债务。即使是项目发布前,对于如何合适的处理每一种报错情况,这也是无法预先估计全的。从某种程度上,你就是被别人问了这样一个问题:“我有一个问题,我想解决它,但我无法说清问题是什么。请问解决这个问题需要多少时间?

  尽管预估很难,但程序员最终要找到一种预估的方法。虽然无法知道一个确切的答案,但我有 3 种方法能大致估计出一个软件项目要花多少时间:

  1. 想要搞清楚一个事情需要多少时间完成,这最好的方法是找一个程序员已经完成的、相似的项目。对一些简单的网站和应用来说非常有效,或者那些使用标准 CRUD 的项目也是适用。当项目小且简单时这种方法最好用。这种方法可以用在软件 1.0 版本时,但以后的版本就不行了,因为这时你跟相参照的项目开始慢慢的产生差异,这时写的代码是你以前没有写过的。
  2. 我的好朋友、并且是以前的同事 John Walker (不是这个 John Walker)喜欢用这种方法。把项目拆解成最小的任务。然后记录完成每个任务你认为可能需要多少小时、天、周、月。遵循这种原则,如果一个任务需要几小时,就是算成一天,如果需要数天,就是算成一周,如果是数周,就算成一月。如果超过一个月,那你就无法知道需要多少时间了,或你根本不知道要做什么。
  3. 我有自己的预估方法,但事实上跟 John 的把任务拆分成最小的子任务的方法非常相似。我是以最坏的情况下每个最小单元需要的完成时间为标准。汇总,然后乘以4。再向上取舍到最近的素数,就算是对我的这种没谱的方法的讽刺吧。

  对于大型的、独特的项目,程序员几乎无法知道它需要多少时间开发。它就是像在问“需要花多少时间能找到治疗癌症的方法?”然而,大部分的管理部门都拒绝接受这种答案,于是,程序员只好玩一些花招,先弄清楚老板们希望听到的时间,然后加入一些余地。还能有什么办法?通常都是超近路,这都是因为要去追赶那个本不应该设置的最后期限。你需要明白,预估是困难的,需要运行计划上的变更。除非你的程序员能将任务拆分小于一个月的子任务,千万不要在软件发布时间上做任何市场活动计划。

  这最后一件需要注意的事是,当你在一个现有的软件(比如 2.0 版,3.0 版….)上增加新功能时,你需要追加 20% 用来对现有代码进行重写的时间(程序员称之为重构)。这是为了偿还技术债务,或为未来的行动铺路。人们以为 Google 是拿出 20% 的时间用来创新,但我敢打赌,其实这大部分是来偿还技术债务的。

  估计一件事情要花多少事情是非常难的,通常也是不可能的。虽然你曾在一些小项目上有成功的预测,但随着项目的发展你会感觉到越来越难。一个好的方法是给程序员留足额外的时间。很多年轻的程序员通常没有这方面的经验,所以,项目经理必须把他们估计出的时间乘以4

Loading

越过山丘 还有山丘

电脑里,车载mp3里,一直放着全套的《李宗盛的音乐旅程.不舍.香港版》,以为他不会再唱了,后来喜欢上有他加盟的纵贯线的《出发》,接着又听到了这首《山丘》,明年这2首个会入我车载mp3榜单前三甲了。

附上这段我喜欢的《出发》歌词片段

<br/>出发啦 不要问那路在哪<br/>迎风向前 是唯一的方法<br/>出发啦 不想问那路在哪<br/>运命哎呀 什么关卡<br/>当车声隆隆 梦开始阵痛<br/>它卷起了风 重新雕塑每个面孔<br/>夜雾那么浓 开阔也汹涌<br/>有一种预感 路的终点是迷宫<br/>

还有《山丘》的mtv

Loading

你有一百万吨的信念

近期搞OA开发,没想到吧,的确是OA,曾经多年前在第二家公司(马可)搞过,后来就是工作流,然后就是BPM,没想到逃不过轮回,又回到原点。应该是当初没做好OA的缘故吧。不过,近期感觉挺有状态,也挺有进展,现在对OA的认识就是:这东西说起来简单,能设计的好,用得好,对公司有帮助的话,还是相当有挑战的。

这不临时加了几分钟版,备份一下代码,趁机看了篇博客园的文章,居然看到微信的创始人张小龙喜欢的一首歌《一百万吨的信念》,忽然想起听过这首歌,这曾经是好多个月前老刘推荐给我过汪峰的专辑中的旋律劲爆的一首。不过这段时间赶上汪峰跟某女星的绯闻啥的,也许你会觉得对他的歌也反感,但是抛开这些,歌词还是挺好的,写出了现代的很多人的状态,都有点让人怀疑这歌词是不是汪峰写的。

放上歌词,顺便说一下:不要相信你没有一百万吨的信念,能活着就证明你有!

不要相信电视广告
不要相信排行大榜
不要相信花边新闻汪峰在演唱会
不要相信存款利息
不要期盼好运到来
好运属于贪官污吏
不要期许好人相助
好人都在挖煤倒土
你可以相信最为糟糕的事情
它每天都在我们周围接连发生
你至少需要有一百万吨的信念
也许或可能勉强继续活下去
不要相信综艺晚会
不要相信选秀大奖
不要相信免费爱情
不要相信付费承诺汪峰在演唱会
不要幻想拥有自由
自由属于富枭权贵
不要期盼获得公正
公正就是人可吃人
你可以相信最为可耻的事情
它每天都在我们周围频频上演
你至少需要有一百万吨的信念
也许或可能勉强继续活下去
不要相信你看到的
不要相信你听到的
不要相信你感觉的
不要相信你领悟的
不要希望奇迹出现
奇迹从不在你这边
不要奢望基本尊严
尊严总是依附金钱
你可以相信最为残酷的事情
它每天都在我们周围接连发生
你至少需要有一百万吨的信念
也许或可能勉强继续活下去
你可以相信最为荒谬的事情
它每天都在我们周围频频上演
你至少需要有一百万吨的信念
也许或可能勉强继续活下去

有空还是建议你听听歌曲

Loading

推荐图书《问中医几度秋凉》

元旦6天假期,读完了这本中医小说《问中医几度秋凉》,对里面的一些场景还历历在目,尽管在买这本书之前已经在网上读了电子版的不少章节,但是在读纸质书的时候,还是重复的看了一遍。

作者身为西医医生,母亲是传统的中医师,而自己的女儿被培养成熟悉西医的传统中医师,她就从一个特殊的视角来讲述她对当下中医和西医的理解,以一种跟读者探讨的方式讲述她所经历的故事,同时传递出一种当下的医学应该以中医为主导,西医为辅助的中西医结合,更传递出一些医之外,病人本身的应该有的对生死的认知。

废话少说,强烈推荐看到这篇文字的朋友亲自读一下。

我从京东购买的,但今天去看貌似缺货了:[URL=http://book.360buy.com/10050978.html]问中医几度秋凉[/URL]
分享一下当当的购买地址:问中医几度秋凉

Loading

领悟汉字:老与孝

最近听梁冬和徐文兵对皇帝内经的解读,最多的就是听到对汉字的解读,特别是古汉字的解读。今天偶然看到一篇《[URL=http://blog.sina.com.cn/s/blog_4e1983760100y1ex.html]至简文化中医小语之:老与孝[/URL]》,转来这里跟大家分享。

身在异乡的人,不能给父母弄洗脚水,不能帮父母跑腿,我们要想办法通过其它的方式孝敬老人。

Loading

人在最无奈的时候

人在最无奈的时候,他自然会求助于鬼神,这是很自然的一个心态。

这句话是从曾仕强的《易经中的管理智慧4》看到的,我想这样子老丈人就会理解他侄子关于祖坟的做法了。

视频地址:[URL=http://v.youku.com/v_show/id_XMTUwMzUzMzY0.html?f=5059976]http://v.youku.com/v_show/id_XMTUwMzUzMzY0.html?f=5059976[/URL]

Loading

当初没打好基础,现在还是要去补

生活在这样一个时代,我们中的很多人都会有时急功近利的生活着。自然而然的我们的很做根基不牢,基础不过关。而如果要突破还要花时间去补基础。

对于“基础”的感悟是我近几个月从工作和打篮球上得到了。先说篮球吧:打篮球一味的提高速度,但是速度一快的话移动中就接不住队友的传球。这就是基础不牢,用木桶理论来解释的话,就不能有更好的突破了。而讲到工作上,主要是指C# .Net的开发,现在想想毕竟不是科班出身当时很多基础的概念并没有深入研究,做一些基础性的开发靠自学还能勉强,但是要从普通的开发提高到架构、优化、算法等统驭高度的技术研发的时候,就明显吃力。

Loading

来自10086的经典心语

这本是5月5日来自10086的群发短信,我觉得不错,一直没舍得删除,今天翻看信用卡还款的短信的时候再次看到。

<br/>1、容易走的路都是下坡路。<br/>2、自由不是想干什么就干什么,而是想不干什么就不干什么。<br/>3、命,乃失败者的借口;运,乃成功者的谦辞<br/>4、打动人心的最佳办法,是谈他最珍爱的东西。<br/>5、品格不由你真有的东西决定,而由你匮乏的东西塑造。<br/>6、郁闷时,坐下来犒劳自己,原谅别人,也放过自己。<br/>周末了,祝您放松身心,享受生活。<br/>

Loading

让每一个为这个国家牺牲的人,死无葬身之地?

无意间发现了网站[URL=http://www.tndao.com/]听道[/URL],特别推荐大伙看看[URL=http://www.tndao.com/2105.html]《孙春龙:重返缅甸,反思与救赎!》[/URL],有能力的话到[URL=http://szlongyue.taobao.com]淘宝店[/URL]支持一下孙春龙的《老兵回家》

Loading