ITnews 版 (精华区)

发信人: petrel (紫燕*自在飞花轻似梦*燕燕于飞), 信区: ITnews
标  题: 专家观点:软件开发ABC ...........*
发信站: 哈工大紫丁香 (Wed Oct 16 18:20:51 2002) , 转信

专家观点:软件开发ABC 
(2002.10.15)   来自:E趋势    
 
 
   专访趋势科技研发协理龚化中

 

引言:提到软件开发,所有人知道这并不是一项简单任务,的确,软件产业是个竞争激烈
、变动快速的产业,经常得因市场变动而修正模块,因此,软件厂商延迟产品上市的消息
时有所闻,但这并不代表延迟上市是正常的,它仍需透过各种努力及规范,真正做到「Sh
ip quality product on time」。

 

  软件公司因为业务性质不同,开发产品所需工程也不尽相同,以趋势科技来说,它是
生产软件产品的公司,产品开发出来上市后,由顾客决定是否要购买,因此软件开发的风
险很大。一些小型的软件公司则是接客户的「软件项目」,只需将项目完成即可,风险自
然小。

 

  由此可见,以生产软件产品为主要业务的软件公司来说,规模愈大,开发风险自然相
对提高,如何制作出符合市场需求又完美的软件产品是所有软件厂商的心愿,但这其中牵
涉到许多大小环节,包括公司政策、作业流程、工程师素质等。

 

    Perfect is empty,Simple is beauty!

 

  在这里不妨先就开发原则做简单的探讨。好比说,假若产品不达百分之百完美,是否
就一直更改下去呢?当然不!就拿生宝宝为例,如果人们可以随心所欲地在怀胎时加入特
定基因以生产出一个完美宝宝的话,那么肯定这个产期将遥遥无期。

 

  在控制软件开发风险上,有几项观念及做法。

 

一.“小”-假如产品的size小,复杂度便会降低很多,因此一个好的做法便是将大的项
目切成一个个小部份,再交由不同工程师负责。例如,第一代的 ICQ 及浏览器( Browser
 )都是一个或两个人设计撰写,很快就做出来了。

 

二.“ Simple is beauty ”-愈大的公司生产力就愈低,因为需增加一些额外成本,包
括进度的掌控、工程师的品质等,解决之道就是从制度面(policy)着手,按部就班地做
,将风险到最低,趋势科技做法是将比较关键(critical)的部份先做,如此比较能掌握
风险,这部份便涉及“作业管理“的范畴。

 

  公司的规模扩大以后,便不只需要写code(程序)的工程师,还需要有设计规格、检
查程序、测试程序等人力投入,跟最初情况相比,额外成本是以等比级数增加。总体而言
,更需要制度管理,但,另一方面,制度也可能会形成官僚、扼杀创造力,而更多的文件
未必会让品质变得比较好,解决之道要从使用者的角度来做。

 

  软件产品的品质其实决定于使用者的需求。

  如何才能开发出符合客户需求的产品?这又是一门相当大的学问。

  通常软件开发前需进行市调,做好使用者需求分析,撰写MRD(Marketing Requireme
nt Document)并让使用者持续参与。Market sense很重要,但通常它也是造成产品不断变
动更改的最大来源,因此做好change control( 控制变项 )是相当重要的。软件和硬件
不同的地方在于,软件研发只要多花些时间,几乎没有什么功能是做不出来的,但它的困
难在于“如何取舍”。

 

   创意自由度-软件公司存活的关键

 

不过,市调虽然重要,但从市调能得到有用的资料也是有限的,新力公司的盛田昭夫就曾
说过,你到超级市场,可以看到有各种颜色的牙膏,但随身听却不曾出现于市场中,它又
如何被发明出来?在它出现之前,民众不敢想拥有这种东西,或是想拥有也担心价格将昂
贵地买不起。

 

由此可知,高科技的创新需要靠对科技有概念的工程师发想,进一步地结合innovation(
发明)及market need(市场需求)才可成。

 

  在这里不妨来谈谈,高科技产品的「idea」具备何种特色。可从两方面来看:

 

.独特的竞争力(技术面)-别人做不到的技术而你做得到,这就是个好点子。

 .了解客户背后的需求,换个方式以符合其需求(市场面)-例如客户因为某些因素而
不敢要求需求,则可试试换个方式呈现,好比顾客蛮喜欢电浆电视,但电浆电视的价格实
在太贵了而不敢有需求,研发人员可试着将把电视的品质研究到跟电浆电视一样地好。

 

既然高科技产品的客户需求不易得知,开发产品的灵感如何获得?很多工程师就从“自己
的问题开始着手”。

 

在趋势科技,除了大架构的创意发想由CIO(技术长)或高阶研发主管提出,底下的大小i
dea都是由工程师来想,好的工程师会自己想solution(解决方案),而不好的工程师就成
了coding machine(写程序机器)。

  

  有了产品研发创意之后,如同先前提到的,需要有一个人担任桥梁,将研发人员的发
明(innovation)与市场需求(marketing need)结合起来,因此软件公司的技术长及最
高行销主管扮演着相当重要的角色。

 

  没有软件研发经验的人一定很难想象,软件产品通常需花费80%的沈默成本,亦即产品
还未卖出就已花掉80%的成本。举个例来说好了,可能因为考虑市场变动因素,使得一开始
是想做冰箱,最后的成品却成了烤箱,当然这是夸张的比喻,可见软件市场的变动如何重
大地影响软件研发。

 

  这回先跟读者分享一些简单的观念,下回我们将以实际的项目为例子,让读者体会软
件开发过程的惊涛骇浪!

 

 
 




--

※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.239.94]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.589毫秒