阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

敏捷和模块化的关系

  • 2014-11-28
  • 本文字数:1255 字

    阅读完需:约 4 分钟

任何好流程的关键都是要模块化。许多公司的敏捷流程没有考虑他们应用的结构。由于这个原因,许多敏捷的举措都没有能够充分交付预期的商业利益。只有把底层实体(组织或者软件产品)的结构模块化,才能够实现敏捷。

Richard Nicholson 是 Paremus 的首席执行官和创始人,他在 OSGi (Java 模块化的开放的行业标准)的技术白皮书中描述了结构模块化和敏捷的关系。

一个实体要“敏捷”,它的结构就需要有高度的模块化。因此,关于敏捷的问题应该从“如何构建敏捷的业务系统?”变成“如何构建高度模块化的业务系统?”

随着业务单元和服务提供者的增加,组件构成数量和这些组件间的内部依赖也会随之增加。通常,如果任其发展下去,内部依赖的数量会迅速增加甚至超过组件的数量。结构会变得越来越复杂。

所以,敏捷系统需要显著地具备以下特征:

  • 一个分层的结构:每一层都是由下一层组件分层构成的。
  • 抽象:对于每一层来说,参与的组件所暴露的行为与那一层陈述的需求和能力有关。
  • 孤立:高度独立确保在每一层上每个参与的组件的内部构成对外是不可见的。
  • 自描述性:每一层内部参与的组件之间的关系是自描述的;也就是说,按照已发布的需求和能力来描述它们的相关性。
  • 变更的影响:通过语义性版本管理可以把依赖关系的变更影响表达出来。

Kirk Knoernschild 是 Gartner 的研究室主任,他在其《Java 应用架构》这本书中表达了对敏捷和结构模块化之间关系的看法,确定了“中层缺失”问题之所在。Knoernschild 总结说在传统 Java 应用的架构中缺失了本质上的结构层。粗粒度的模块化范围是传统的服务层,另一方面细粒度的模块化是 Java 包和类的层次。粗粒度和细粒度之间缺少中间层。

基于 OSGi 联盟创建的开放的行业标准,OSGi 通过提供 Java 模块化框架直接地解决这个问题。

  • OSGi bundle 按照 Java 包表述需求和能力。因此,第三方可以直接看出来特定的 OSGi bundle 能否被其他备选方案替代。
  • OSGi bundle 使用语义级版本管理。因此,第三方可以直接看出来一个 OSGi bundle 的变更对于那些使用者来讲是不是天翻覆地的变化。

OSGi 还在结构层之上提供了µServices 层。这里有轻量级的服务,这些服务能够在运行期彼此间动态地发现和绑定。OSGi 服务可能同时在同一 JVM 中,或者通过使用 OSGi 远程服务规范的实现,分布在不同 IP 段的多个 JVM 上。

Richard 描述了 OSGi bundle 与 scrum 和看板的映射:

我们很难把 Scrum 应用于大型的单片系统代码库。相反地,Scrum 的概念很好地映射了高度模块化的代码库,这类代码库包含许多自描述的、强隔离的 OSGi bundle。

看板的概念很自然地映射了高度模块化的代码库,这类代码库包含许多自描述的、强隔离的工件;特别要注意的是,看板制品(WIP)流程的思想直接映射了 OSGi bundle 的子集,大家都围绕它们积极地开展工作。因此,看板基于拉动的流程速率是与更细粒度的 OSGi bundle 的变更或发布相匹配的,如果在制品流程中的每个更小的 OSGi bundle 都可以相对地缩短花费的时间,那么自然而然看板基于拉动的流程速率就会相应地有所提升。

查看英文原文: Relation of Agility and Modularity

2014-11-28 05:071963

评论

发布
暂无评论
发现更多内容

为什么 Amazon Bedrock 中的模型只有部分可用?

花花

亚马逊云科技

紧密合作三周年,Elastic颁发腾讯云2022年杰出开源贡献奖

腾讯云大数据

ES

Kubernetes Operator可以做什么?

高端章鱼哥

kubernetes 运维

英特尔锐炫GPU助力AI向大众用户市场普及

E科讯

RestCloud AppLink已支持的数据源有哪些?

RestCloud

零代码 APPlink 自动化集成

「我在淘天做技术」假如你五行属商家,如何算好账?

阿里技术

财务 算好账 财务开发

特权账号管理之定期改密篇

尚思卓越

网络安全 定期改密

在AI时代,提升程序员竞争力的关键策略

不在线第一只蜗牛

人工智能 编程 程序员 AI

流程图怎么画?3个好用的在线流程图软件推荐,绘图再也没烦恼!

彭宏豪95

可视化 流程图 在线白板 画图工具 流程图绘制

Util应用框架基础(六)- 日志记录 - Seq

何镇汐

开源 后端 软件开发

文心一言 VS 讯飞星火 VS chatgpt (134)-- 算法导论11.2 6题

福大大架构师每日一题

福大大架构师每日一题

聚势启新,KaiwuDB 生态联盟沙龙首站落地长春

KaiwuDB

正式开源!网易有道上线“易魔声”语音合成引擎

有道技术团队

人工智能 语音合成 TTS

公司让我开发一个管理系统,有了它,So easy!

互联网工科生

软件开发 低代码 快速开发 JNPF

全域全自主建设,亚信科技AntDB数据库助力广电5G业务上线运行

亚信AntDB数据库

数据库 AntDB AntDB数据库

时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力

TDengine

tdengine 时序数据库

探索向量数据库 | 重新定义数据存储与分析

-亦世凡华、

数据库 亚马逊云科技 向量数据库

常见光模块的封装类型有哪些?

小魏写代码

云图说|华为云主机安全新版本上线

华为云开发者联盟

华为云 华为云开发者联盟 华为云云图说

Docker 和 Kubernetes:技术相同和不同之处

EquatorCoco

Docker k8s K8s 多集群管理 kubernetes 运维

崩溃的阿里云,并非是单纯的坏事?

ToB行业头条

重磅!天翼云发布一站式智算服务平台“慧聚”

天翼云开发者社区

人工智能 云计算 云服务 云平台

数据结构与算法 | 记忆化搜索(Memorize Search)

不在线第一只蜗牛

数据结构 算法 数据

同济 MBA × 和鲸:聚焦商业数据思维培养,赋能工管人才转型升级

ModelWhale

人才培养 企业数字化转型 数智化 MBA 同济大学

快速拉取聚水潭单据的ETL工具

RestCloud

数据同步 ETL

VPC终端节点的实现架构和原理

天翼云开发者社区

VPC终端节点

Util应用框架基础(六)- 日志记录 - Exceptionless

何镇汐

开源 后端 软件开发

在HarmonyOS上实现ArkTS与H5的交互

HarmonyOS开发者

HarmonyOS

Layer 2 真的为以太坊扩容了吗?

Footprint Analytics

以太坊 Layer 2

低代码平台如何提高开发效率?

高端章鱼哥

软件开发 低代码 JNPF

足球盘口数据获取:API接口与数据采集的权衡之道

软件开发-梦幻运营部

敏捷和模块化的关系_研发效能_Savita Pahuja_InfoQ精选文章