3月6日消息,随着人工智能技术的兴起,软件界流传着这样一则笑话:过去,软件开发人员需要两天时间编写代码,而软件质量工程师则需一天时间进行测试。但在人工智能的辅助下,编写代码的时间缩短为一天,测试时间却延长至两天。
这一转变可能让开发人员不以为然,但对软件行业的工程师和企业而言,却是一项严峻的挑战。人工智能正在推动生产效率的提升,并正在改变劳动力配置。原本占据开发工作主体的代码编写任务,现在逐渐向软件发布前的各项准备工作转移。
长期以来,所谓的内循环一直是软件开发的核心,而如今,外循环的重要性日益凸显。这种变化听起来宛如科幻电影剧情,仿佛人类被赋予了功能强大的机器人助手。
人工智能在软件开发领域的应用尚处于初期阶段,因此这种戏剧性的变化尚未波及整个行业。但这样的日子终将到来,为了不被时代潮流所淘汰,企业和团队应当从现在开始做好规划。
内循环与外循环
尽管并非一成不变,但许多软件团队在产品开发过程中都采取了类似的劳动分配方式。
所谓的内循环涵盖了开发软件过程中涉及的各种高价值、创造性任务,如设计、编写、构建和调试代码等。这些任务通常由单一开发人员在代码共享给团队其他成员之前独立完成。
相较之下,外循环则关注更多重复性工作,这些工作往往会分散人们对内循环中高价值任务的注意力。其中,主要任务包括测试代码的安全性、可靠性、质量和可用性等。
那么,人工智能是如何改变内外循环之间的平衡的呢?人工智能助手能够帮助开发人员轻松创建代码,将一个概念转化为代码可能原本需要几天甚至几周时间;而有了人工智能的帮助,几秒钟即可完成。但生成的结果更类似于意识流作品,而非精心打磨的小说。在作品能够发布之前,所有这些生成的原材料还需一位“编辑”进行打磨。
举个例子,GitHub的Copilot人工智能助手让开发人员的生产力提高了55%,但Copilot生成的代码存在安全漏洞和设计缺陷的概率有40%。随着代码量的增加,这些问题将外循环转变为生产的瓶颈。
这种情况将如何影响开发团队?通常,开发人员与测试人员的比例为3:1。在一家拥有四万名软件工程师的大型银行中,可能有一万名员工负责安全、可靠性和质量控制。但人工智能的效果如同挤压气球,它会使另一侧膨胀。测试工作量的激增抵消了编码效率的提升。
开发团队如何取得进展
对软件开发团队而言,挑战在于如何适应这一变革。想要在竞争中保持领先,公司首先需要解决长期的敌手:琐事(toil)。
琐事指那些耗费开发者大量时间和精力的重复性乏味任务。手动测试代码、漫长的等待开发完成以及工作进度的申请等,都让软件工程师感到沮丧,减缓了工作节奏,推动创新的创造性工作也越来越远。
随着人工智能自动化加速内循环,外循环面临的挑战可能比以往任何时候都要多。解决方案在于引入可扩展的自动化系统,以确保代码的安全性、可靠性和质量。许多人认为这一切都是事后诸葛亮。事实上,很多工程团队都乐意自己动手DIY修补程序。
专业工具对于消除困扰软件开发生命周期中的繁琐任务至关重要,持续集成/持续部署(CI/CD)便是关键之一。高效的软件团队利用CI/CD方法完成推向产品过程中所需的大部分工作。CI/CD能处理构建、测试、部署过程中的琐碎任务。
安全测试,作为最耗时的任务之一,CI/CD可以提供关于漏洞的详细信息,优先处理紧急漏洞,并提供快速的修复建议。
云成本管理也是最适合自动化的任务之一。恰当的工具可以帮助开发人员详细追踪云使用情况,通过关闭不活跃资源以降低成本。据经验,这甚至可以节省高达70%的成本。
即便是内部开发者平台这样简单的工具,也能改变游戏规则。这些自助式服务门户通过整合工具、服务和信息,加速了生产进程。
得益于生成式人工智能,这些工具降低琐事工作量、加快部署速度的能力正不断增强。
现在就开始培养人才
自动化虽然是成功的关键,但随着外循环的任务不断扩大,人才短缺的问题也日益严峻。很快,我们将进入一个软件质量工程师比程序员更受欢迎的时代,专注于测试的人才可能获得更高的薪酬。
公司应当制定计划,招募和培养所需的人才。吸引软件开发人才的关键在于提供有吸引力的工作体验。薪酬是基础,但开发人员还需要了解公司的使命,在工作中面对挑战,并使用恰当的工具。
当人工智能重新定义软件开发生命周期时,最受需求的岗位将是什么?预计软件质量管理者、工程师以及可靠性工程师将成为抢手人选。
人工智能引发的这种变革不会一夜之间发生,但提前做好准备的软件团队将处于更有利的位置,更快地将产品推向市场。最终,如何支撑外循环可能成为成功与否的关键。