“软件质量报道” 下决心迎接 “软件工程3.0时代”

科技   2024-11-11 21:20   日本  

(这张图最后一次亮相,后面将更新)

历史的车轮滚滚向前,软件工程顺应技术的发展,迈入崭新的软件工程3.0时代。
本公众号做出一个艰难决定,决定改名,即从“软件质量报道” 改为现在这个名字 “软件工程3.0时代”。公众号Logo也会做相应改变,新的logo由AI绘画大师ideogram 2.0 Turbo生成,背景象征AI/大模型、拥有人脑智慧的计算机系统,前面文字是“软件工程3.0”的英文缩写。公众号的微信号 QualityReport 不变,让大家清楚本公众号会继续关注质量、测试。

其实我让AI绘画大师设计了好几个方案,也可以听听你们的意见,哪个更好?
1234

(大家喜欢哪一个,就在下面留言,写下上面的数字。在让AI设计logo时,我也能感受到AI的设计能力)
《软件质量报道》公众号第一篇文章发表于2013年7月2号,距今已超过十一年,共发布文章1207篇。如果一篇文章按两个小时计算,自己投入了2414个小时,按每天工作8个小时,投入了300多天。我们一年其实只工作200天左右,相当于用了整整一年半的时间写这些文章(内容)。

从开始几个、几十个人关注,到今天有近6万人关注本公众号。本公众号曾经也做了不少软件测试、质量方面的调查,以及软件质量和测试大盘点,帮助软件从业人员更好了解现状、解决所存在的问题,促进软件行业健康发展。
过去十几年,在公众号上,我也写了一些精彩的文章,讨论软件测试、软件质量和研发效能的底层逻辑、优秀实践等。
您也可以看我每年的总结,例如2023年的总结文章:2023年,仿佛站在了一个新的起点(Top 10文章揭晓)
正如开头所说,历史的车轮滚滚向前,个人也在持续发展中(而且会活到老、学到老),自己也不局限于软件测试和软件质量的工作。过去30多年,从软件开发起步,到软件测试,再到软件项目管理、软件工程,而最近几年则致力于AI+软件工程,包括去年发起了AiDD峰会、定义了“软件工程3.0”。


下面就让我们回顾、总结一下软件工程1.0、2.0和3.0

(软件工程的发展历史划分:从SE1.0到3.0)

回顾软件工程的发展史,我们可以清晰地看到技术革新的力量如何塑造了这个行业的面貌。从传统的软件工程1.0时代,到敏捷崛起的软件工程2.0时代,再到如今AI驱动的软件工程3.0时代,每一个阶段都代表着软件从业人员对更高效率和更优方法的追求。
一、软件工程1.0时代:传统的奠基
20世纪五六十年代,软件开发遭遇了前所未有的挑战,被称为“软件危机”。布鲁克斯在《人月神话》中形象地描述了当时的情景:软件开发如同史前巨兽在焦油坑中痛苦挣扎,越挣扎越陷入困境。为了应对这一危机,1968年,北大西洋公约组织(NATO)的科学家们在德国召开了会议,正式提出了“软件工程”这一概念。

软件工程1.0时代,深受建筑、水利等传统工程的影响,以“产品”为中心,更相信流程决定结果,通过严格的过程控制和规范,软件开发者试图降低软件的复杂性和耦合性,提高软件的可维护性。这一时代的特征包括:
  1. 结构化方法:采用结构化的分析、设计和编程,确保软件系统的稳定性和可维护性。
  2. 过程导向:相信“过程决定结果”,通过需求评审、设计评审等过程节点来控制软件质量。
  3. 文档驱动:强调文档的重要性,通过详尽的文档记录软件的每个细节。
二、软件工程2.0时代:敏捷的崛起

随着互联网的快速发展,市场和业务需求变化加速,传统的软件工程方法逐渐表现出灵活性不足的问题。为此,敏捷开发方法(包括DevOps)应运而生,于2001年发布了敏捷宣言,标志着软件工程进入了2.0时代。

软件工程2.0时代的特征是:

  1. 持续迭代:软件被视为一种服务(SaaS),以客户价值为导向,通过持续构建、持续集成、持续测试和持续交付,快速响应市场需求。
  2. 以人为本:个体和团队协作被放在首位,鼓励开发者的创造力和自主性,采用如用户故事、每日站会、团队计划和反思等实践。
  3. 拥抱变化:强调适应需求的变化,而不是按照固定的计划行事,提升了软件开发的灵活性和效率。
这种新的方法论,让软件开发变得更加敏捷、高效,也更能满足快速变化的业务需求。

三、软件工程3.0时代:AI+X

进入21世纪20年代,人工智能技术的飞速发展,尤其是大型语言模型(LLM)的出现,为软件工程带来了前所未有的变革。软件工程3.0时代的特征主要包括:

  1. 软件新形态:软件即模型(SaaM)传统的软件,其中每一项功能都需要开发者亲自编码实现,而现在,基于LLM构建的应用软件(如chatGPT),有很多能力,但我们没有为其中某项能力写过一行代码,甚至其能力边界都是未知的。

  2. 软件研发新范式:模型驱动研发、模型驱动运维
    在研发前,我们先要训练、部署好研发大模型(可能包括代码LLM、测试LLM、业务LLM等),然后基于LLM来生成需求文档、设计图、代码、测试用例等,每一个开发者都有一个机器人/数字人成为他/她的助手,协同工作。

  3. 人机智能融合
    人工智能与人类智慧的结合,使得软件研发效率大幅提升。人类的创造力与AI的计算能力相辅相成,推动了软件工程的革命性进步。

  4. 新的价值观:

  • 人机智能协作胜过研发人员个体能力:AI放大了个人的能力,使团队能够完成更复杂的任务。
  • 业务和研发过程数据胜过流程和工具:数据驱动的决策取代了僵化的流程,更能适应快速变化的环境。
  • 可生成代码的模型胜过程序代码:模型能够持续学习和优化,比传统的静态代码更具适应性。
  • 提出好的问题胜过解决问题:在与AI合作的过程中,提出正确的问题能够引导更高质量的结果。

虽然人工智能的“幻觉”问题、伦理道德、安全隐私等方面的考量,需要我们慎重处理。然而,我们有理由相信,通过制定合理的规范和政策,加强对AI的监管和指导,能够有效应对这些挑战。关键在于,我们需要以开放的心态,积极拥抱变化,提升自身的能力,与AI协同工作,共同推动软件工程的前进。

历史的进程从未停歇,技术的革命也在不断推动社会向前发展软件工程3.0时代的到来,标志着软件开发从手工劳动到智能协作的飞跃。这不仅提升了开发效率,也为人类带来了更多创新的可能。
告别软件质量报道”,让我们站在“软件工程3.0时代”的潮头,开始新的旅程,与AI同行,不断推动软件工程向前发展。

软件工程3.0时代
由于大模型(LLM)正在改变着千行百业,软件工程(SE)更是首当其冲,迎来软件工程3.0新时代:模型驱动研发、模型驱动运维。本公众号将致力于研究SE3.0时代的软件研发新范式、理论与方法,介绍SE3.0时代的工具与实践。
 最新文章