---
# System prepended metadata

title: '[Video Note] [Software Development] [Specification By Example] Gojko Adzic - Specification By Example (Small Talk)'
tags: [Specification By Example, Video Note, Software Development]

---

# 開場介紹
- 主持人Enrico歡迎觀眾參加Avanzco Berta的小談活動，今年首場由Gojko Adzic主講，主題為「Specification By Example」。
- Gojko Adzic提到他先前在談論Impact Mapping的小談活動受到好評，這次將深入探討Specification By Example。
- 這個活動的目的是以非正式方式深入了解講者教授的主題，觀眾可以透過YouTube Chat提問，形成一個互動式的對話。

# Specification By Example (Spec by Example) 定義
- Spec by Example是一種協作的需求和測試方法，是快速取得不同角色（測試人員、開發人員、分析人員、產品擁有者）共識的最快方式之一。
- 適用於短週期的交付，且在這種短週期的開發中，常常難以進行充分的分析，Spec by Example能夠有效地解決這個挑戰。
- 通常在Scrum或Kanban風格的過程中實施，是迭代軟體交付品質的基石，也廣泛應用於行為驅動開發（Behavior Driven Development，BDD）。

# Spec by Example 實際應用
- Collaborative Analysis：透過「Three Amigos」模式，即一位開發人員、一位測試人員、一位分析人員，使用例子進行協作分析，快速達成共識。
- Feedback Exercises：針對5-15人的較大群體，使用反饋練習檢查共享的理解，特別強調邊界條件，以確保大家對於案例的理解一致。
- Divergent Merge Style Workshops：針對更大的群體，將其分成小組進行分析，再匯整結果，快速發現不同理解之處，促使全體達成共識。
- 避免使用「Write and Review」方式，即由一人編寫理解並發送給其他人，因此缺乏協作性。

# Pitfalls（常見問題）
- 由一人執行所有分析，可能導致團隊其他成員沒有參與，應避免這種情況。
- 忽略邊界條件，僅看重正面案例，容易造成共識不足。
- 工具驅動：避免讓工具限制討論，建議使用自由格式的工具，如白板、翻轉紙等。

# 關於 Remote Workshop
- Remote Edition of Specification by Example：2月7日起，5個2.5小時的模組，涵蓋不同主題，以理論和實踐並重，注重實際操練。
- Workshop主題包括如何快速排除誤解、協作分析的引導技巧、使用「Given When Then」格式、Example Mapping和如何將這些融入整個流程。


# 關鍵字
- Spec by Example (Specification By Example)：協作的需求和測試方法，是一種快速取得不同角色共識的有效方式，適用於短週期的交付，通常在Scrum或Kanban風格的過程中實施。
- Three Amigos：由一位開發人員、一位測試人員、一位分析人員組成的小組，使用例子進行協作分析的模式。
- Feedback Exercises：一種檢查共享理解的反饋練習，特別強調邊界條件，用於5-15人的較大群體。
- Divergent Merge Style Workshops：將大群體分成小組進行分析，再匯整結果，快速發現不同理解之處的工作坊模式。
- Write and Review：一種不太推薦的方式，由一人編寫理解並發送給其他人，缺乏協作性。
- Remote Edition of Specification by Example：Gojko Adzic主持的Specification by Example遠程工作坊，包含5個2.5小時的模組，強調實踐操練和理論結合。
- Given When Then：一種描述軟體需求和測試場景的格式，用於明確指定前提、操作和預期結果。
- Example Mapping：一種用於分析和討論需求的方法，通常涉及多角色的參與，目的是建立共享的理解。
- Cycle Time：從某事物提出到最終實現所需的時間，對於減少開發週期很重要。
- BDD (Behavior Driven Development)：行為驅動開發，一種軟體開發方法，強調在開發前先定義系統行為。
- White Cash Plus Project：一個使用儲蓄計畫的專案，早期使用Spec by Example方法。
- Cycle Time Reduction：縮短從提出需求到實現的時間，是Spec by Example的一個優勢之一。
- Example-driven Development：一種開發方法，強調使用示例來指導和驅動開發流程。

 