數位化轉型不可不知 Domain Driven Design

在數位化轉型的過程中,熱愛你產品的所屬產業、認識你既有的產品領域,不僅是 PM, 更是每位夥伴都該有的共識。
工作經驗當中,打造新產品或是把當前既有的服務做數位化轉型,在做數位化轉型如果懂得 DDD(Domain Driven Design), 這對產品開發有絕對的幫助,甚至可以少浪費一些時間去摸索原先的服務(流程、習慣、文化) …
目錄
這篇文章主要是探討數位化轉型的過程,以及開始進入軟體開發的初期階段需要留意的細節。
內容不會提到 RD 把 Domain Knowledge(知識領域)DI(注入)到程式碼當中,這議題很深、很廣,有機會再分享。
數位化轉型的定義&什麼是DDD?
數位化轉型的定義就是把既有的產品,轉型以數位科技服務的過程。 舉例來說,火車票只能在火車售票台購買實體票券,而透過數位化轉型就能使用購買車票的服務軟體購買電子票券。
Domain Knowledge(知識領域),它是數位轉型所圍繞的核心, 在既有的產品服務,一旦開始要做轉型會需要知道 Key Point(問題點)以及 Solution(解決方式)。 在一間公司,尤其是PM, RD若不懂這一塊的 Domain KnoHow(知識問題),那最終開發出來的產品會有很多問題,甚至是無法取代原先的服務方式。
Domain Driven Design 是基於領域專業知識來解決複雜商業邏輯的軟體開發方法論。
-DDD注重以下三個重點
- 跟 Domain Expert(專業領域專家) 合作並且定義出 Domain 的範圍及相關解決的方案。
- 切分 Domain(領域)為多個 SubDomain(子領域),並專注在核心SubDomain(子領域)。
- 透過一系列設計模式,把 Domain Knowledge(知識領域)注入到 Model(程式模型)中(本篇不探討)。
數位化轉型面臨的問題
在導入數位轉型也不是一件容易的事情,因為會牽扯到幾個問題:
- 原有的產品服務是 toB 或 toC
- 既有團隊、公司組織的人事如何安排
- 需不需要雇用專業人士或請外包團隊協助開發數位系統
上述是數位轉型比較常見的問題,但在我經歷的產品開發過程,問題不單單只有這些 …
每個產業注重的面向、優先順序都不同,在極少與顧客互動的產業中,組織可能會先轉型營運流程的層面,透過結合數位科技簡化組織的管理以及部門與部門間的業務,導入新科技讓工程流程變得更有效率等。
在金融、觀光、媒體產業等,組織可能會把重心放在價值主張,從根本層面的探討所提供的產品和服務,像媒體業的公司就會問出「我們是一個販售財經期刊的公司?還是一個提供顧客充足資訊與解析,讓顧客更好的洞悉市場生態,並做更理性且智慧的選擇的企業?」如果答案是後者,業者可能就會將更多的重心放在傳遞(Delivery)與顧客體驗的層面上。
在數位領域中更成熟的組織,不僅轉型了其營運流程以及價值主張; 成為極為靈敏且以顧客體驗為核心的企業,數位成熟的組織更是建立了一整個數位生態,並從能力、文化、與整個生態系統上驅動轉型,成為一個不斷去挑戰、測試、並且極為靈敏的轉型組織。
而像是麥肯錫、IBM 等組織常提起的數位再造(Digital Reinvention)則是一個組織核心價值的根本轉化。也是前面提到的,從根本層面探討目前提供的產品與服務,並重新定義價值主張。在這個階段,組織必須要徹底審視&洞悉 User Journey(顧客旅程),並定義出需要被優化或是新增的環節點,再建立明確的策略。
數位化轉型實務經驗(進入軟體開發的過程)
以我在 Healthcare(醫療)領域,幫助醫院做數位轉型,把傳統的紙本病例轉變為電子病歷的經驗,進入軟體開發階段之前,就需要跟原有服務的專業人士(院長、護理師)做需求訪談,以便確定需求,最後需求確定完再整理好 Spec,需要給服務單位知道產品開發的範圍、時程,也同時讓軟體開發單位了解其中的 Domain Knowledge(知識領域)。
這裡也建議,若客戶允許的話,安排長時間去觀察原先的服務流程, 因為有些「細節」是只有使用者才知道,而這也是站在使用者角度去思考產品的易用性,而非主觀的認知,這是成為一個傑出的 PM 必須要學會的事情。
當 PM 把整理好的 Spec 交付給軟體開發單位,通常 PM 會開一份比較完整、具體的 PRD(後續再分享細節)給開發團隊,這份 PRD 會有:
- User Story 完整描述功能的背景
- 實務上的 Business Logic(業務邏輯)
- UI相關文件(Prototype、WireFrame、Mockup)
而開發團隊會根據 UserStory、Business Logic和 UI 去拆分 Task、Subtask,Task 會是一個具體的執行任務,Ex:UI Layout、Fetch API等各種待執行的任務。
開發團隊在實作階段,通常一但下手開始開發就停不下來了, 所以 PM 一定要交付具體明確的 PRD 以便團隊開發出預期的產品且實際解決使用者的問題。
數位化轉型的小魔法(Tips)
如果你還不知道怎麼開始的話,有幾個方式提供給你參考:
- 長時間觀察客戶的操作流程
- 每天問使用者三個問題(Domain KnoHow、使用經驗等)
- 每個月和使用者做 User research(深層理解用戶行為)
- 定期參加相關產業活動同時觀察市場競品走向及發展