使用DDD將領域發現轉化為產品和組織改進 - Nick
我想在這篇文章中強調的是,我看到很多團隊在發現領域後陷入困境,不知道下一步該做什麼。這裡概述了我使用的一般方法:繪製域圖,確定可能的演變,構建故事,如果您試圖將 DDD 方法引入您的組織,請使用 DDD Exemplar 。
通常,公司希望將對其產品的改進與對其運營模式和工作方式的改進結合起來。在我的工作中,人們通常希望將 DDD 實踐引入他們的工作方式中。我建議執行一個 DDD Exemplar 專案。
DDD Exemplar 是一個專案,理想情況下可以在一個季度內實現,它會導致域的改進和團隊構建產品的方式的改進。示例的目標是展示如何在特定組織內應用 DDD。它為其他團隊複製和適應奠定了基礎。這是團隊如何構建產品的概念驗證。
(您不必在您的組織中稱其為“DDD Exemplar ”,歡迎您使用任何您喜歡的名稱。)
為什麼會在領域發現後陷入瓶頸?
在擁有眾多團隊和數百萬行程式碼(包括大量遺留問題)的公司中,產品、軟體和組織中可以改進的地方無窮無盡。選擇關注什麼是一個重大決定,錯誤的選擇可能對企業和個人產生重大影響。
一些技術領導者覺得他們沒有經驗和技能來自信地領導重大技術和組織現代化。他們習慣於以較小的規模進行管理,但公司已經發展壯大,他們已經超出了自己的舒適區。
領域情形的演進
領域發現技術(如大圖事件風暴)的一個主要目的:是繪製當前的情形上下文狀態,捕捉業務流程、社會技術結構等概念以及客戶和同事等角色。
您想要對產品組合進行的任何更改,無論是面向內部的還是面向外部的,都將改變您的領域情形。您將投資於一個或多個域,以使其更具差異化或降低運營成本。
在發現域之後,我建議使用核心域圖表繪製您的域格局,並探索可能的演變。此活動的目的是將選項視覺化,從發現轉向行動。
DDD Exemplar
下一步是做出投資決策:您應該選擇哪一項提議的改進來增加差異化或消除複雜性?
DDDExemplar 是一個專案,它將以一種有意義的方式發展領域格局,同時也透過 DDD 技術提升團隊的技能。DDD 範例最重要的方面是它將提供組織模型的基礎,如果成功,它可以應用於其他團隊。
這是一個域演變的示例,它非常適合 DDD 示例。在業務、技術和組織改進之間取得了良好的平衡。
- 目前的流程是高度手動的,涉及分散在不同團隊中的 20 多人。大圖事件風暴可用於繪製當前流程,並有助於在產品、工程和其他學科之間建立持久的協作方法。
- 未來的自動化流程需要精心設計,而不僅僅是複製現有的手動流程。另一個使用協作 DDD 技術的機會,這次是設計新流程。
- 該領域有許多錯綜複雜的挑戰,這將為團隊提供一個很好的機會來練習和提高他們的軟體領域建模技能。
- 該域是一個支援域,但它是現有和未來核心域的關鍵推動者。消除操作複雜性將更容易支援核心領域的未來變化。
- 可以在一個季度內交付有意義的結果,這將使業務利益相關者感到滿意——新流程將騰出大量時間並減少支援案例。
如果您喜歡 DDD 中的概念,但不確定它們是如何組合在一起的,那麼DDD Starter Modeling Process是我推薦的起點。它可以指導您完成前幾個發現、策略和實施週期,然後您將處於一個很好的位置來指導自己。
領域故事
建立敘事很重要,至少有兩個原因。第一個原因是檢查您的計劃:您對 DDD 示例的提議是否具有商業意義,還是由您個人對發展最感興趣的領域的個人興趣驅動?
第二個原因是你可能需要出售這個想法以獲得支援和投資。我見過很多好的想法未能實現,因為它們沒有以正確的方式提出。
我的建議是使用 Simon Wardley 的 Strategy Cycle 作為你敘述的基礎。
從目的(道、目標)開始,您的組織要實現什麼目標?貴公司面臨的最重要的挑戰或機遇是什麼?
我最近採訪過的兩家公司也面臨著類似的挑戰:他們在商業模式上做出了重大調整,並正在打造一個新行業。他們已經驗證了這個概念並獲得了大量資金。在開發新的商業模式的同時,他們還需要擴大組織規模。這是我用來開始敘述的商業環境型別。
敘事的第二部分是景觀情形(地利)。為此,您可以使用您建立的當前狀態的核心域圖表。您需要圍繞核心域圖表新增詳細資訊,但該圖表可以總結當前和可能的未來狀態。
敘事的第三部分是氣候(天時)。您的景觀如何根據外部壓力演變?您的核心領域可能會向左移動,因為您的競爭對手推出了一項新的創新,使您的領域變得過時。
敘述的第四部分是教義(法)。這側重於您的組織的運作方式。在您對 DDD 示例的敘述中,您可能希望突出某些 DDD 實踐中的弱點,例如協作設計,如果組織想要實現其目標,就必須改進這些弱點。
當組織擴大規模時,其工作效率低下的成本會被放大。我包含這類資訊是為了強調教義的重要性。
最後一部分是領導力。這是您的核心領域圖表和您的提案的可能演變,這可能是 DDD 示例或其他內容。
我不主張您按照本文中的每個步驟按順序執行並提出 DDD 示例。每家公司都有獨特的挑戰、目標和人員背景,制定良好戰略決策的秘訣絕非易事。
相關文章
- 領域驅動設計的DDD與ddd - nick
- 核心領域模式 -Nick Tune模式
- 什麼是領域? - nick
- 使用Typescript實現DDD領域建模 - Matthew de NobregaTypeScript
- 領域邏輯的組織模式模式
- 從領域到價值流 - Nick
- 領域驅動設計在2021年將會怎樣? - Nick
- 產品領域MVP、MMP和MLP概念區別MVP
- DDD領域驅動設計:領域事件事件
- DDD-領域物件與領域服務物件
- 如何將triz應用於人工智慧領域的產品?人工智慧
- ASA投放觀察:細分領域遊戲產品如何實現“大躍進”遊戲
- 運用領域模型——DDD模型
- DDD之2領域概念
- 數字化營銷如何將公域流量轉化為私域?
- Vuex 進階——模組化組織 VuexVue
- 華為升級系列化產品組合方案,引領數字基礎設施發展
- 在DDD中建立領域模型模型
- DDD領域設計概念梳理
- DDD/HexArch提示與技巧:使用ComponentScan將領域繫結到Spring上下文 - beyondxscratchSpring
- 領域驅動模型DDD(三)——使用Saga管理事務模型
- DDD領域驅動設計pdf
- 使用領域驅動設計DDD和CQRS實現身份驗證的微服務原始碼專案微服務原始碼
- 大資料領域的國外公司、產品和技術列表大資料
- 使用設計畫布發現和建模有界上下文 - Nick Tune
- 如何進行高質量的DDD領域建模?什麼是領域模型?如何捕捉?尺寸如何? - Manning模型
- DDD劃分領域、子域,核心域,支撐域的目的
- 聊一聊中臺和DDD(領域驅動設計)
- 航空航天和國防領域的敏捷產品開發敏捷
- 華為雲 HR 產品:助力先進製造企業實現人力資源數字化轉型
- DDD中如何藉助行業術語突破性發現領域模型? - Mathias行業模型
- ABP與DDD領域驅動關係
- DDD-領域驅動設計示例
- 淺談DDD(領域驅動設計)
- 淺談 DDD 領域驅動設計
- DDD學習(二)—— 領域建模重要概念
- DDD+Javascript領域建模示例 -Alex LawrenceJavaScript
- DDD領域驅動設計:倉儲