問題驅動設計與領域驅動設計的區別 - abdullin

banq發表於2022-01-06

著眼於真正的問題,解決方案才會有更大的生存和成長機會。我應該做的:研究現實世界,傾聽人們的問題,並挖掘它們的背後。然後,在編寫太多程式碼行之前找到驗證我的解決方案的方法。

如果過多地關注工程,則可能忽視更多地專注於識別問題和迭代地制定解決方案。
編碼應該在解決方案設計之後開始。設計應該在與人交談並確定問題之後開始。所有三個都應該迭代。
圍繞“產品設計”和“客戶開發”有一個巨大的研究領域。
 

領域驅動設計
領域驅動設計 (DDD) 適用於已存在了的領域。顧名思義,它由領域驅動。我們與利益相關者和領域專家合作以達成共識、闡明地圖、管理複雜性並提供解決方案。
用馬可的話來說:

領域驅動設計社群的主要焦點是試驗、開發和採用方法來了解客戶的目的空間和所有利益相關者的需求。
對映地圖可能不確定,但業務已經存在,並且是可行的。探索是發生在這些已經存在的業務邊界內,並且是向內進行的。
從這個角度來看,問題空間就被定義了。DDD 配備了完善的工具,可以在這種環境中解決複雜性並交付業務價值。
DDD 有助於構建可能的最佳解決方案。
 

問題驅動設計
來自比利時 DDD 社群的Tom Janssens表達了這一點:

在 DDD 中,我們傾向於假設客戶共享的問題是指定好了的。但是當你經營一家企業時,事實證明這是不正確的......
想象一下,您需要寫一本新書、打造一款可持續的產品或協助一家公司探索新的商機。領域不確定。有無數的選項可供選擇。有些會是可行的,有些則不會。這是一片混亂,充滿了可能性。
問題驅動設計的目的是冒險進入這個全新的“有龍”的領域並建立一個新的可行領域。
“生存能力”可以意味著任何事情:養家餬口、建立聲譽、做社會公益、創造大企業。這些是限制條件。
鑑於這些限制,我們與潛在客戶交談,發現他們的問題,並深入研究這些發現。
我們確定並挑選可以以可行方式解決的問題。然後我們形成一個解決方案並找到最短路徑來驗證它。

我們越早發現我們的方法中的缺陷 - 越好。這意味著,我們可以從現實的憤怒中節省時間和金錢,並開始研究新的問題解決方案。
在早期階段,我們可以採用精益創業公司的方法、迭代開發、資料驅動的產品設計和進行客戶訪談的藝術。
如果一切順利——我們可能剛剛在一個全新的領域中雕刻了一個現實。領域驅動設計可以幫助它進一步發展。
 
Tom Janssens 的Virtual Sales Lab就是一個很好的例子。該產品是關於構建利用 3D 技術的銷售和營銷工具。域本身在十年前並不真正存在。它現在正在增長。在接下來的十年中,3D 銷售可能會發展成為一個眾所周知的成熟領域。
為什麼會有這樣的樂觀?當前的 3D 解決方案是不是有點難看?年輕一代更喜歡透過 3D 感知世界。Fortnight 的大型派對,各個年齡段的孩子都在玩 Minecraft,技術進步是問題空間內的明顯跡象,表明了不可避免性。解決方案沒有定義,但問題空間內的深層電流會導致某些事情。

問題驅動設計與領域驅動設計的區別 - abdullin

相關文章