作者Obb (不开心的基因)
看板Soft_Job
标题[转贴] 软体专案
时间Mon May 10 11:29:10 2010
http://stupid77.com/?p=882
因缘际会在开发同事B的桌上看到一本书《人月神话》(The Mythical Man-Month),第一
个反应(恕我孤陋寡闻.),怎麽一个软体开发进度管控的人会看这种”神话”故事呢?好
奇的拿起来翻阅了一下,我才知道这是一本畅销了近三十年的书籍,讲的就是软体开发的
管理,活灵活现的,让我一读不可收拾…
我不是来推荐图书的,因为过去几年工作下来,除了主导过几个软体开发专案外,还有一
些管理上有待厘清的疑虑,正如先前跟一位软体开发几十年的前辈洽谈之後,他也表示,
软体开发虽然有几十年的历史,但仍旧是一个新兴的产业,很多管理上的规范,仍旧没有
一个标准,大家都是根据一些经验,自己找出一条管理的路…
为什麽说软体专案管理大不易呢?因为它具备了几种特性,复杂性(complexity)、一致性
(conformity)、易变性(changability)、不可见性(invisibility)…
我想先表达一个观点,我非常认同作者Frederick P. Brooks, Jr.所说的一句话,也是本
书的重要观点,「在一个时程落後的软体专案增加人手,只会让它更加落後….」,分享
一下我过去带领软体开发的心得来对比《人月神话》一书的观点吧…
我认为在软体专案开发的过程中,第一个问题就是开发需求一再变动,而这个变动产生自
从头到尾没有很清楚的知道想要做的是什麽东西,因为一般企业普遍面临着时间、资金的
压力,经营成本不小,又有不少的竞争对手,因此一般都是先作再说,但这就造就了,开
发的过程需要变更需求,因为过程中原本预想的实现方式,也许时间过高,也许成本过高
,也许根本就做不到,而这是一种致命的伤害,轻则开发进度落後,重则做出一个四不像
的软体产品,因此作者提到所谓的第二系统效应,以及需求规划与沟通的重要性,他认为
一个软体专案的开发,其实前期规划的时间应为整个时程的1/3,而真正写程式的时间其
实只有1/6…
第二点,沟通与进度掌控的重要性,延续上述的概念,规划的时间至少是整个专案时程的
1/3,就是要把概念跟其他部门沟通清楚,并且跟每个开发的工程师也沟通清楚,甚至在
开发的过程中都需要不断的跟进沟通,作者引用了圣经启示录中巴别塔的故事,因为所有
餐与建筑巴别塔的人员彼此间语言不同无法沟通导致了失败,突显了沟通的重要性,经常
开发上一个小细节没有沟通清楚,导致了南辕北辙的结果,这不仅浪费时间,也导致开发
成本的增加,所以除了沟通之外,随时要掌控即时的开发进度,作者提到,「为什麽专案
会落後一年,因为每次落後一天」,就是如此的无关痛痒造成的,其实同样的,李开复先
生在其《世界因你不同》一书中,也专章提到利用白板做为研发沟通工作的重要性…
第三点,或许这点有些争议,至少对於公司的管理层,因为软体专案的开发是一个团队的
工作,团队的合作很重要,团队每个人各司其职,但他们必须对於这个专案整体都了解,
如果他没有通盘了解整个专案的目的与逻辑,很可能他完成的程式是无法使用的,这就如
同外科手术一样,然而,站在公司的立场,总是希望公司的商业机密越少人知道越好,这
必须要突破,或者找出一个折衷的方式,不然专案成果将跌破大家的眼镜…
第四点,软体测试以及系统商品化的整合过程,较有经验的工程师懂得帮自己预留较多的
测试时间,因为软体开发本身具有较高的不确定性,然而,如果公司所给的专案开发时间
有限,那麽测试以及整合的时间也受到压迫,最终导致一个不稳定、不好用的软体系统商
品,这点作者就提到写程式的时间容易估算,但是除错(debug)是个大学问,而除错以及
软体整合的过程,经常是造成整个专案延误的主因,所以作者说,依据他的经验,除错以
及系统整合测试的时间应该安排一半的专案时间,因为这是软体专案过程中,最难也最耗
时的部份,而这点对於不懂软体开发的人来说,非常不可思议…
最後一点,开发工程师的素质以及人数,这也是本书《人月神话》的主要观点,软体专案
开发一般以「多少人、几个月」的方式来评估成本,但是软体开发并不像种田一样,加越
多人进来进度就越快,相反的因为人越多沟通成本越大,更可能导致一个已经延误的专案
,进度更慢,这是因为软体开发是一种脑力智慧,中途换工程师或者新增工程师,往往需
要不少时间来熟悉沟通,因而导致了时间的延误,再者,工程师的素质也有很大的差别,
作者就提到一个熟手甚至比十个生手还堪用,这也是软体开发的一大特性,而这也就是作
者质疑以「人月」来评估软体开发成本的一大弊端…
其实,进度延误应该是经常会发生的事情,我想不盲目加人是个关键,更重要的是大家坐
下来检讨进度落後之因,透过分析找出赶上进度的方式,是否有哪些功能规划有缺失,或
者是工程师对於需求的掌控度有落差,这才是根本的解决之道…
阅读了《人月神话》之後,我又想到了一个更有趣的课题,软体开发过程有苦有乐,而为
何我们所生活的世界中,却有越来越多免费的open source诞生呢?甚至这些open source
更是多半走在科技产业的最前端,如果这些专案不是这样的非营利团体来进行,而是在某
个知名的软体公司之内,又将是什麽情况呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.28.107.74
1F:→ PhoenixSu:只用1/6时间coding出来的东西....别再迷信专案管理了 05/10 12:12
2F:→ PhoenixSu:也许可以改善一些事,但不是万能也不是完美的 05/10 12:13
3F:推 digitalking:很多主管真的认为人加的越多,进度越快,很难沟通 05/10 20:24
4F:→ Obb:对阿。人越多..协调的成本越大 05/10 21:23
5F:推 twk:1/6? 那指代表除错要花 coding 3倍的时间吧~ 05/10 22:55
6F:→ juriolegend:那只代表离下次需求变更到需要翻掉重写的期限只剩1/6! 05/11 01:42