iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 25
1
自我挑戰組

再戰軟體工程系列 第 24

『好的工具帶你上天堂』 -- 你用的工具是設計來給你這樣用的嗎?

https://ithelp.ithome.com.tw/upload/images/20180108/20107429PcPsYboGjE.jpg
『善用工具』這件事,不論你是否要走敏捷開發,都是不錯的事。人家不是說了嗎:『站在巨人的肩膀上。』不過在實務上,我們經常看到兩種很令人擔憂的工具使用方式:『濫用』與『亂用』。我這裡不把『不用』拿進來討論,是因為這件事大家都知道。人家開發好的工具給你你不用,那當然不是好習慣,這件事Trivial到沒有撰文討論的價值

濫用與亂用有什麼不同?簡單說,濫用指的是用了太多的大工具去解決工作上的小問題。要知道,任何事物都有學習曲線,當這個進入門檻高於你所得到的價值,那工具就被濫用了。有時候不是你痛不痛的問題,是公司是不是因此遭受損失的問題。也就是,你用你的舊方法輕輕鬆鬆地,但是公司因為你的這種工作方式慢慢地付出不必要的損失,那也是需要改變的。然而,最常見的事就是『其實你根本不痛』,或是『公司根本不會因為這樣造成損失』,在這種情形下,硬是把坊間很『潮』的工具引入使用,就是濫用了。

而濫用其實也不算很嚴重,因為不痛苦的事硬去改變,這樣被硬引入的工具自然會被淘汰,因此也不需要太放在心上。只是我必須說,當你引入的工具被淘汰時,也不要太傷心,也許不是你的東西不好,只是大家的腳步還沒跟上你,或者公司還沒看到你預先看到的壞狀況。過幾個月等大家踩到痛處自然會回頭來找你了。

『亂用』,才是筆者認為最糟糕的工具使用方式。 (終於要進入主題了 XD)

搞錯用途

有時候我們在工作上遇到問題不好解決,Scrum Master會跳出來,拿出私藏的工具給你使用。當然OK,那是他本職的任務嘛,但是Scrum Master專業不專業,就看這裡了。如果這個工具本來就不是設計來做這個用途,那你用起來就肯定難用了。舉個例子吧:

Excel

Excel大概是坊間看過最容易被誤用的工具了,因為他一格一格的,又可以上色,又可以設定巨集與函數,最近更絕了,還可以共用,於是經常被人拿來解決工作上的問題。

Excel開宗明義就告訴你,它的用途是要拿來計算、統計、做圖表,那也是他的強項。然而,因為她的table很好用,方方正正的,於是經常會被拿來當成issue tracker。

Issue tracker!?有沒有搞錯?沒有搞錯。共用表格後,凡是有新issue就去加一筆,RD領完issue就把字體標為灰色,解決了就標成粗體,有什麼意見就大家在旁邊直接寫註解,筆者甚至看過直接把Excel當成討論去在那邊討論issue的。我的老天鵝啊!萬一有人不照約定好的格式走,你怎麼辦?你總不會槍斃他吧?

Excel當成Issue tracker只是其中一個例子,筆者手上有一些案子,在拿到更多資源前,也被迫只能暫時地拿共享的excel來記錄issue,但是那是暫時的。當你的公司與手上的issue越來越多,共享的人越來越雜,你需要更專業的issue追蹤工具。

Jira是個不錯的工具,而如果你的團隊還沒有太多經費,你也可以考慮OpenSource的Redmine。

Confluence

『有沒有搞錯,Confluence是付費軟體耶!哪有誤用的問題?』有的,有慘了。就是因為Confluence是付費軟體,於是大家不管在工作上遇到什麼困難,都會想要把資料往裏頭塞。然而,東西塞多了,難免會有消化不良的問題,這時候專業的Confluence管理團隊也許是選項之一,但是這不是我們討論範圍,我們討論的是Confluence的誤用。

Confluence的初衷,是想要做一個『協作平台』,也就是你把它當成一個『知識庫』,並且藉眾人的力量,讓他慢慢形成公司內部重要的Domain knowhow集散地。原意是不錯,那麼把它當成test-case管理站如何呢?

嗯...,好吧至少比excel好一點啦,但是還是少了一點什麼。
你看大家有多愛用excel就好了,連test-case management也那麼愛用excel。

Excel與Confluence有一個共通點:『儲存靜態資料』。以Confluence來說,公司歷史沿革,歷屆董事長芳名錄,新人訓練教材,面試考古題,都是適合存放的內容。test-case為什麼不適合?因為test-case會被執行。我們這麼說吧,一個較具規模的公司,他會有固定的測試案例,會有完整的發布計畫,也會有流通的部署流水線。簡單來說,『測試』這件事情是動態的,拿靜態的儲存空間來用,充其量就是能『放東西』而已。

於是,譬如在版本A發布前,在QA環境要測那些東西,執行結果如何,執行過程有那些問題,幾時發issue給RD的,又是幾時重測,這些都要有紀錄。一樣的事在預產線環境要再做一次,Release當天還要再做一次,但是測試內容與方向,甚至目的都不一樣。

上面的流程,Confluence可幫上一些忙,譬如他可以儲存測試案例集,但其他事就無能為力了。Jira可以幫上一些忙,譬如測出問題來以後的issue狀態追蹤,但其他就無能為力了。

關於測試的管理,解決方案也很多:Jira的Test case plugin是不錯的選擇,有了他,Jira就如虎添翼了。然而,如果你暫時還沒有這麼多經費,免費的Testlink也可以助你一臂之力。

其他

礙於篇幅,其實沒有其他了。筆者只是想表達,一間公司傾全體人員的力量去開發一個軟體,是有它的初始目的與擅長功能的。拿工具來解決痛苦是件好事,但是慎選工具也是很重要。把儲存的工具拿來追蹤動態資訊,或是把計算工具拿來做靜態儲存,都是浪費公司經費的行為,而事實上也沒有真正解決問題。

慎選工具,善用工具,才是邁向好的軟體工程,以及好的DevOps工作模式的第一步


上一篇
『非吾懶也,蓋氣力有限也』 -- 談自動化的力量
下一篇
『你們敏捷都不寫文件的啊』 -- 真相究竟是...?
系列文
再戰軟體工程30

尚未有邦友留言

立即登入留言