软件工程的变革之路

一条时间轴,两个视角:左侧是全球软件工程专业化的演进,右侧是我的亲身经历与见证。
(点击标题可展开/折叠详细内容)

核心理念:维持心智模型(概念完整性)的一致性

无论分工如何演变,确保设计理念与实际代码实现相一致,是高质量软件的永恒挑战。

1940s-50s: 个人英雄时代

+

核心要点

软件开发处于萌芽期,形式随意,由少数先驱者(通常是数学家或工程师)独立完成。

角色分工

  • 程序员: 集设计、编码、调试于一身。
  • 计算机操作员: 负责物理操作计算机。
  • 观点: 没有专职测试或分析员。开发规模受限于个人能力,但保证了思想的统一性。

1960s-70s: “软件危机”与工程化诞生

+

核心要点

项目规模剧增,个人模式失效,导致项目普遍失败,即“软件危机”。为应对危机,软件工程于1968年被正式提出。 [1, 2]

关键事件 & 角色

  • 方法论: 瀑布模型出现,将开发分为独立阶段。 [2]
  • 新角色: 系统分析师、独立测试/QA、项目经理。
观点: “外科手术式团队”(Fred Brooks)被提出,尝试在团队协作中保持单一主设计师的核心思想,以维护“概念完整性”。

1980s: 结构化方法与专业化分工深化

+

核心要点

软件工程作为一门真正的专业得到认可。角色分工更加细化,以应对日益增长的系统复杂性,结构化方法论得到广泛应用。

关键角色 & 理念

  • 独立QA与软件测试: 发展为成熟的学科,拥有了独立的最佳实践和工具。
  • 数据库管理员 (DBA): 随着数据库的普及,成为保障数据性能与安全的关键角色。
  • CASE工具: (计算机辅助软件工程) 尝试将开发过程自动化和标准化。
  • CMM模型: (能力成熟度模型) 在80年代末被引入,用于评估和改进组织的过程能力。

1990s: GUI、Web与专业化扩张

+

核心要点

图形用户界面(GUI)和互联网的兴起,催生了新的技术领域和专业角色,分工进一步细化。

关键角色 & 理念

  • UI/UX设计师: 专注用户界面和体验,弥补了工程师在易用性设计上的短板。
  • 前端/后端开发: Web开发的技术栈分化,导致了程序员角色的细分。
  • 软件架构师: 作为保障大型系统“概念完整性”的正式角色被广泛设立。
  • 产品经理: 连接业务需求与技术实现的桥梁,确保团队“做正确的事”。
  • 重量级方法论: RUP等方法论明确定义了各种角色,但其复杂性也为后来的敏捷运动埋下了伏笔。

1998: 我的起点与转型

+

我的软件工程之旅开始于使用 PowerBuilder 开发信息管理系统(MIS)。很快,随着互联网浪潮的到来,我迅速转向为互联网编写 WEB 应用,这是我经历的第一次重大技术变革。

2000: 见证本土软件力量与工程化初步

+

深刻感受到国产办公软件 WPS 在 Windows 平台上的努力。同时,国内首批 UI/UX 工作室的出现开始影响金山、腾讯、网易等巨头,用户体验成为焦点。团队内部,QA (质量保证)SCM (配置管理) 角色首次设立,我们引入了质量平台,并成功通过了 CMM3 认证,深受《人月神话》思想影响。

2003: 基础设施自主与流程改进

+

达梦(DM)参与国产DBMS的研发工作。在此期间,可以下载安装的Jira、Confluence开始出现。我们自建了QA平台以适应自身流程,并通过了CMM认证。担任系统集成项目经理把控应软硬件通讯系统集成的大项目

2000s-10s: 敏捷与DevOps革命

+

核心要点

作为对90年代重量级流程的反应,敏捷宣言 (2001) 诞生,强调小而美的跨职能团队、快速迭代和持续反馈。 [2]

关键事件 & 角色

  • 敏捷团队: 模糊了开发和测试的界限,提倡“T型人才”。
  • 新角色: Scrum Master, 产品负责人 (Product Owner)。
  • DevOps运动: (2000年代末) 旨在打破开发(Dev)与运维(Ops)之间的壁垒。
  • 新角色: DevOps工程师 / SRE。

2009: 创业与移动互联网时代

+

我开始了创业生涯。与此同时,iPhoneAndroid 的发布引爆了移动互联网革命,软件开发的主战场开始向移动端迁移。经历MVP的方式创业和增长。

2012: 云时代的到来

+

云服务迅速普及,我们把所有服务都迁移到了阿里云,极大降低了运维成本。在融资过程中,我们的产品模式对标海外的 Evernote,七牛等对标 Dropbox 。资本的催化下,团队壮大到20多人,尝试过各种工程管理方法效果不佳,一直到后来加入ONES才理解敏捷方法的精髓

2013: 协同工具的兴起

+

国内协同办公领域进入快速发展期,以 Teambition、Tower 为代表的创业公司获得融资。它们通过引入对标 Trello敏捷看板功能,抓住了市场机遇,深刻影响了国内的团队协作方式。

2015: 实时协同成为新目标

+

团队目标转向了实时协同编辑,对标被誉为下一代文档的 Quip(该公司于2016年被Salesforce收购)。不久后,国内的石墨文档也应运而生。

2017-2019: 服务大型企业客户

+

2017年开始,我们深入服务大型企业客户,例如为华为提供服务。到2019年,业务扩展到为百度等大企业提供企业级 Wiki (知识库) 的架构和交付,将协作理念深入到大型组织的知识管理中。

2020s: AI 编码代理的崛起

+

核心要点

以 GitHub Copilot 为代表的 AI 编码助手,预示着软件开发范式的又一次重大变革。

趋势与观点

  • 角色重塑: 人类工程师的角色将更侧重于架构设计、需求理解、结果审查和系统思维,从“代码编写者”变为“代码编辑者”和“AI协作者”。
  • 概念完整性挑战: 如何确保由AI生成的代码能够符合系统整体的架构设计,成为新的核心挑战。
观点: AI 不会完全取代软件工程师,但善用 AI 的工程师将取代不使用 AI 的工程师。

2021: 投身研发管理平台

+

我的公司并入国内领先的研发管理平台 ONES。我开始系统性地研究软件工程、敏捷和 DevOps 的理论与实践,产品直接对标 Confluence 和新兴的飞书文档

2023: 大语言模型(LLM)爆发

+

以 ChatGPT 为代表的 LLM 技术震惊了世界,其强大的自然语言理解和生成能力,为软件开发的各个环节带来了颠覆性的想象空间。

2025: AI Coding 爆发与新范式

+

核心要点

随着 Claude Sonnet 4 等先进模型的普及,AI 编程工具 Cursor、Claude Code 等变得广泛可用,引发了 AI Coding 的全面兴起。

新范式诞生

一种融合人类智慧与 Agent 能力的全新 AI 软件工程方法论开始形成。

观点与反思: 这让我们重新回到了《人月神话》的起点进行思考:当 AI Agent 的编程能力足够强大时,软件开发的组织形式和理论基础会演变成什么样?项目管理的核心矛盾是否会被颠覆?

原文

源链接