2012年7月14日 星期六

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

作者: guest2008 (guest) 看板: Soft_Job
標題: Re: [心得] 為什麼軟體開發者需要在意軟體品質指標
時間: Mon May 28 13:19:17 2012

※ 引述《HYL (@EVERYWHERE)》之銘言:
: ========================================================================
: 一般我們在談軟體績效指標時,多講的是 *Lines Of Code*, *Number of Functions*
: , *Number of Classes*, *Cohesion and Coupling*, *Test Coverage* 等
: ,但是,我今天想講的不是這些靜態分析所使用的指標,而是在程式運行時
: 的評量指標 Production/Runtime Quality Metrics。
: 這些執行階段的品質指標,讓我們了解程式在運行時的效率(performance),
: 可靠度(reliability),可用度(availability),維護性(maintainability)等
: 重要問題。
: 為什麼我們要在意這些指標
: =========================================================================

 其實原始文章他要談的品質是這4點,跟什麼 test case 完全無關。

 這四點其實是牽扯到「系統結構」跟什麼測試一點關係也沒有。

 有些網頁開起要 0.N 秒才出來,甚至超過 1秒,這就是效率問題,
 這些我都覺得很誇張,一樣的程式語言,一樣的需求,不同人寫
 開啟的時間只需要 0.0N 秒,是前面那些的 1/10 甚至是 1/100 的用時。
 然後那些寫出 1 秒才開啟頁面的工程師,的就開始找環境設定,
 找一些偏方,最後的結論是:不需理會,以後電腦等級更好就解決掉。

 實際上,偏偏就是手機出來了,硬體配備性能往下掉,你不去把
 framework 底層搞定?卻一直怪罪是硬體不好?設定沒有最佳化?
 結果後面卻出來一個配備更慘的執行環境出來了你怎麼辦。


 可靠度沒啥好談的,過去我也曾經被罵過,
 「製作一個故意讓使用者去犯錯的系統」,
 怎麼說?你要禁止客戶使用 A 功能,有兩種方式,
   a方案: 直接不讓使用者使用這個的機會,讓他在螢幕上消失。
   b方案: 讓使用者點選後,才告知不可以做這個步驟。

 這兩種 a 的可靠度會比 b好,我過去的程式a跟b都寫過,但b這件事我被罵過,
 你就是引誘使用者犯罪!! 卻去怪使用者使用不當?
 要有可靠度,還是要有一個人性化的 UI處理。不要引誘使用者犯罪。

 可用度:
 這件事我也曾經跟好朋友吵過(筆戰而已)..他跟我講我的東西寫這麼陽春,
 還在這邊沾沾自喜。站在工程師的角度,我的東西真的很兩光,明明可以寫
 更好卻只有寫這樣子,但實際上很多人的思維就是工程師的思維,結果幫
 客戶想了一大堆「自己認為好用的功能」,上線後客戶根本不領情,那些新增的
 功能根本使用率不到 30%。好心還被人家嫌。
 所以我根本聽聽就算了,一樣貫徹同樣作風,客戶有要求寫給你,沒要求不要自
 己找麻煩,寫了還浪費我的開發成本哩。人家全部的功能都有用到,還稱讚你的
 系統真好用(但對懂的工程師來看這個系統,他們會認為你做的真的超兩光,請問
 你也是工程師角度看系統的人嗎?還是客戶使用度看系統的人)

 維護性:
 為啥很多公司,工程師離職後,系統就要打掉重寫??因為寫的很爛嘛~~
 新來的人維護的很痛苦,乾脆重寫。
 真的爛嗎?老人沒離開前,這個系統可是活了好幾年,怎麼用都不會壞,
 哪會爛阿? 但新人來看完他的原始碼就是搖搖頭,認為需要重寫。
 這個議題不發揮了,有興趣的人,自行把後面的內容補齊。


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.230.76.15
→ tkdmaf:我認為軟體工程師必看的文件:test_list                    05/28 14:58
→ tkdmaf:也就是測試清單。不過一般人都不做。所以浪費了unit_test的  05/28 14:59
→ tkdmaf:好意。每個功能函式都有一個清單說明他們的功用和測試結果   05/28 14:59
→ tkdmaf:那其實函式本體也不太需要寫什麼註解了。                   05/28 15:00
→ tkdmaf:而最後產出的正好就是給工程師們做維護用的程式手冊。       05/28 15:01
→ tkdmaf:簡單來說,越是要應付需求的變化。測試就顯得越重要。       05/28 15:02
→ tkdmaf:我想我們都並不喜歡工程師卯起來就亂寫code。               05/28 15:05
→ guest2008:必看文件的定義是沒有他就沒辦法做下一步..實際上Tlist   05/28 15:38
→ guest2008:像你所說.很多公司都沒有..所以不是必要..真的必要只有   05/28 15:39
→ guest2008:原始需求書/DB結構/規格書 三樣.尤其第1項才是必看       05/28 15:40
→ guest2008:其實你想看啥..只要你是付錢的人..你要啥我都生給你.     05/28 15:41
→ tkdmaf:沒有不是因為必不必要。是會不會寫會不會用而已。           05/28 15:51
→ tkdmaf:沒有並不代表他就不必要。                                 05/28 15:51
→ guest2008:也許你的公司比較有制度.有很多詳細文件.我換過的公司也  05/28 16:11
→ guest2008:不少.很可惜絕大多數連我上面講的三大必要文件都殘缺.    05/28 16:12
→ guest2008:現在我的觀念都不是那些文件.最重要的文件是「驗收單」   05/28 16:15
→ guest2008:實際上 需求書->測試列表->驗收單 還不是內容快接近??    05/28 16:16
→ guest2008:我描述過內部都不會有問題.你是我的主管..你要啥我通通   05/28 16:17
→ guest2008:生給你. 內部根本不是問題..重點是客戶.你要去塞住客戶   05/28 16:18
→ guest2008:的嘴巴.不要讓他亂搞.天馬行空.加東加西..驗收單是來     05/28 16:19
→ guest2008:管理客戶的.讓案子結案的..其他的你喜歡啥文件都沒關係   05/28 16:20
→ guest2008:只要做這些事情公司還有賺錢..付薪水的老闆愛啥就給啥.   05/28 16:21
→ guest2008:以前在別版我提過山寨手機跟原廠手機的案例..內容太長    05/28 16:30
→ guest2008:不想再打.我只想問你你買不買路邊攤衣服?路邊攤品質差    05/28 16:31
→ guest2008:你幹嘛買他?? 賣山寨手機賺比較多還是原廠? 這個版是     05/28 16:32
→ guest2008:工程師聚集地..大家思維都是理工人的思維.連你提 TList   05/28 16:33
→ guest2008:全都是一樣..我現在雖然還在做這種苦工行為.但我受過市   05/28 16:34
→ guest2008:場的洗禮過..比較跳脫這類宅男思維..你這是理工人的思維  05/28 16:37
→ guest2008:理工人思維對理工人來說原本就是「對的」..我從沒說你錯  05/28 16:38
→ tkdmaf:看你說了一堆謬論真是讓人汗......                         05/28 20:27
→ tkdmaf:而且我認真的思考你到底有沒有看過敏捷軟體相關的書。       05/28 20:28
→ tkdmaf:如果要說工人?難不成一堆美國資深高級工程師都是工人思維?  05/28 20:28
→ tkdmaf:每個人都有每個人驗證良好的作法。                         05/28 20:29
→ tkdmaf:不是像你一樣直接把別人的東西批的什麼都不是好嗎?         05/28 20:29
→ tkdmaf:我喜歡交付有驗證確保品質的CODE卻被你說成工人思維......   05/28 20:29
→ tkdmaf:閣下真有那麼厲害怎麼不是在GOOGLE、微軟?                 05/28 20:30
→ tkdmaf:被你這麼一說一堆軟體開發、軟體測試、軟體工程的書……     05/28 20:31
→ tkdmaf:豈不是全部拿去燒一燒算了?                               05/28 20:31
→ tkdmaf:乾脆就不要幹軟體工程師直接去當水泥工人是不是比較有前途?  05/28 20:32
→ tkdmaf:看你講的東西亂編一通實在讓我連笑都笑不出來。             05/28 20:32
→ tkdmaf:真的有興趣:http://zh.wikipedia.org/wiki/敏捷軟體開發    05/28 20:37
→ guest2008:請不要搞錯..是指"理科人"跟"工科人"..不是什麼理"工人"  05/28 20:37
→ tkdmaf:測試驅動開發正是列入敏捷技術的一環。                     05/28 20:37
→ tkdmaf:OK!算我看錯字。跟你道這個歉。                           05/28 20:38
→ tkdmaf:但我覺得你講得東西說真的,不是很客氣。但我也沒要你客氣   05/28 20:38
→ tkdmaf:只是我覺得:軟體技術本身就有非常多非常大的知識系統。     05/28 20:39
→ tkdmaf:單從幾個工作實例中就能獲得極佳的結論的話。               05/28 20:39
→ tkdmaf:敢問在這個行業待超過了20年以上並且熟讀所有的軟體書?     05/28 20:40
→ tkdmaf:我講的東西也是我從我的經驗得證有效率而且良好的。         05/28 20:40
→ tkdmaf:重點是~~~盲目的自創方式比不上實例的研究既有的知識。      05/28 20:40
→ tkdmaf:我認為,唯有詳細的了解軟體工程及其開發實證。             05/28 20:41
→ tkdmaf:才有提出觀點的價值。但如果我說的東西都是書上講的。       05/28 20:41
→ tkdmaf:那他就是既有存在的價值了。                               05/28 20:41
→ guest2008:沒關係.你可以亂發飆講出你的不爽..這都是君子之爭沒啥   05/28 20:42
→ tkdmaf:你不是也先發飆過了?陪你瘋一下。                         05/28 20:44
→ guest2008:你講的都是對..這些是書本的東西.怎麼會是錯?我的觀點    05/28 20:50
→ guest2008:是站在我曾經是主管去看待這件事. 我講這樣你會更不爽    05/28 20:51
→ guest2008:認為更該要做這件事才對..那是理工腦袋人的看法          05/28 20:51
→ guest2008:今天你是我請的人..我花22K請你做這件事..那我肯定要強   05/28 20:52
→ guest2008:迫你做.但是當你是我每月要花65K薪水的悍將. 我拒絕你    05/28 20:53
→ guest2008:給我做這件事. 我花65K不允許你去做"沒有產值"的事.      05/28 20:54
→ guest2008:理工腦袋會認為這哪是沒有產值? 這產值可大呢!!          05/28 20:55
→ tkdmaf:對!但這串的題目是什麼?軟體品質。你在提什麼?商業價值   05/28 20:56
→ tkdmaf:那這和我們討論的東西有何關係?並沒有。                   05/28 20:56
→ guest2008:事實你去做這件事.有幫公司"真實"賺進一毛錢嗎?          05/28 20:56
→ tkdmaf:另外就算是書本的東西,也得驗證過我才會講。               05/28 20:56
→ tkdmaf:沒實證過我不會拿出來講。                                 05/28 20:56
→ tkdmaf:事實是!你的問題關這串主題啥事?                         05/28 20:57
→ tkdmaf:事實是。交付有用且有品質的code。比交付爛code好。         05/28 20:57
→ guest2008:所以我才跟說依照理工的觀念你的看法完全正確.我從頭到   05/28 20:58
→ tkdmaf:至於商業價值。就是因為覺得應付客戶就好。                 05/28 20:58
→ tkdmaf:這基於商業行為我也不認為說他是錯的。                     05/28 20:58
→ tkdmaf:但久而久之,整個軟體模式就被玩爛掉了。                   05/28 20:58
→ guest2008:尾每一篇文章都沒有講話我"反對"這句話..我只要提到要    05/28 20:58
→ tkdmaf:我也沒反對你在「商業價值」的邏輯OK?因為我都在講軟體品   05/28 20:59
→ tkdmaf:質方面的維繫OK?我知道這不是軟體版OK?                   05/28 20:59
→ guest2008:「需要視專案大小與複雜去斟酌是否有必要去使用」        05/28 20:59
→ tkdmaf:但人家的題目就是軟體品質OK?文不對題作文要扣分的。       05/28 20:59
→ tkdmaf:主管和業務的陳腔爛調我已經聽煩了。                       05/28 21:00
→ guest2008:重複:軟體品質我從沒有反對過.我還一直說我贊成.        05/28 21:01
→ tkdmaf:是啊!但是你的內容把二件事混在一起。                     05/28 21:01
→ tkdmaf:請問我到底要看你軟體工程?還是商業價值?                 05/28 21:01
→ tkdmaf:你要不要乾脆分成二篇文章?軟體工程一篇?商業價值一篇?   05/28 21:02
→ tkdmaf:重點在於:快速的交付能確保品質的CODE。我不懂這對商業價   05/28 21:02
→ tkdmaf:值會有什麼不好?難道我說了要「慢慢交付」嗎?             05/28 21:02
→ tkdmaf:你認為不寫測試快速交付東西很重要。因為公司要賺錢。       05/28 21:03
→ tkdmaf:我認為寫測試而又快速的交付專案讓公司賺錢。               05/28 21:03
→ tkdmaf:這差別只在於寫不寫測試和開發方法的不同罷了。             05/28 21:04
→ guest2008:但我有提過一個見解:如果有替代方案讓「驗證」的效能降   05/28 21:04
→ tkdmaf:重點是:你覺得快!我也覺得要快。                         05/28 21:04
→ tkdmaf:另外一個重點是:經過驗證的CODE,在移植專案時。           05/28 21:05
→ tkdmaf:只要將測試CODE一併移植直接測試就好了。品質繼續顧。       05/28 21:05
→ tkdmaf:專案繼續教,還不用重寫。                                 05/28 21:05
→ guest2008:低..那"做驗證"這件事需要思考一下.注意我用詞是"驗證".  05/28 21:06
→ tkdmaf:那注意我的用詞「測試驗證」比你多二個字。                 05/28 21:07
→ guest2008:我要是你主管.我不會管你是否用這個方案.因為你快速結案  05/28 21:07
→ tkdmaf:總之,沒有測試過的code,只是通過編譯的話。               05/28 21:08
→ tkdmaf:他的品質永遠是問號。                                     05/28 21:08
→ tkdmaf:所以幸好你不是我的主管。不然我會辭職不幹!               05/28 21:08
→ tkdmaf:免得到時候軟體出問題叫我扛責任。                         05/28 21:09
→ tkdmaf:幸好我在我公司是掛技術開發經理。開發的事我說了算數。     05/28 21:09
→ tkdmaf:當然只是掛名!意思就是我上頭就直屬老闆不會有人管我。     05/28 21:10
→ tkdmaf:我可以開開心心的儘我所能去實現良好的開發經驗。           05/28 21:10
→ tkdmaf:而不用受到主管的鳥氣。真是爽呆了。                       05/28 21:10
→ guest2008:這種內部事我都直接授權.專案經理說了算.跟你老闆一樣    05/28 21:13
→ guest2008:團隊目標一致就好..結案收到錢最重要..公司淨利要 > 6%   05/28 21:15
→ tkdmaf:在送一篇給你吧!跟專案開發有關:                         05/28 21:15
→ tkdmaf:http://zh.wikipedia.org/wiki/極限編程                    05/28 21:16
→ tkdmaf:公司賺錢的價值,可不在於專案經理胡亂靠一張嘴!           05/28 21:16
→ superpai:結論是有能力不要去接專案的公司                         05/28 21:16
→ tkdmaf:工程師會閃人有時真的不是能力不好。而是不爽所以閃人。     05/28 21:17
→ guest2008:我不爽閃人的次數不會比你少 :P 我現在都很忍吞不衝動    05/28 21:26
→ guest2008:你付我X萬元要我去掃廁所..外面找不到這麼高薪的掃廁所   05/28 21:28
→ guest2008:你是我的主管你要我做啥我肯定都超巴結.要啥我就給你啥   05/28 21:37
→ guest2008:那幾個wiki我有上去看了.謝謝您提供我鄉下人這些資訊     05/28 21:46
推 NDark:我比較認同這篇的想法.                                     05/28 21:46

沒有留言:

張貼留言

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