架构活动中如何做任务边界的划分

简介: 【1月更文挑战第20天】

1、任务边界可以打破现有的执行边界

任务分配虽然应当尊重当前问题域到执行域的映射,但却不需要完全遵照这个映射。在一个架构活动中,架构师更应该从用户思维出发,把任务交给能完成这项任务的团队。


在架构活动中,任务边界的划分是暂时性的,不是永久性的。任务边界的划分不同于执行域的划分。执行域的划分是个组织分工概念。每个实体团队在组织架构中有明确的执行域定位。执行域的划分,关系到管理者和团队的利益,是个极为敏感的问题。架构师没有权力更改执行域的划分。


之所以强调暂时性,是因为这个任务边界划分,不一定影响长期的组织边界和团队定位。在这个短暂的架构活动中,你作为架构师应该有任务边界划分的全部授权。


2、任务边界划分有确定的决策优先级

任务边界划分有多种方案,这就意味着你必须有一个甄别方案优劣的决策逻辑。这个逻辑决定了你在多个划分方案之间,将会如何打分或者排序。常见的选择是:

  1. 最大化项目目标的完成度;
  2. 最大化技术方案的结构性;
  3. 最小化整体成本;
  4. 最大化团队的长期稳定性;
  5. 最大化团队的短期稳定性;
  6. 最大化决策者或者赞助者的满意度。


在目标确认环节,如果你能把这些工作都做到位了,那么前四项几乎是等价的。


在给定的架构活动目标之下, 要以最大化架构活动的成功来做任务边界划分。


3、最小化架构目标之外的抽象

架构师经常有做抽象的冲动,导致架构设计中经常会出现不必要的抽象。也就是大家常说的盖楼倾向。


在一个高速迭代的互联网业务中,业务探索的方向变化大,模式更迭快,多层架构抽象往往是得不偿失的。而更好的办法则是做阶段性的重构。


很多架构师在不了解细节时就做抽象,那么效率提升最终只能停留在假设阶段。你可能没有意识到,抽象会提升系统的复杂度,自动削弱系统的迭代效率和稳定性。因此,我非常反对没有任何数据支撑和可度量目标驱动的架构抽象。


不要在架构活动中制造出新的抽象任务。这个的价值就在于简化架构规划的内容,减少执行者的工作量。


4、任务边界划分时要最大化隔离

任务梳理是一个自顶向下的过程,要求我们不能停留在表面的理解上,而要抽取出核心实体,以及针对这些实体的相关操作,并把这些操作隔离出来。有的人分不太清楚“隔离”和“抽象”,这其实是两个完全不同的概念:


  • 隔离是把两个实体的相关的任务分开来,确保独立封装和实现。
  • 而抽象是在两个实体之上抽象出第三个实体,共享部分任务和实现。


抽象这件事情可以后置,等业务稳定了、看清楚了再说。而隔离则不能等,要尽早做。因为隔离后的实体和操作,未来都可以被分别抽象。而对于一个巨石应用来说,就只能做重构了。


5、任务边界划分要面向未来最优

作为架构师,要明确知道你的引导会对技术和组织边界产生哪些长期的影响。所以在任务边界划分时有一个至关重要的问题,那就是怎么运用康威定律:“设计系统的结构和产生这些设计的组织的沟通结构是同构的”


一个大型的架构活动,是企业从旧架构过渡到新架构的最好机会。所以在这个过程中,你可以在一段时间内把不同团队放在同一个办公区,让大家一起做项目,从而最大化组织沟通的连通性。这种几乎全连通的环境,可以加速你寻找到最优的边界划分。而这种最优边界是面向未来的最优,是能够最小化未来团队间依赖的边界划分策略。因为这是基于用户需求的变化,基于技术趋势、竞争态势和数据模型的演变而得到的。


总的原则是,在任务边界划分的过程中,从用户需求出发,在架构目标统一的信条下,最终达成切实可行的、从需求到任务到承接关系的划分。这才是边界划分的王道


相关文章
|
3月前
|
消息中间件 存储 监控
Django后端架构开发:Celery异步调优,任务队列和调度
Django后端架构开发:Celery异步调优,任务队列和调度
68 1
|
6月前
|
机器学习/深度学习 编解码 人工智能
全面超越ViT,美团、浙大等提出视觉任务统一架构VisionLLAMA
【2月更文挑战第17天】全面超越ViT,美团、浙大等提出视觉任务统一架构VisionLLAMA
69 2
全面超越ViT,美团、浙大等提出视觉任务统一架构VisionLLAMA
|
消息中间件 缓存 资源调度
最实用的高并发任务执行架构设计 | 架构篇(2)
最实用的高并发任务执行架构设计 | 架构篇
最实用的高并发任务执行架构设计 | 架构篇(2)
|
资源调度 分布式计算 调度
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
|
数据采集 编解码 人工智能
【计算机视觉】OFA:通过一个简单的seq2seq的学习框架来统一架构、任务和模态
追求多模态预训练的统一范式,以打破复杂任务/特定模态定制的框架。
|
资源调度 Kubernetes 网络协议
一文搞懂Flink架构与任务编排|青训营笔记
本文主要讲述Flink的整体架构,以及流处理任务涉及的各个算子的调度编排机制。为模仿实现一个简易流处理引擎作下铺垫。
560 0
一文搞懂Flink架构与任务编排|青训营笔记
|
存储 数据采集 消息中间件
互联网积分任务体系架构演进
互联网积分任务体系架构演进
334 0
|
机器学习/深度学习 人工智能 文件存储
AAAI 2023 | 打破NAS瓶颈,新方法AIO-P跨任务预测架构性能
AAAI 2023 | 打破NAS瓶颈,新方法AIO-P跨任务预测架构性能
170 0
|
存储 资源调度 运维
基于 MQ 的分布式 Serverless 多租任务处理系统架构演进
构建一个面向多租场景的 Serverless 异步任务处理系统面临多租隔离、资源需求多样化、任务管理等多种挑战该如何解决?快来查收这份异步任务系统构建实战一起学习吧!
272 0
基于 MQ 的分布式 Serverless 多租任务处理系统架构演进
|
人工智能 资源调度 架构师
最实用的高并发任务执行架构设计 | 架构篇(1)
最实用的高并发任务执行架构设计 | 架构篇
最实用的高并发任务执行架构设计 | 架构篇(1)