改良式敏捷硬體開發(Modified Agile Hardware Development,MAHD),其概念衍生自軟軟體敏捷開發(Agile development),藉由硬體開發流程中各項機能團隊不斷衝刺和整合,以達到跟軟體敏捷開發類似的用途;但硬體敏捷開發受到先天的資源、規格、架構等影響,比軟體敏捷開發較難與時俱進擴充功能和效能,故硬體敏捷開發需考量產品各項功能的一次到位,以減少後續開發維護過程中的負擔。
【硬體敏捷開發之步驟】
硬體敏捷開發跟軟體敏捷開發一樣有Iteration(迭代、任務循環),也有各機能團隊內部的Sprint衝刺活動,但硬體開發得要做好產品功能和框架的基礎,即「起步(Ramp-up)」階段,從使用者的產品需求角度探討產品需要具備何種功能和框架,除了符合使用者期待外,也能讓日後進入產品開發階段時更快速流暢。MAHD改良型硬體敏捷開發共有如後五個起步階段:
圖 MAHD起步五階段與工作循環
資料來源:Simpson & Hinkle (2020)
在完成五階段起步流程後,就進入各項功能和框架的Iteration,每個Iteration執行為期2~8週,包含整合、驗證、展示和下期Iteration規劃的循環,提升產出速率,促使各項功能和框架能迅速一次到位。
【軟硬體敏捷開發之差異】
MAHD改良式敏捷硬體開發,雖同樣沿用了Scrum軟體敏捷開發的敏捷要素,但因為硬體敏捷開發需要講求框架和功能的一步到位,並未如軟體能與時俱進新增功能或改變框架,因此硬體敏捷開發往往比軟體敏捷開發更久,以產出具有完整功能和框架的雛型產品為目標,並進行使用者實際驗證,使硬體產品在起步階段完成規劃後,藉由使用者反饋與需求,逐步改善功能和框架的完整性。
下表1分別針對軟硬體敏捷開發共有的敏捷要素,分項整理軟硬體不同開發情境的敏捷要素需求。
表1軟硬體敏捷開發要素分項整理
敏捷要素 |
Scrum軟體敏捷開發 |
MAHD改良式敏捷硬體開發 |
用戶故事(User Stories) |
能以「特色」、「待辦清單」來表達 |
需提供用戶需求,然而用戶需求難以表達為工作形式 |
待辦清單(Backlog) |
以用戶故事、技術用例、大綱(Epic)所構成,並可持續更新和決定優先順序 |
工作清單衍生自MAHD起步階段規劃,並可持續更新和決定優先順序 |
任務循環(Iterations) |
每個Sprint為期1~4週,用來驗證原始碼的正確性 |
每個Sprint為期2~8週,用來測試功能和規格 |
發布(Release) |
軟體產出後能與使用者進行互動 |
硬體雛型產品僅用於技術性驗證、使用者實際驗證 |
聚焦矩陣(Focus Matrix) |
無 |
此一方法用來決定任務循環、軟硬體依存性、產品雛型規劃 |
決策者(Decider) |
軟體開發產品經理 |
商業導向之產品經理 |
雛型(Prototype) |
已產出並上線運轉之軟體產品 |
硬體雛型之展示演練 |
需求 |
依用戶故事而定 |
依硬體功能、目標客群和用戶故事而定 |
流程主持人 |
Scrum Master |
專案經理 |
團隊導向 |
軟體開發團隊 |
跨機能工作團隊 |
資料來源:Simpson & Hinkle (2020)
硬體開發完成及產出後,由於難以跟軟體開發一樣,對整體架構做出「重構(Refactoring)」,因此功能更動或追加的成本,也比軟體敏捷開發來得高;若藉由謹慎規劃硬體產品的機能和擴充需求,除了可以減少開發的時間和資源成本,也能與軟體敏捷開發流程整合,來提升交付和改版效率。
【小結】
經由硬體敏捷開發,可讓開發團隊更能從使用者需求角度,了解使用者最關注和最迫切的需求,並在起步階段時決定好硬體產品的各項功能及框架;另一方面,硬體敏捷開發專案通常也配合各項功能的配套軟體協同作業,在開發專案起步後,經由介面設計、低中高機能模擬、完整機能雛型,並在雛型產出前與軟體敏捷團隊進行最終整合,進行硬體敏捷專案的評估和驗證,除能解決在雛型開發中遇到的問題外,也更有利於日後產品釋出後的維護,減少產品故障、功能異常和性能瓶頸,增進軟硬整合效率、為雙軌並行的軟硬體敏捷開發團隊締造雙贏。