2012年7月14日 星期六

為什麼軟體開發者需要在意軟體品質指標 01

作者: HYL (@EVERYWHERE) 看板: Soft_Job
標題: [心得] 為什麼軟體開發者需要在意軟體品質指標
時間: Fri May 25 15:08:04 2012



圖文版在
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

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.