“软件工程是否迎来iPhone时刻?” 是2023K+全球软件研发行业创新峰会上海站主会场的Panel discussion的主题,出场的几位嘉宾给出了不同的答案,其中有两位嘉宾给出了“No”,一位给出了“塞班时刻”(后来给我朋友圈投票是0.5,介于“是”和“否”之间),只有一位给出“Yes”。如果从现场嘉宾观点看,是1.5:2.5,反方胜出,即软件工程没有迎来iPhone时刻,但是“真理往往掌握在少数人手中”。我写这篇文章的观点自然明确:软件工程迎来了iPhone时刻,因为之前我写过一篇文章:《GPT-4 开启 “软件工程3.0” 全新时代》,也就意味着:iPhone带来的移动互联时代(新时代)映射为 “软件工程迎来的新时代:3.0时代”。之后写了一篇短文:《关于“软件工程3.0” 三大支柱和两点说明》,进一步说明软件工程3.0时代。
最近,有些文章讨论了大模型带来了Office、AI、程序员的iPhone时刻,例如:
-
刚刚,GPT-4 让微软 Office 迎来自己的「iPhone 时刻」
-
AI 的 iPhone 时刻,已经到来
-
现在就是成为“新程序员”的黄金时刻!
-
......
究竟什么是iPhone时刻?我们有必要首先在“iPhone时刻”这个概念上达成共识,否则判断是否到来就缺乏根基。
今天,我正好看到一篇文章《对苹果Vision Pro和空间计算的思考 》,其中谈到了iPhone时刻:
历史何其似曾相识,2007年1月乔布斯发布第一代iPhone时,彼时的Windows Mobile,黑莓、诺基亚都在所谓Smart Phone领域探索了好几年 ——我还记得我当时用的两款Windows Mobie:多普达 和 联想SmartPhone,经常拿小笔在屏幕上戳啊戳的难受的要死,可还是形影不离。乔布斯在iPhone发布会上其实讲了两件事: 1)交互体验:扔掉笔和键盘,代之以手指触控。 2)场景功能:Phone+iPod+ Internet Communicator 三合一,解决电话、音乐、上网三个场景需求。 后来的故事不多说了,iPhone摧枯拉朽地革掉了诺基亚、摩托罗拉、黑莓、Windows Mobile(后来改名叫Windows Phone)等的命,真正开启了移动计算的时代。 |
在iPhone出来之前,其他的智能手机(smart phone,如Windows Mobile,黑莓、诺基亚等 )已经存在几年,只是这些手机主要服务于商务人士,交互方式依赖键盘和笔,有大量的菜单,大多数老百姓很难使用,主要功能是通话、发email、做笔记等,也没有独立的应用程序或应用程序少得可怜。但iPhone改变了手机的操作方式:全触屏的体验式革命,可以让每个人(包括老人、小孩等)都轻易使用手机,以及之后推出的App Store,第三方可以开发应用程序,使应用程序快速丰富起来,大家从此离不开手机。
iPhone也深深影响了Android系统。在iPhone推出之后,谷歌不得不放弃之前计划,彻底抛弃了两个版本中的Sooner版本(不支持触摸功能,外形还非常像黑莓的翻版),而跟随苹果的触屏趋势,转向更激进的Dream版本,重新设计系统,直到一年多之后——2008年9月22日,谷歌正式对外发布第一款Android手机HTC G1(又名HTC Dream)。
今天基本是iOS和Android的天下,使用手机的方式也很相近——直接用手指进行操作(包括多点触控),应用系统都以独立的方块形图标呈现出来,Android也有自己的App store,更新、升级方式也比较接近,总之,这种自然的人机交互方式几乎让每一个人都拥有一部手机,从而让整个社会进入移动互联时代。
但所有的事情不是一蹴而就的。第一代iPhone比较土、应用程序也很少,用户就更少了,刚开始的几年,每年新增用户数也就是100万左右。苹果的 App store是在iPhone手机发布一年多之后( 2008 年 7 月 10 日)才推出来。在那之后,凭借 500 款 app(应用程序) 才开始改变人们工作、娱乐、旅行、交易等方式。
回到chatGPT,其用户增长速度很快,5天突破百万用户,仅用了两个月的时间,在 2023 年 1 月末的月活用户就突破了 1亿。这就是为什么大家都在喊“大模型时代”的到来!
回到软件工程,类似GPT4这样的大语言模型(LLM)已经开始给软件工程带来深刻的影响:
-
我们通过和LLM持续地对话,让LLM理解我们要表达的需求,从而生成我们所需要的需求文档(如用户故事、用户故事的验收标准,包括以GWT格式呈现的场景);
-
能够生成函数级的代码,对于简单的应用程序,甚至不用写一行代码,完全通过对话方式就能生成可运行的应用程序;
-
有像微软Github Copilot、华为云CodeArts Snap等这样强大的智能编程助手,软件开发效率提升50%~90%;
-
可以根据功能需求,生成所需的大部分测试用例,也可以生成UI、API等方面的自动化测试脚本。
-
......
在过去,这些几乎是不可想象的。chatGPT之前,计算机不能理解我们所说的,也无法进行推理,也从来没有一个可执行的应用程序是可以通过自然语言交流而生成的。而今天这些都发生在眼前。
虽然LLM目前不能生成我们所需的一切,不能代替所有的研发人员,我们也没有期望它能代替人类所有的业务分析师、程序员、测试人员等,但在未来,它将改变我们过去那种软件开发方式或范式(可以参考:“软件工程3.0”之下软件开发范式),它可以淘汰一部分(大约50%~80%)业务分析师、程序员、测试人员等。
我们不能只看到现状,不能只看到表面现象,我们要透过现象看本质,面向未来,洞察趋势,看到软件研发的范式(开发软件的本质)正在发生巨大的变化、正在朝着一个新的方向进步。
这里(AiDD软件研发数字峰会)一些案例也能说明软件研发正在悄悄发生巨变...