Re: [心得] 為什麼軟體開發者需要在意軟體品質指標

看板 Soft_Job
作者 guest2008 (guest)
時間 2012-05-28 13:19:17
留言 147則留言 (5推 0噓 142→)

: ======================================================================== : 一般我們在談軟體績效指標時,多講的是 *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%。好心還被人家嫌。 所以我根本聽聽就算了,一樣貫徹同樣作風,客戶有要求寫給你,沒要求不要自 己找麻煩,寫了還浪費我的開發成本哩。人家全部的功能都有用到,還稱讚你的 系統真好用(但對懂的工程師來看這個系統,他們會認為你做的真的超兩光,請問 你也是工程師角度看系統的人嗎?還是客戶使用度看系統的人) 維護性: 為啥很多公司,工程師離職後,系統就要打掉重寫??因為寫的很爛嘛~~ 新來的人維護的很痛苦,乾脆重寫。 真的爛嗎?老人沒離開前,這個系統可是活了好幾年,怎麼用都不會壞, 哪會爛阿? 但新人來看完他的原始碼就是搖搖頭,認為需要重寫。 這個議題不發揮了,有興趣的人,自行把後面的內容補齊。 -- ◆ From: 125.230.76.15
※ 批踢踢實業坊(ptt.cc)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1338182359.A.DC8.html

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

guest2008:@superpai: 那快引薦我去當廢材..去脫離這個地獄 05/28 22:34

TonyQ:superpai 他們公司的確是蠻威的就是了... 05/28 22:34

superpai:不開玩笑 我們公司正在徵人 05/28 23:37

superpai:http://minipai.tw/slides/jsdc2012/#slide-12 05/28 23:37

superpai:保證沒有專案。是說其實我不會寫Test就是了 05/28 23:39

guest2008:好恐怖.看到整面牆的代辦事項貼紙..地獄阿.. 05/28 23:45

atpx:那些便條紙...看來貴公司正在用Agile, 是scrum嗎? 05/28 23:54

guest2008:看完了.貴公司用的技術是jquery+ajax+用js的樣板引擎. 05/28 23:56

superpai:是啊 有跑scrum 這樣就看出來啊XD 05/29 00:00

superpai:用jQuery這些是方便啦..要找人是需要做真正要技術的 05/29 00:07

guest2008:繼續聊天:我其實不贊同js做"正經事".我講我親身故事. 05/29 00:19

landlord:我還是找Ruddy老師吃飯就好...進不去這門檻...:P 05/29 00:20

guest2008:2009年我曾做一個全部ajax的網站.去年那個客戶回來找我 05/29 00:20

landlord:to guest2008, 屌的是便利貼上是有"不做"的task 05/29 00:21

guest2008:要在增加新功能.結果我手賤把jquery的版本升級.某些JS 05/29 00:21

landlord:而不是一堆todo的task...這才是軟體開發啊...(淚奔) 05/29 00:21

derekhsu:這麼多顏色的便條紙,誰都看得出來是Agile啊... 05/29 00:22

guest2008:都升級.結果系統掛掉了..花了很多時間"免費做義工"幫忙 05/29 00:22

guest2008:把系統升級成符合新版JS的系統. 05/29 00:23

derekhsu:我好奇的是jquery向下相容度不是頗高?哪裡出了問題? 05/29 00:32

guest2008:應該說補丁吧?剛開始沒那麼嚴.後來嚴謹化.功能無法運作. 05/29 00:36

guest2008:另外我還用了當年免費..現要要付費的grid 套件.. 05/29 00:37

derekhsu:阿,希望有詳細可看,那個函數出了問題? 05/29 00:38

superpai:2011? 你該不會剛好升級到1.6...? 05/29 00:40

derekhsu:1.4 to 1.6? 05/29 00:43

TonyQ:jQuery 唯一一個升級上的大雷就是 1.6.0 那一版 05/29 01:15

TonyQ:就是 prop vs attr 概念大改那一版... 05/29 01:16

guest2008:好恐怖.怎麼那麼多超過1億貝里的果實能力者在這裡? 05/29 08:22

bobju:快回火星去吧~地球是很恐怖滴.. 05/29 13:25

tkdmaf:不是天龍(瓏)國買不到PHP的書XDD!雖然不明白你的意思。 05/30 07:59

guest2008:@tkdmaf: 我是故意(蓄意)裝傻的..還看不出來嗎? 05/31 00:16

您可能感興趣