• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

蠢人的黄金

发布: 2008-9-19 10:07 | 作者: 不详 | 来源: 测试时代采编 | 查看: 28次 | 进入软件测试论坛讨论

领测软件测试网


還有一種蠢人的黃金,就是誤以為軟體是軟的,應該很容易。原本硬體被稱作是「硬」體,是因為它不容易改變,軟體的「軟」,是指它容易改變。而事實上,電腦剛開始被發展出來時,軟體的確很容易改變。但是軟體系統已經進展到非常複雜,把軟體的「軟」字當成容易改變的觀念,已經完全過時了。

有幾項研究發現,需求的改變──企圖利用軟體「容易改變」的特性──是造成專案成本超支和時程延誤的最普遍因素。這也是專案被取消的主要原因之一,有些情況下,需求的改變會把專案的穩定性大幅破壞,以致專案根本無法完成。

讓我們舉個簡單的例子來說明軟體並不像人們想像的那麼「軟」。假設您的任務是設計一個能印五種報表的系統,但最後需求變成十種報表。您必須考慮的彈性──「軟」的程度──有下面幾項:

最多十種報表嗎?會不會又再增加?

將來的報表和最初設計的五種報表差異有多大?

9

每一種報表都要列印出來嗎?

所有的報表都是一律以固定的順序印出嗎?

應該允許使用者對報表能做什麼程度的修改?

使用者可否定義自己的報表?

報表會需要翻譯成另一種語言嗎?

不論軟體在設計時多麼小心、多麼高明,總會有一部分是不能改變的。如果只看報表的系統,當軟體修改時,以下的幾個地方可能會變成固定(硬)的:

定義不只十種報表。

10

定義與原始五種報表不同的新報表。

列印其中一部分的報表。

照使用者定義的順序印表。

允許使用者修改報表。

允許使用者定義自己的新報表。

將報表翻譯成另一種拉丁語系的語言。

將報表翻譯成另一種非拉丁字母的語言,也許是從右到左的。

11

非常有趣,我在完全不知道報表的實質內容、用什麼系統列印、資料如何產生,僅知道「五種報表變成十種」,就可以問出這麼一大堆「軟體之軟,軟何如」的問題,而且都是很一般性的問題。

開發人員應該把軟體做得愈軟愈好,這種說法聽起來很不錯,但是軟體的完全彈性就意味著要用無限多種變數,這是要付出代價的。如果使用者只是要五種固定的標準報表,固定把它們全部印出,每次一律以固定的順序、不變的語言,開發人員實在不必要把系統設計到允許使用者自定報表的彈性程度,這樣的高彈性軟體成本可能是標準固定式的100倍到1000倍,而使用者真正需要的只是基本功能的那一部分。使用者(包括顧客和管理者)有責任協助軟體開發人員精確的定義出本系統的彈性程度。

軟體彈性的成本是預存的備用款,限制軟體的彈性,可以節省下這筆錢,但是彈性若是不夠,通常會導致日後花費多到不成比例的成本。這是一個軟體工程上很困難的判斷:如何衡量已知的現時需求和可能的未來需求,然後決定本軟體究竟應該有多「軟」。

從蠢人的黃金中獲得的教訓


總結以上的探討,我們可以得出以下幾點非常明白的軟體方面的事實:

軟體專案的成功與否,不是看早期的程式進度而定。

即使您的軟體不是那麼攸關重大,您也不能為了降低成本或縮短時程而允許產品瑕疵。對於大部分的軟體而言,重點應該放在減少瑕疵,這樣成本和時間就會自然跟著下降。

12

銀子彈對專案的健康有很大的傷害,雖然軟體業的發展歷程似乎不斷宣稱新技術會有多進步。

虛有其表的程序改善運動是另一種特別具有傷害性的銀子彈,因為它悄悄地侵蝕了將來真正想改善組織的企圖心。

雖然軟體有個軟字,它事實上並不軟,除非您在一開始就為它預先設計好足夠的彈性,而這是很昂貴的。

軟體業已有五十年的發展歷程,其中的經驗讓我們學習到以上的事實,而我在後面的章節會詳細說明,最聰明的人和組織會把這些教訓謹記在心。在失敗的組織裡,人們不斷被蠢人的黃金愚弄,反而看不見事實真相。學著抗拒──並且持續地抗拒──蠢人黃金的誘惑,是軟體業必須學習的首要功課之一,這是建立真正專業的軟體工程的第一步。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

33/3<123

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网