敏捷团队高效的完成软件架构设计

“在敏捷开发下,如何能经由敏捷团队,高效的完成软件架构设计?”

核心的思维是: 以 “团队” 为纬度,而不再以 “产品” 为纬度进行软件架构设计。唯有如此,团队才能有效的控制、处理产品上的复杂度。

也就是说,传统上, 产品团队都仅有一个、单一的产品软件架构的塑模。这种以 “产品” 为纬度的软件架构方式, 将会使所设计的软件架构, 因过于复杂与庞大;超过团队所能理解、控制、处理的范围。而使软件架构无法建立起一致性、统一性; 某些类(Class)或数据表结构的定义是互相矛盾或相关的规则是互相冲突的。

而过去团队往往得花上大量的人力与时间成本,才能解决上述由软件架构设计所引入的不一致性、不统一的问题。

在敏捷开发中, 为有效的提升产品开发的效率与质量,则可借镜 Domain-Driven Design 的思维;以 “团队” 的纬度,而非以 “产品” 为纬度进行软件架构设计。

每个团队,在 Product Owner 的带领下,只专注在自身团队的 “Bounded Context”;确保自身团队的 Bounded Context 内的类与数据表结构的一致性、统一性。至于,其他团队的 Bounded Context 内是如何设计的,则不关注。

而整个产品,则在 Super Product Owner 的带领下,建立起各个团队 Bounded Context 间的关系、关系类型、接口(协议)的定义。

最后,整个产品团队,将实际上经由持续集成,使由 “团队” 为纬度的软件架构,集成为 “产品” 级软件架构。并得以确保 “产品” 的软件架构,在持续集成后是拥有一致性与统一性的。

“要高效的完成某件事,需先充分理解人类能处理 “复杂度” 的极限为何?”

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码神联盟

企业为什么需要雇佣一名老程序员

本文从经验、判断力、知识面的广度和深度等几个方面阐述了为什么需要雇佣一名老程序员的原因。 ? 经验 老程序员可能无法像25岁时那样,在脑子里保存那么多的代码,但...

34112
来自专栏软件测试经验与教训

如何使用思维导图整理测试点?

思维导图又称脑图、心智地图、脑力激荡图、灵感触发图、概念地图、树状图、树枝图或思维地图,是一种图像式思维的工具以及一种利用图像式思考辅助工具。思维导图是使用一个...

1472
来自专栏华章科技

作为一个专业的数据科学程序员需要具备些什么?

作者:Jerry Overton,一名英联邦科学委员会的数据科学家以及杰出工程师,下一代IT解决方案的全球领军人物。Jerry是高级分析研究的带头人以及英联邦科...

783
来自专栏技术小黑屋

我学习Android的一些套路

今天我将给大家分享一下我学习Android的一些方法和想法,分享中并不局限于Android哪一块怎么学习。而是一个总体的,普适性的学习套路和方法。希望可以帮助大...

1072
来自专栏大数据钻研

统一回复《怎么学JavaScript?》

于时不时,有同学私信问我怎么学前端的问题。 这里统一回复一下,如下次再遇到问我此问题同学,就直接把本文链接地址发给你了。 首先说句题外话。关于有人管我叫大神的...

2524
来自专栏机器人网

工业机器人的编程语言和种类

机器人的开发语言一般为C、C++、C++ Builder、VB、VC等语言,主要取决于执行机构(伺服系统)的开发语言;而机器人编程分为示教、动作级机器人编程语...

3544
来自专栏吾真本

“价值/批量”式产品待办列表

产品待办列表是团队在进行迭代式开发时经常使用的一种工具,来管理在未来迭代中将要实现的用户需求。出现在“产品待办列表”中的用户需求一般以“用户故事”为单位来组织。...

632
来自专栏Java学习网

成为专业程序员的 6 个技巧

成为专业程序员的 6 个技巧 1.在你责怪别人之前,先检查自己的代码 先想一想自己的假设和其他人的假设。来自不同供应商的工具可能内置不同的假设,即便是相同的供应...

2886
来自专栏hbbliyong

更快学习 JavaScript 的 6 个思维技巧

我们在学习JavaScript,或其他任何编码技能的时候,往往是因为这些拦路虎而裹足不前: 有些概念可能会造成混淆,尤其当你是从其他语言转过来的时候。 找不到时...

2647
来自专栏程序员互动联盟

【答疑释惑第四十一讲】自学的工作好找吗?要熟练几门语言

疑惑一 自学的工作好找吗?要熟练几门语言(好困惑,求解)? 有些自学的小伙伴不自信,认为所谓的野路子不行,甚至对自学方法也持怀疑态度,其实我作为过来人,想对对他...

3349

扫码关注云+社区