看板 Soft_Job 關於我們 聯絡資訊
圖文版在 http://blog.yunglinho.com/blog/2012/05/17/runtime-quality-metrics-series-1/ 下個月受軟協的邀請,要跟國內發展雲端服務的廠商講一場演講,原本想 講的是 Coda Hale 的 `metrics library`_ 的使用不過跟軟協的詹副秘書 長聊了一聊後,決定把主題改成 *軟體品質* ,畢竟,太偏實作的東西, 拿來給中高階主管聽,可能會睡著吧 XD .. _metrics library: http://metrics.codahale.com/ 軟體品質指標 ======================================================================== 一般我們在談軟體績效指標時,多講的是 *Lines Of Code*, *Number of Functions* , *Number of Classes*, *Cohesion and Coupling*, *Test Coverage* 等 ,但是,我今天想講的不是這些靜態分析所使用的指標,而是在程式運行時 的評量指標 Production/Runtime Quality Metrics。 這些執行階段的品質指標,讓我們了解程式在運行時的效率(performance), 可靠度(reliability),可用度(availability),維護性(maintainability)等 重要問題。 為什麼我們要在意這些指標 ========================================================================= 在台灣的許多軟體公司可能會問,為什麼我們需要在意這些指標?這些指標 又不能拿來賣,客戶在意的是功能及價錢,開發客戶所需要的功能及尋找客 戶,比做這些沒辦法拿來賣錢的東西重要多了。部份中小企業主認為,找案 子跟找錢,才是軟體公司生存之道,軟體品質,是可以在案子簽下來後甚至 結案時在去關心就好。 .. image:: /images/2012-05-17/busy_1.png .. image:: /images/2012-05-17/busy_2.png 但是,如果我們換一個角度來看,這些執行階段的指標,也可以是軟體功能 的一環,可以當做銷售時期的功能及策略性武器來看;試想,若是有兩家小 公司來賣你雲端服務,一間滿口都是功能可以做到OOXX,我們的服務是一條 龍,什麼都做的到。另一間則是把功能的項目清楚的定意出來,同時也告訴 你,他們的服務同時可以服務多少客戶、過去的停機維修週期是多少、他們 可以保障的可靠度是多少;身為專案採購人員的你,會比較 **信任** 那一 家的說法呢? 軟體賣的就是信任 ===================================================================== 軟體賣的就是信任,信任你的軟體,不會出問題把客戶的重要商業資料、商 業流程、及客戶關係都一起毀掉。 在過去單機板的軟體環境下,軟體賣的是 - 信任軟體的功能有達到預期目標 - 信任軟體不管跑多少次,都有一致性的輸出 - 信任軟體的資料儲存是可靠的 - 信任軟體的資料可以轉換到另一個昇級版本或其它軟體 許多單機版或 2-Tier 的程式,經過時間的證明,他們的生命週期,甚至超 過了開發者的生命週期,許多國內百貨零售業用的進銷存系統,目前仍是在 用20年前的 DOS 系統就是一例。對客戶來說,他們對這些DOS版軟體的信任 ,超越了新科技所帶來的新功能需求。只要更新硬體,他們就可以繼續使用 這些軟體,甚至是享受新硬體所帶來的更高效能。 **信任** 在雲端服務上,更是重要;在享受雲端服務的便利的另一方面, 雲端服務的使用者更是需要放更多的信任在服務提供商上,除了上述的信任 外,客戶還要信任你的服務可以隨著他的服務及你的服務一起增長。 Slashdot Effect ----------------------------------------------------------------------- 在談服務的可靠度時,我常用 `slashdot effect`_ 來當例子,換成中文就 是「爆紅效應」,slashdot 是國外一個很大的科技網站,一登上 slashdot 的首頁,在短短的一天內,就可以帶來數十萬的訪問數及數萬的註冊會員, 然而,爆紅後帶來的往往是個災難,許多的軟體在設計、佈建(deployment) 時,並沒有考量到會有這麼大量的用戶,因此一爆紅後往往就是停機收場。 overnight success turns into overnight disaster. 爆紅後,留下的是一 些不滿意的負面記錄,讓客戶及潛在客戶,喪失了對服務的信任;在這個有 Google 等搜尋引擎的年代,過去的不良記錄將永久留存在網路上,因此, 服務的 `可延展性(Scalability & Elasticity)`_ 變的格外重要。 .. _slashdot effect: http://en.wikipedia.org/wiki/Slashdot_effect .. _可延展性(Scalability & Elasticity): http://horicky.blogspot.com/2009/07/between-elasticity-and-scalability.html 如何建立信任 ======================================================================== 信任是個很抽象的名詞,你摸不到看不到,但是卻在人與人的往來,無形中 慢慢的形成;信任就如宗教信仰一樣,你無法買到,無法強迫別人去接受、 也無法一促即成,只能一步步的去建立。 但是,我們是軟體工程師,我們信仰的是科學、是工程技術、是數字管理, 我們善長的是透過科學的研究手法,一步步的去拆解問題,弄清楚什麼是已 知的事實,什麼是未知的問題,面對問題,解決問題。 販賣口號,不是軟體工程師所善長及該做的。 .. image:: /images/2012-05-17/we-can-do-it.jpg 可量化的軟體品質就是信任的來源 =============================================================================== 對於中小企業及新進入雲端服務的公司,「可量化的軟體品質指標」就是可 以最快取得客戶信任的方式;我希望在未來的某一天,我可以聽見台灣的軟 體公司是這麼介紹自己的產品 我們的網路服務,能夠同時服務兩百萬上線用戶,提供 50ms 以下的即時 性的反應,我們的服務,整合了超過40個內部及外部的開發商客戶,在過 去的兩年內,我們提供了 99% availability ; Agile 的開發流程,讓 我們有一致的服務更新週期,面對軟體 Bug 我們能夠提供客戶一個預計 的修正時間,並準時將補丁上線。 待續 http://blog.yunglinho.com/blog/2012/05/22/runtime-quality-metrics-series-2/ http://blog.yunglinho.com/blog/2012/05/23/runtime-quality-metrics-series-3/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.245.64.163
TonyQ:GJ!! 05/25 15:24
thinkniht:品質是很重要沒錯 但如果看到得到品質所需支付的代價... 05/25 23:20
thinkniht:可能就會讓人為了省錢或降低成本而想放棄品質... 05/25 23:21
qrtt1:reStructure Text 感動捏!!! 05/25 23:50
guest2008:CMMI第1級評量百萬起跳.等級愈高愈恐怖.到達千萬價格 05/26 10:34
guest2008:台灣中小型軟體公司並不是沒有CMMI的品質.而是買不起 05/26 10:36
guest2008:中小公司"純利"有百萬以上的有多少家?且沒那張CMMI證書 05/26 10:37
guest2008:大家一樣接得到案子. 要品質很好.真的要看代價.要看成本 05/26 10:39
HYL:軟體品質跟 CMMI 認證無關,矽谷沒聽過有那間公司用 CMMI 的 05/26 11:32
atpx:敝公司花了N百萬通過CMMI 3, 然後又失去了, 因為沒人關心 05/26 13:41
thinkniht:我覺得這文章的理由 比較適合管理者...對於一個PG而言 05/26 20:42
thinkniht:"對方信不信任我的產品 對我真的有影響嗎???" 05/26 20:42
pest:推一個 05/28 02:29