首页 > 其他分享 >康威定律:AI 时代的 IT 组织变革

康威定律:AI 时代的 IT 组织变革

时间:2024-01-10 12:02:01浏览次数:32  
标签:团队 康威 软件开发 AI 组织 组织变革 开发 IDE

康威定律:AI 时代的 IT 组织变革_软件开发

据调查报告(见文末链接),在 GitHub Copilot 发布的头 6 个月,在美国的开发人员有 92%拥抱采用了它或者同类生成式 AI 工具进行编码开发。可见码农天然的人皆有“偷懒”之心 - 如果更快、更高质量的炮制出一些代码,少掉几根头发,有什么不好呢?

2023 年 AI 代码生成只发生在个人的 IDE 里

迄今为止,这些“AI 降神”,只是赋能了工程师个人做一些局部的工作。接下来,该轮到在团队协作层面、在整个 SDLC(Software Development Lifecycle - 软件开发生命全周期)产生影响了。在 12 月份 Google Cloud 宣告发布 Duet AI For Developers,而著名开发协同工具 JIRA、Confluence Wiki 的提供商 Atlassian,则推出 Atlassian Intelligence,把生成式 AI 的能力内置于这些产品中。

是时候动软件开发组织的奶酪。有很多岗位可能被消灭、有很多事情应该被自动化、有很多技能不再重要、有很多沟通协作成本也许被清零。新的技术带来新的技能,新的技能带来新的分工,在整个软件开发生命周期里,组织结构与协作方式,都将发生巨变。

2024 年 AI 将影响 IDE 外的事

软件开发,并不只是写写代码。在一套软件的开发过程中,实质上大部分的工作都不是编码,而是交流对话、团队会议、邮件来回、白板讨论、设计论证、新团队成员上手代码(Onboarding)、工作任务交接(Context sharing)... 正如 Google Duet AI For Developers 的专家所说,在软件开发全生命周期里,最容易的部分,可能就是在 IDE 里写那几行代码了

软件工程,不仅是在 IDE 里面,更加是在 IDE 外面、在打开 IDE 之前、在关闭 IDE 之后。

所谓“台上一分钟,台下十年功” - IDE 里写十行有效、最终成为投产软件一部分的代码,那前前后后得做多少功夫?

对于企业 IT 来说,恐怕最迫切需要解决的还不是工程师个人 IDE 里的事情,而是在 IDE 外的那些团队沟通协作的事情 - 那往往是软件开发过程中低效的根源、软件产品里很多 bug 的根源。

老生常谈的康威定律又来了

说到组织、沟通、协作,又不得不把康威定律挖出来讲一下。事实上,每个技术更迭的世代,貌似都要把康威定律又挖出来讲讲。最近的一次,应该是在移动互联网、云计算、大数据各类技术栈涌现的近十年吧。

移动互联网时代,开发人员的“技术栈”、分工,基本上就是写 HTML5 的前端岗位、写 Objective-C/Swift 的 iOS 端岗位、写 Java/Kotlin 的 Android 端岗位、写 Flutter 或者 React-Native 的移动端岗位、写 REST 服务和数据库增删改查的后端岗位,此外可能还有数据库管理岗位(DBA),还有搞大数据的岗位,还有做分布式架构或者中间件的岗位,可能还有得懂点容器技术又写点脚本语言的 DevOps 岗位...

这些岗位所依赖的技术工具、开发框架、甚至一定程度上的知识结构,都很不一样。形成很细很专门的分工。

岗位之间,“隔行如隔山”,都是写代码,但彼此不能打替补互相救援。码农日益像工业时代工厂流水线上的机械工人:专职拧一个螺丝或者专职锤一个钉子。iOS 开发忙的人仰马翻,写 JavaScript 的,过来帮一下忙?门都没有 - 需要重新学习培训,每个一年半载没戏,还不说这些人是否有动力和意愿去学。甚至在 HTML5 的编写工作里还要细分,得专门有人写 CSS(负责给前端“技术工程师”嫌弃做的页面外观“涂脂抹粉” )。

反正,IT 部门不得不“被动”的把员工按技能形成组织,但往往又非常不满意于这种被动形成的组织的协作、交流方式之下的效率。总是想基于业务线、产品线的维度去改良更高效敏捷的组织。究竟应该按码农的专业技能来组织成“资源池”?还是按所支持的业务职能来组织成“攻坚小组”?这个“专业技能 - 业务职能”的“矩阵”,哪个为主、哪个为次?哪条汇报线是实线、哪条是虚线?永远在反复的纠结、来回的摆动中。

屁股决定脑袋 - 康威定律本质上讲的其实是这个事情,一个软件开发组织所设计的系统的架构,受制于产生这些设计的组织的沟通协作的结构。而这些组织的架构,又被带时代烙印的技术栈所导致的技术分工、技能隔离所深刻影响,往往并不能让组织的领导者随心所欲的去构建出真正符合业务发展需要的组织。

开发过程的沟通成本,就在这些令业务部门无法理解的 CSS 开发、JavaScript 开发、iOS 开发、Android 开发、REST 服务开发、数据库开发、数据库管理、系统运维等等各色人等、各种岗位之间消耗。每一个岗位都不能缺、忙不过来其他岗位也无法替补... 

生成式 AI 加持下,各种代码生成工具纷呈。在大部分的应用场景下,用什么计算机语言编程日益不重要 - 不都是用自然语言给大模型写提示生成代码吗?下一代软件工程师的知识结构、所掌握的技术栈,将截然不同。

一个全新的技术世代在开启,这个时代下的软件开发组织该是怎样的呢?

AI 消除程序员的“生殖隔离”

都是学计算机的,都接受过“离散数学”、“数据结构与算法”、“编程语言与编译器”、“操作系统”、“软件工程”、“计算机网络”的训练,为啥懂 Java 的就不能写 C、写“前端”的就搞不定“后端”?这是让业务部门搞不懂、而 IT 部门解释不清的“悬疑”。

“用任何可能的最佳技术手段,完整解决一个实际问题” - 虽然这是作为软件开发者最本来的使命与职责,遗憾的是,这个世界上大部分的开发人员只考虑如何用现实问题去匹配他们狭隘的知识 - “我只负责前端,后端我不懂”、“我只写 Golang,JavaScript 别找我”。所以大多数时间里,任何一个种类的开发人员,都无法独自开发出一个“端到端”能跑的软件...

软件工程确实是一个众多角色、各种技能、丰富知识下的协同大生产。但令人头疼的是,不同领域的程序员,知识技能不仅无法共享、交换,他们甚至令人怀疑是不是同一个物种:就像智人和尼安德特人虽然都是“人属”,却是两个有“生殖隔离”的物种。后端开发看不懂前端开发的代码,Android 工程师不明白 iOS 工程师的算法逻辑... 

所以,生成式 AI 进入软件开发领域,第一件事情是消除一部分隔离(虽然完全抹平恐怕是短期内不太现实的事情)。

其次,IT 组织一直纠结的治理架构:团队人员按技术栈决定的技能来分组?还是按所参与的业务条线分组?也许接下来的“革新”,既不取决于“技能”,也不完全取决于“职能”,因为“智能”将带来颠覆

支持软件快速交付的团队拓扑结构

上述“生殖隔离”般的问题,已经引起业界的思考。团队拓扑(Team topologies ),可以说是近年来出现的一种试图作出的改变,而且其本质上也践行了康威定律的理论。它是 Matthew Skelton 和 Manuel Pais 在 2017 年出版的《Team Topologies: Organizing Business and Technology Teams for Fast Flow》一书中提出的一种团队组织结构模型。该模型认为,团队组织结构应该根据团队的职责和业务流来设计,而不是根据技术或领域来划分。

Team topologies 将团队分为四种类型:

  • 业务流团队(Stream-aligned teams):指匹配业务领域或组织能力的持续流动的工作任务的团队,端到端负责交付一个特定的产品或服务,共同负责产品的整个生命周期。它对应于一个产品、一项服务、一组功能特性等。成熟的产品导向团队,能端到端地完成交付用户价值,而无需将部分工作交由其它团队完成。这类团队的关键是:快速反馈、敏捷。
  • 赋能团队(Enabling teams):如果业务流程团队是“纵向”的,那么赋能团队就是“横向”的 - 为流程团队提供支持的团队。赋能团队通常负责基础设施、工具、培训和其他支持性工作。这类团队的关键是:促进软件开发交付的最佳实践与规模化。
  • 复杂子系统团队(Complicated-subsystem teams):负责构建与维护一个验证依赖于专业领域知识的复杂子系统的团队。团队通常由具有特定技术技能和知识的工程师组成。他们中大多数是相关领域的专家,其目标是降低各个产品导向团队的认知负荷。
  • 平台团队(Platform teams):为整个组织提供基础设施和工具的团队。平台团队通常由具有广泛技术技能和知识的工程师组成。

本质上,Team Topologies 提供了具体可行的实践指南,优化组织沟通结构,使软件系统更好地满足业务需求。它可能是 20 年来试图突破以技术栈和技能为组织分工的制约,对 IT 组织分工协同模式的一次重新变革。

生成式 AI 加持下的团队拓扑

生成式 AI 与相关系列技术的出现,和 Team Toplogies 的模型似乎能形成非常自然的结合,在此我们不妨“畅想”一下。

平台团队将承担起建立、提供和维护以大语言模型为核心的“自然语言计算机”系统的重任 - 这套系统把冯诺依曼架构深深隐藏,统一管理与输出:

  • CPU、TPU、GPU 的混合算力
  • 各种通用或专用模型包括代码生成模型
  • 矢量数据库、数据训练工具以及 RAG 相关基础设施
  • 自然语言处理、机器学习、数据集管理、数据安全管理、ChatBot 等服务

为其他团队的 开发工作提供基础 AI 设施与服务。

赋能团队将负责对业务流团队提供 AI 赋能。他们将培训开发团队如何妥善运用提示(Prompting)、检索增强生成(RAG)、精调(Fine-tuning)、对齐(Alignment )等方法去获得所需的结果,像过去的“敏捷教练”那样,扮演“AI 教练”的角色,帮助业务应用团队更好地整体理解和使用 AI 技术,从而让整个企业的基因 AI 的软件开发最佳实践得以横向复制、规模化。

复杂子系统团队将由企业内某些领域的专家组成,他们将负责领域模型的训练、微调和知识库的建设。这些领域模型将为企业的 AI 开发工作提供有力的支持。

业务流团队将是整个组织中最贴近各类业务与市场的多支团队。他们将利用平台团队、赋能团队和复杂子系统团队提供的支持,持续高效地基于市场、客户需要,以极小的时间单位为交付周期,在平台团队所提供的 AI 基础设施上,在赋能团队的辅导下,交付软件产品。

有理由相信,业务流团队甚至不再归属于传统 IT 部门 - 因为以自然语言为基础、业务语言为核心的开发工作,可能不再需要传统意义上的软件开发工程师去负责,而是由既懂得业务、又贴近客户与市场、并接受 AI 赋能团队指导的业务部门人员去承担。

AI 如何降低软件开发过程的“摩擦”?

在软件开发生命周期中,一直存在许许多多的“摩擦”(Friction),如果能消除这些摩擦,让协作过程变得无缝、丝滑,让软件开发者本身获得良好的开发体验(Developer Experience),他们才有可能高效的开发出有优良用户体验的软件。

除了谈宏大缥缈的什么组织结构、定律,我们也可以更加务实的去看,AI 具体在哪些场景下有助于让软件开发团队的协作更加“无摩擦”(Frictionless)。

  • 新成员加入(Onboarding):生成式 AI 应该能构建整个软件项目沉淀的知识库并随时“答疑”新团队成员关于项目背景知识的各种解答,甚至充当新成员的 mentor(导师)
  • 任务交接(Context sharing):因团队成员的休假、调岗或者离职,过去仅存在于他/她头脑里的知识,需要较长的交接时间 - 1 个月?2 个月?3 个月?永远有可能在交接过程遗漏的信息点。在大型银行、一些求稳的金融机构,交接 6 个月也未必让担心出纰漏背锅的领导者放心。生成式 AI,作为软件项目中不会缺席的成员,不厌其烦、不遗余力的记忆项目的发展,对各种工作任务的背景、上下文,有望提供最详尽可靠的信息
  • 测试:在 IDE 里,Copilot 们已经可以帮助开发者生成高水平的测试代码,让不愿意“浪费”时间写 test case 的码农没有借口。在 IDE 外,测试用例的设计与生成、测试报告的撰写、测试的自动化、甚至一些人类测试工程师未必能考虑到的边角测试场景,也许 AI 都能帮上大忙
  • 文档:这个毋庸多言,理解代码生成代码注释、生成开发接口的文档说明、甚至生成示范例子,应该都是生成式 AI 的拿手戏
  • 代码评审(Code Review):首先对于评审者,回顾与评审他人代码不再是那么大一个负担,对于不熟悉的语言,AI 助手帮助分析和评论,评审者可能不过是再把把关审核一下。事实上专门聚焦对代码库进行代码评审、自动化提交合并的基于大语言模型的智能工具已经出现,也许 Code Review 已经不再是一个人类的工作
  • Debug:掌握整个代码库的 AI,对于定位代码、自动发现潜在缺陷并进行修复,有实现的可能。聚焦这个领域的工具也开始出现

过去的开发团队,对自己的项目尤其是大型项目的代码库,是做不到“了如指掌”的,因此也无法“随心所欲”的修复缺陷、增加功能、敏捷发布。在大语言模型和无数的 RAG、ChatBot、Agent 工具协助下,这方面将得到极大的改观。

但在这整个软件开发生命周期中,有多少人类开发工程师还能继续存在于新一代的开发组织中呢?只有实践才能回答了。

注:本文所引用材料,Survey reveals AI’s impact on the developer experience

标签:团队,康威,软件开发,AI,组织,组织变革,开发,IDE
From: https://blog.51cto.com/u_15735571/9176724

相关文章

  • AI模型的训练过程步骤
    AI模型的训练过程通常包括以下几个步骤:数据准备:首先,需要收集和整理大量的训练数据。这些数据通常需要涵盖不同场景和情况,以便模型能够学会适应各种环境。对于某些任务,如自然语言处理和计算机视觉,数据预处理(如数据清洗、特征提取等)也是必要的。模型设计:根据任务需求,选择合适的神经网......
  • 一文了解:仿真技术的巨头——美国Altair公司
    Altair公司成立于1967年,总部位于美国马里兰州巴尔的摩,在全球拥有近35000名员工,是一家世界领先的软件公司,在汽车、航空航天、军工和建筑等领域拥有广泛的产品和解决方案。Altair公司主要从事汽车行业软件开发,同时也提供其他产品和解决方案。该公司通过其独有的先进仿真技术,帮助客......
  • Thread的方法介绍sleep、join、yield、wait、notify、notifyAll
    本文转载自:https://zhuanlan.zhihu.com/p/665014094 一、sleep方法(线程锁)线程释放CPU进入休眠,但不会释放锁(synchronized),释放CPU,不释放锁这里面有个比较经典的用法,代码中循环太快,导致年轻代的GC频繁或者GC时间久,可以通过Thread.sleep(0)释放CPU,让GC线程去执行回收经典用法:线......
  • AI与低代码解锁无限可能
    前言近年来,人工智能(AI)和低代码开发技术逐渐成为数字化转型的重要推动力。AI作为一项具有革命性潜力的技术,正在改变我们生活的方方面面。而低代码开发则提供了一种快速构建应用程序的方法,使得开发者无需深入编写大量繁琐的代码。这两种技术的结合,正为企业、开发者和用户带来前所未......
  • # yyds干货盘点 # 盘点一个AI都无法解决的Python基础题目(下篇)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【大侠】问了一个Pandas实战的问题,一起来看看吧。上一篇文章说到,看上去AI给的答案,似乎让【大侠】不满意,遂来白银交流群问问大佬们。这一篇文章,我们一起来看看其他大佬给的代码。二、实现过程前面的文章中,我们看到了【瑜亮老师】和......
  • 华为AITO问界M9的10大黑科技,多数盲订用户都不在乎!
    文|AUTO芯球作者|李瑞怎么还有人说华为是骗子?华为一张海报说问界M9上市6天,大定超过3万台。有些人就说这是假的,反正没第三方数据,华为可以随便写。我去,我作为一名大定问界M9的车主,就奉劝哪些黑子,想黑也要找点高级的理由啊你看我26号大定的,现在已经进入到排产中了,算快的了吧。而且,就在......
  • 基于Aidlux平台的智能版面分析
    版面分析是将文档图像进行文档对象识别并判断各区域所属类别,如配图、表格、公式、分栏等,并对不同类型的区域进行切分、识别。后面的工作是实现包括组卷、以题搜题、文档电子化存储、结构化解析等功能。版面分析的背景介绍:目标:图像版面分析任务拆解:PDF转Word:本实战采用CDLA数据集(A......
  • 不卷参数卷应用,OPPO用致善定义AI手机
    2024年,全球智能手机会有一个转折点:市场整体大盘温和回暖,华为强势回归,市场格局很有可能会被改写。更重要的是,AI大模型将在智能终端落地,这将会开启智能手机的新产业周期:变数增加。什么样的手机,能成为动荡市场中的赢家?2024年开年,行业内第一部旗舰机来了:OPPO全面超越Pro的封神旗舰Fi......
  • 借助AI工具提升电子邮件营销内容效果
    随着互联网的普及和电子邮件的广泛应用,邮件营销已成为企业推广产品和服务的重要手段之一。为了提高邮件营销的效果,我们需要关注邮件内容的质量和吸引力。而百度文言一心等AI工具作为一款强大的在线写作工具,可以帮助我们提升邮件营销内容的水平。在大批量群发邮件的时候,如果大量使用......
  • 视频分析丨AI智能分析网关V4如何进行在线播放?具体步骤是什么?
    AI智能分析网关V4是一款高效智能的边缘计算分析网关,可实现人体行为检测、车辆事件检测、环境卫生检测与消防事件检测等,广泛应用在工地、工厂、园区、楼宇、校园、仓储等场景中。将智能分析网关V4结合我们的视频融合平台EasyCVR一起使用,可以实现多现场的前端摄像头等设备统一集中接......