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

數位化轉型不可不知 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注重以下三個重點

  1. Domain Expert(專業領域專家) 合作並且定義出 Domain 的範圍及相關解決的方案。
  2. 切分 Domain(領域)為多個 SubDomain(子領域),並專注在核心SubDomain(子領域)。
  3. 透過一系列設計模式,把 Domain Knowledge(知識領域)注入到 Model(程式模型)中(本篇不探討)。

數位化轉型面臨的問題

在導入數位轉型也不是一件容易的事情,因為會牽扯到幾個問題:

  • 原有的產品服務是 toB 或 toC
  • 既有團隊、公司組織的人事如何安排
  • 需不需要雇用專業人士或請外包團隊協助開發數位系統

上述是數位轉型比較常見的問題,但在我經歷的產品開發過程,問題不單單只有這些 …

每個產業注重的面向、優先順序都不同,在極少與顧客互動的產業中,組織可能會先轉型營運流程的層面,透過結合數位科技簡化組織的管理以及部門與部門間的業務,導入新科技讓工程流程變得更有效率等。

金融、觀光、媒體產業等,組織可能會把重心放在價值主張,從根本層面的探討所提供的產品和服務,像媒體業的公司就會問出「我們是一個販售財經期刊的公司?還是一個提供顧客充足資訊與解析,讓顧客更好的洞悉市場生態,並做更理性且智慧的選擇的企業?」如果答案是後者,業者可能就會將更多的重心放在傳遞(Delivery)與顧客體驗的層面上。

在數位領域中更成熟的組織,不僅轉型了其營運流程以及價值主張; 成為極為靈敏且以顧客體驗為核心的企業,數位成熟的組織更是建立了一整個數位生態,並從能力、文化、與整個生態系統上驅動轉型,成為一個不斷去挑戰、測試、並且極為靈敏的轉型組織。

而像是麥肯錫、IBM 等組織常提起的數位再造(Digital Reinvention)則是一個組織核心價值的根本轉化。也是前面提到的,從根本層面探討目前提供的產品與服務,並重新定義價值主張。在這個階段,組織必須要徹底審視&洞悉 User Journey(顧客旅程),並定義出需要被優化或是新增的環節點,再建立明確的策略。

數位化轉型實務經驗(進入軟體開發的過程)

以我在 Healthcare(醫療)領域,幫助醫院做數位轉型,把傳統的紙本病例轉變為電子病歷的經驗,進入軟體開發階段之前,就需要跟原有服務的專業人士(院長、護理師)做需求訪談,以便確定需求,最後需求確定完再整理好 Spec,需要給服務單位知道產品開發的範圍、時程,也同時讓軟體開發單位了解其中的 Domain Knowledge(知識領域)。

這裡也建議,若客戶允許的話,安排長時間去觀察原先的服務流程, 因為有些「細節」是只有使用者才知道,而這也是站在使用者角度去思考產品的易用性,而非主觀的認知,這是成為一個傑出的 PM 必須要學會的事情。

當 PM 把整理好的 Spec 交付給軟體開發單位,通常 PM 會開一份比較完整、具體的 PRD(後續再分享細節)給開發團隊,這份 PRD 會有:

  1. User Story 完整描述功能的背景
  2. 實務上的 Business Logic(業務邏輯)
  3. UI相關文件(Prototype、WireFrame、Mockup)

而開發團隊會根據 UserStory、Business Logic和 UI 去拆分 Task、Subtask,Task 會是一個具體的執行任務,Ex:UI Layout、Fetch API等各種待執行的任務。

開發團隊在實作階段,通常一但下手開始開發就停不下來了, 所以 PM 一定要交付具體明確的 PRD 以便團隊開發出預期的產品且實際解決使用者的問題。

數位化轉型的小魔法(Tips)

如果你還不知道怎麼開始的話,有幾個方式提供給你參考:

  • 長時間觀察客戶的操作流程
  • 每天問使用者三個問題(Domain KnoHow、使用經驗等)
  • 每個月和使用者做 User research(深層理解用戶行為)
  • 定期參加相關產業活動同時觀察市場競品走向及發展

Ref

comments powered by Disqus