很多人以為,測試人員「只靠測試」,來測出 bug,但事實上他們負責的是「品質」,他們的價值不只是測試本身,更多的是:
☆ 找出哪一些東西需要測試
☆ 說明哪一些東西不測試可能會有什麼樣的風險
☆ 哪一些東西雖然在開發人員的定義不是 bug,卻影響到使用者用起來的感受與品質
☆ 甚至他們需要在短時間內快速探索、學習「新產品」或「新領域」的能力,了解這樣的產品提供了怎樣的功能,是為了解決使用者的什麼問題。
這是我覺得「真正專業的測試/品質工程師」所具備的專業價值與能力,而且這很吃天賦、個人特質,不是每個人都適合或做好的。
很多專業的 QA 才是真正的 domain expert,他們的天性是發散、建立關聯、探索、聚焦、學習。
然而,如果把一般功能的驗證,產品開發的邏輯 bug,也都交給 QA 來一概承擔,那我覺得這產品的極限可能是「沒有 bug」,但「品質」不一定是高水準的,因為 QA 的能力被用在低效的產出上。
▍開發人員怎麼跟測試人員相輔相成
開發上大部分的 bug,都是因為「寫的跟想的不一樣」,想的沒 bug,寫出來卻有 bug。
※ QA 是幫忙解決:「想錯」的 bug。
這問題適合用「#單元測試」來解決,夠多扎實、涵蓋程度夠廣的單元測試,可以避免這類「低級錯誤」。
當正式環境產品出錯的時候,透過單元測試可以快速定位出問題的位置與原因。
※ 如何在賺錢的 legacy code 上,優雅地加入【單元測試】,請參考:https://dotblogs.com.tw/…/201905-unit-testing-effectively-w…
另一種 bug 是每個人寫的都沒問題,但串起來的部份沒做好。這類就適合依靠「#驗收測試」來模擬,站在使用者的角度,用使用者的情境,自動化的去「走」這些情境,驗證功能、情境、資料是否如同預期。
該怎麼確認我們的「驗收測試」沒有想法上的問題,會不會我們覺得是對的,但跟需求單位想要的不一樣?
當然有可能,而且很常發生。這問題通常透過「#實例化需求」來避免。在實例化需求過程,有需求單位、有 BA、有 QA、有 Dev (當然,這只是指團隊有人可以 cover 該角色所具備的技能即可)
那有沒有可能, #實例化需求 仍然不夠?例如:開發團隊做出來的,既符合當初的驗收情境,也通過 QA 的品質要求,PO 也認為這是當初講的東西,但看完之後,PO 覺得當時想錯了,他有更好的想法,或是需要更好的想法呢?
當然有可能!而且這才是「正常」。在看不到實際的功能、使用的情境,只有空想、文字、圖片或雛型,事實上是很難出現「更好的想法」。
但一旦看到了產品功能,一旦試著使用,就更容易激發出更好的想法、更多改善的方式。
所以,Agile 的「#快速迭代交付產品增量」、「#MVP / #MMF」、ATDD/TDD 的「#可行走的骨架」、「#曳光彈式開發」,都是為了能用最小的付出,獲得最大的 outcome。(這個 outcome 不只是功能本身,也包含了發現我們的功能根本是無用的廢物,或是發生了不同的 event 而產出更棒的作法)
最後,有沒可能上面的理想狀況都做好了,但產品卻因為功能頻繁修改,而越來越慢、越來越肥、問題越來越多?
當然有可能!所以,從一開始的設計,就要 #即時重構,要重構前要有測試的保護,如果一樣都要寫測試,那 #TDD 會比候補測試來得更加「事半功倍」,用測試來描述情境、驅動開發、維持易用性,搭配重構來穩定設計、確保彈性、夯實品質,讓開發與維護的成本曲線是緩慢上升、斜率趨近於0的直線。
※ 想要用測試描述需求、探索需求、分析需求,並找到核心的情境,適當的開發順序,請參考【TDD與持續重構】:https://dotblogs.com.tw/…/201907-evolutionary-development-t…
※ 想要從軟體架構設計上達到「職責、關注點分離」,讓團隊能依循這樣的設計規範來達到「消除重複」,可以善用【DI與AOP】的設計,請參考:https://dotblogs.com.tw/…/201905-dependency-injection-and-a…
如果該具備的基礎建設都有,該了解的功能實踐基本也都能掌握,但你的產品開發的瓶頸,最後是卡在「時間不夠」、「時程太趕」,那其實問題有兩種。
第一種,需求沒照價值的優先順序排列,且不具備「捨棄」低價值功能的勇氣,想要的太多,需要的太少,當然快不起來。另外這一類問題常見的還有,無法把需求 end-to-end 的切細切小。
第二種,就是開發能量的不足。老話一句,加人是沒用的。在產品開發的領域,scale-up 遠比 scale-out 實際多了。三四個精英可以抵得上兩三個團的戰力。
如我最近最常講的一句話:「我認同沒有時間是個問題,那你做了什麼來改善這個問題呢?」
※ 很多人的開發方式、開發環境、開發工具,根本是原始人等級的,想要往【極速開發】的領域邁進,請參考:https://dotblogs.com.tw/…/2…/11/29/201905-extreme-developing
最後,有沒可能講了那麼多,都只有自己會,但團隊不買單、老闆不買單?
當然有可能,導入變革本來就是軟硬技能的綜合體,如何發揮影響力,如何幫助大家無感,如何找到對的 roadmap,如何讓大家嚐到甜頭,如何讓大家自己想要?
這是敏捷教練+技術教練的職能範圍。
※ 想要 train 出自己團隊的 internal coach? 請參考【工程實踐與流程規範導入實務】https://dotblogs.com.tw/…/engineering-practice-and-process-…
▍Road Map
上述雖然好像是打廣告,但我真心希望各位產品開發的朋友們想一想,整個產品開發事實上真的要具備很多專業的技能。
我在 2018 年、2019 年所開立的課程,就是希望把這條 road map 拉出來,幫助大家打通。
每一塊都是不可缺少的拼圖,一環扣一環,你能找到兩塊拼圖拼起來,就可以獲得 1+1 > 2 的綜效。
最後,還有幾門主題是這條 road map 上我正在準備的內容:
① 實例化需求
② 敏捷落地 (agile, scrum, lean, kanban, XP 揉在一起的綜合技)
③ Exception and Error handling
希望能在 2019 年下半年,幫助大家開地圖,帶著大家一起砍怪升級練技能。
同時也有10000部Youtube影片,追蹤數超過62萬的網紅Bryan Wee,也在其Youtube影片中提到,...
「scrum 優先順序」的推薦目錄:
scrum 優先順序 在 Zoey 佐依 Facebook 八卦
▋年後開工全面啟動⚡ #SCRUM敏捷訓練
- 提升工作績效,用一半的時間完成兩倍的事
年後開工後一路忙到底😂
好多專案同時展開,每天都希望可以有更多時間~
我想起去年閱讀到的一本書
《SCRUM敏捷實戰手冊》正好能解答這個難題
▸ ▸ #SCRUM到底是什麼?
相信在新創或中小企業工作的你可能聽過
它的中文被翻譯為「#敏捷訓練」
核心概念為「#用最少的時間完成最多的工作」
SCRUM 著重改變傳統管理結構🔥
改變激勵員工的誘因 & 改變績效管理方法
———
文章太長來不及閱讀?
可以先分享這則貼文到自己版上
晚些再回來看呦~
_____
作者在書的開頭便提到:
「#個人與互動」比「流程和工具」更重要
「#實際運作軟體」比「包山包海的文件說明」重要
「#客戶合作」比「簽約協商」更重要
我們可以說敏捷訓練算是一種比較彈性、講求機動
且以人為本,法為輔的訓練法
一般而言,一次的 Scrum 訓練會為期 1 - 4週
作為專案衝刺使用,最常用在程式開發、
產品開發或者某一行銷企劃時使用
進行方式主要由「#角色與活動」組成(可以想成桌遊?
▸ ▸ #角色分別有
❶ #產品負責人 Product Owner (PO)
負責按照價值來排定工作優先順序
並且建立「產品待辦事項清單」
*這點不會以「優先順序」來排待辦事項
而是使用「重要程度」來排待辦事項
類似於「每件事都很急,所以沒有哪件事比較急,
只有哪件事比較重要」的概念💪🏻
❷ #敏捷教練 Scrum Master (SM)
SM 在書本的翻譯是 Scrum 大師
但我覺得他就是一個教練的角色
主要的工作是監督,並幫助團隊提升速度
就像球隊教練一樣,協助團隊保持流程暢通
排除拖累團隊進度的障礙
這就是他們 「每天」唯一的工作
❸ #團隊成員 Development Team (DV)
DV 通常會有 5-9 個人所組成
他們是完成工作的主力人員
不一樣的是,這群人也會參與會議決策的動作
不同於一般管理階層的聽令行事
DV必須在PO交出產品待辦事項清單之後
一起決定下一個階段可以完成多少任務
以及要解決哪些問題
↓ ↓
透過不同角色的互動與配合,
如下方流程圖跑過這幾周的快速訓練⚡️
在讀這本《SCRUM敏捷實戰手冊》的時候
一直想到鋼鐵人 Tony Stark
總覺得小勞勃道尼在戲中詮釋的Tony
✨ 絕對是個 SCRUM 愛好者 ✨
SCRUM 是一套又快又狠又精準的工作方式
好像一直有人在你耳邊彈指🤟
一直有人在你耳邊說「Let’s keep moving~~」
我個人覺得這樣的工作方式壓力有點大
但 SCRUM 的核心宗旨就是分秒必爭
並著實的體現「在一段期間,完成一堆任務🔥」的精神
以上文字可能不夠清楚展現這套流程
我將完整的文章放留言區,希望對你有幫助呦👇🏻👇🏻
scrum 優先順序 在 DavidKo Learning Journey Facebook 八卦
Agile 真的沒用嗎?
(1) 誤認 Agile 就是 Scrum
很多人都誤認為 agile 就是 scrum, 就是要找 scrum master, 要有人扮演 product owner, 要開一堆的會.
事實上, agile 是一種文化, 一種 mindset, 當初敏捷宣言定義了 agile 的思維, 而 Scrum 只是落實這個思維的其中一種方法, XP, FDD, 和 Kanban 則是其他的落實做法.
(2) 所以是 Scrum 不行嗎?
Scrum 是從管理的角度來看專案如何進行, 他主要是利用 PDCA 的做法, 從優先順序高的先做, 週期性規劃和檢視. 這跟一般專案管理思維是相符合, run 不好 Scurm 大多是因為讀死書, 沒有掌握好精神, 導致在執行時, 不求甚解和不知變通.
(3) 如果本業是軟體開發, 還是要有軟體開發的專業技能
另外, 因為 Scrum 要週期性規劃和檢視, 可以程式一但週期性調整, 就容易改 A 壞 B. 但是主管不懂程式, 或是團隊工程實踐技能不強, 導致結果不盡理想.
需知如果本業是軟體開發, 還是要有軟體開發的專業技能, 沒有 CI, 測試自動化, source control 等等這些基本功, 你說軟體品質和開發效率能夠好到哪邊呢?
(4) 那你有更好辦法嗎?
或許 Scrum 的做法在有些地方不是很理想, 或者還需要搭配很多東西才完整, 哪想請問你是否有更好的作法呢?
Waterfall 就能適用所有狀況, 就不需要改變或是整合其他做法嗎?
pic source: https://www.agilewithedele.com/blog/2018/12/agile-doesnt-suck-your-execution-does/
scrum 優先順序 在 敏捷和Scrum - 有什麼區別? - iT 邦幫忙 的相關結果
組織可以靈活地使用許多可用的框架,如Scrum,... ... 這樣做的優點是能够靈活地快速回應需求的變化和業務的優先順序。敏捷解决了在開發開始之前等待 ... ... <看更多>
scrum 優先順序 在 ScrumMaster 的檢查清單. 如何成為優秀的Scrum Master? 的相關結果
ScrumMaster 能協助PO 找到更好的方式來維護產品待辦清單(Product Backlog) 和發佈計畫(Release Plan),藉此提昇PO 的工作效能。(注意,產品待辦清單的優先順序是PO ... ... <看更多>
scrum 優先順序 在 做不完的專案需求,我們該如何排定實現的順序? - 進度條 的相關結果
但實際進行專案後,才發現不管怎麼是用看板還是Scrum,細切出來的工作總是如 ... 和需求,給排定出該實現的優先順序,並且一步一步的把產品架構出來。 ... <看更多>