这是人月神话:软体专案管理之道(20周年纪念版)的第二章:人月神话,与书名同名,这一章讲的是软体的专案管理,ㄚ琪在专案管理的研究上,主要是师承工业工程系所所教导的要径法(CPM)与计划评核术(PERT) ,当然甘特图也是常用工具,而且曾有一度幻想,会了这套技术可能连盖房子也没问题吧!哈哈…今天看了这一章之后,你会发觉用这套技术在软体的专案管理上可能会有点行不通。
这一章的导引就是‘好菜都得多花些时间准备,为了能让您享受到更美味,更可口的佳肴,请您务必耐心稍待。’–纽澳良.ANTOINE餐厅的点菜单
嗯,好菜总是要等,可能也是要花时间去找,在东京为了找给新手的: 到东京必吃 绝不能错过的十大美食(2010.8.27更新)的新宿西口/赞岐乌龙大使 东京面通团,整个晚上都在找,因为我们迷路了,到最后找不到那一家店,还呕气不吃晚餐回饭店了!
所以真的有些事情就是要等,可是经理人一看见你估了一个软体完成的时间,不管他们懂不懂软体,总是会给你来个质疑,时间是不是太长了,如果你软弱了,变更了时间,好戏就会上场,我稍微列一下这一章的重点让你看看吧!
‘第一,我们目前的时程预估技术还非常不成熟’,而且糟糕的是我们都很乐观的预估我们都会很顺利,这一点我是很有感触的,所以经过一些年来,也练了一些预估的能力,不过我还是倾向保守的预估。
‘第二,我们的预估技术误把工作量和专案进度混为一谈’,这就好像说一间房子1个人盖要10天,2个人盖不就只要5天就好,国小的数学你还在用吗?千万不要那么地随便用,怎么死的都不知道,不过我发觉有些人在预估时间是用程式码的长度来预估说,嘿嘿,好诡异喔,最近一个专案我竟然用这个方法来预估,打我吧!
‘第三,由于我们对自己所做的预估都无法笃定,所以专案经理通常缺乏Antoine餐厅厨师那种委婉的坚持。’这就是我所说的坚持,因为自己虚了,所以才会弱不是吗?从今天起,大家要理直气壮一点才行得通!
‘第四,时程进行缺乏监控,并把其他工程领域上被证明可行或惯用的技术套在软体工程上进行改革。’嗯,我就是把盖房子的技术用在软体专案管理上的,很逊吧!
‘第五,当发现时程延误的时候,自然而然的反应就是增加人手’,因为小学数学有教ㄇㄟ,当然最好用业最直觉了,结果就是死得很惨的下场。
第一个来自过份乐观的错误假设就是,‘每项工作都将只会耗费掉它“理应”耗费的时间’,不过ㄚ琪早期真的会因为心虚把这段时间少掉,为的就是可以取悦客户,唉,真是不智。‘有一本很棒的书叫《The Mind of the Maker》,是Dorothy Sayers所写的,她在书中将创作的过程分为三个阶段:构想(idea)、实作(implementation)、互动(interaction)。’这本书现在缺中文翻译,有意愿的人可以上网去提交。
第二个错误的想法,‘就是来自于预估和排定时程所使用的人月(man-month),这正是一般用来衡量工作量的单位。’…‘所以用人月来衡量工作归模的大小是危险的,也是一个容易遭到误解的迷思(myth)。’…‘只有当工作可被切分(partition),而且投入工作的人彼此不用沟通(communication),人力和工时的互换才算成立’,所以软体的专案管理觉可能靠增加人手来缩短时程的。
在软体专案管理中,‘组件除错(component debugging)和系统测试(system test)是受连续性限制影响最彻底的部份’,但是我猜大部分的程式设计师包括我自己在内,可能都无法接受自己会产生错误的程式码,因此就会分配这里的时间较少,但是作者他在安排软体专案管理时程,他的安排是这样的:
‘1/3 规划
1/6 写程式
1/4 组件测试和早期系统测试
1/4 系统测试,完成所有的组件’
我想以后我可以萧规曹随了。
虽然我知道我们很菜,但是在预估时程的能力还未精进之前,还是只有坚持自己的估计是正确的,因为就自己的能力做估计,是最正确的,纵使我们的软体顾客没有耐心,我想他们如果不接受的话,我猜也只能到别家去吃了!
恶性循环的时程灾难,有一种俗话就是牛牵到北京还是牛,因为如果有这种错误的观念的时候,常人就会为时程的延误加派人手,这样恶性循环就开始了,最后使用Brooks定律:‘在一个时程已经落后的软体专案中增加人手,只会让它更加落后。’
‘软体专案进行不顺利的原因或许很多,但绝大部分都是缺乏良好的时程规划所致。’
ㄚ琪大你好, 不好意思我同样的留言在这里又留了一次,因为怕你看不到另一个在weberp文的留言.
我最近用windows 7装了目前最新版的weberp 4.0+最新版的apache,php, Mysql+phpadmin
也照您的方法把它中文化, 介面显示中文是完全没问题的. 但当我要在新增客户或新增其他资讯输入中文时, 它却显示
ERROR Message Report : The customer name must be entered and be forty characters or less long.
明明我就只有输入三个中文字啊,但为何字串过长呢.
能否请你解惑?
ㄚ琪大你好, 不好意思我同样的留言在这里又留了一次,因为怕你看不到另一个在weberp文的留言.
我最近用windows 7装了目前最新版的weberp 4.0+最新版的apache,php, Mysql+phpadmin
也照您的方法把它中文化, 介面显示中文是完全没问题的. 但当我要在新增客户或新增其他资讯输入中文时, 它却显示
ERROR Message Report : The customer name must be entered and be forty characters or less long.
明明我就只有输入三个中文字啊,但为何字串过长呢.
能否请你解惑?