开源和领域驱动设计中核心价值的交集

还没有读者喜欢这个。
A bunch of question marks

Opensource.com

几周前,我在微软纽约 DDD 聚会上做了一个题为“通过领域驱动设计打破软件死亡循环”的演讲。领域驱动设计 (DDD) 是一种思维方式和一套优先级,旨在加速必须处理复杂领域的软件项目。我的演讲既是对 DDD 的介绍,也是一个关于扭转大型失败项目的故事。当我们分析使我的团队获得成功的触发因素时,我不禁注意到 DDD 在组织中提倡的东西与开源的核心价值之间存在重叠。

但首先,如何识别正在进行的软件死亡循环?这些是我最喜欢的症状:



  • 你感到达摩克利斯之剑悬在头上。迫在眉睫的厄运笼罩着空气。
  • 每天喝意式咖啡的地方吸引了越来越多的人,他们嘲笑自己是如何集体失败的。这很可笑,因为这很悲哀。
  • 管理层越来越以交付行为本身为荣,而不是以产品本身为荣。
  • 公司的产出仅占个人能力总和的一小部分。
  • 工程师公开谈论其他公司的招聘。
  • 花在 Outlook 上的时间比花在核心编程活动上的时间还多。
  • 管理层提倡对开放式人员编制的盲目信任。

变革推动者必须首先出现才能打破软件死亡循环。他将隔离一个 DDD 研究人员团队,以合作研究分类法。这被称为“发展领域根基”。这个过程在本质上与任何开源项目的开始相同:一小群相互信任的个人将开发可衡量的产出。在 DDD 的案例中,这可能是一个 wiki,而在开源项目的案例中,这是包含开发者“入门”文档的早期源代码。

DDD 需要一位职员来做簿记工作。这个人帮助集中讨论,鼓励开放协作,并使参与者能够在领域内发展和拥有子领域。所有成功的开源项目也都具有协调员的概念,他们知道如何行使适当程度的控制,以及在何处信任个人贡献者在项目领域中发展专业知识。

领域驱动设计将知识锚定在核心概念中,帮助房间里的每个人说同一种语言。开发过程完全透明,并通过午餐会、演示文稿、公开讨论和博客文章很好地扩展。这创造了动力和持续的成功,最终点燃了垂死组织下的早期火焰。

最后,当经过几次发布后,您的客户告诉您您的团队了解他们的业务,并且您的产品解决了一系列实际问题时,死亡循环就被打破了。同样的最终用户验证是任何企业开源项目的回报,是在工作中获得最终满足感。

我相信领域驱动设计和开源只是促进开放、透明、协作和精英管理等核心通用原则的工具。也许这些价值观是任何可持续、可扩展成功的关键?

标签
User profile image.
@artsy 工程主管。关注我 @dblockdotorg。

2 条评论

我发现 <cite> 管理层越来越以交付行为本身为荣,而不是以产品本身为荣。 </cite> 是一个有趣的观点。尤其因为它可能引出进一步的讨论。围绕着“交付”的概念,即满足预定的发布时间框架是否需要在“产品”(即功能)的背景下被低估。

您提到的要点非常完美地描绘了低能量场所。写得不错。

知识共享许可协议本作品根据知识共享署名-相同方式共享 3.0 未本地化版本许可协议获得许可。
© . All rights reserved.