自动化软件工程
在我看来,自动化软件工程将与自动化驾驶相似。例如,在自动驾驶中,自主性提高和抽象层次提升的进程大致如下:
- 首先,人类手动执行所有驾驶操作
- 然后,AI帮助保持车道
- 然后,它针对前车减速
- 然后,它还能变道和选择岔路
- 然后,它还能在标志/红绿灯处停车并转弯
- 最终,你得到一个功能完整的解决方案,并不断打磨质量,直到实现完全自动驾驶。
这是一个AI做更多、人类做更少的过程,但人类仍然提供监督。在软件工程中,这一进程也类似:
- 首先,人类手动编写代码
- 然后,GitHub Copilot自动补全几行
- 然后,ChatGPT编写代码块
- 然后,你转向越来越大的代码差异(例如,Cursor copilot++风格,这里有个不错的演示 https://t.co/u8ueY0mGxZ) 5....
Devin是一个令人印象深刻的演示,展示了接下来可能发生的事情:协调开发者需要串联起来编写代码的多种工具:终端、浏览器、代码编辑器等,而人类监督则转向越来越高的抽象层次。
不仅AI部分有很多工作,UI/UX部分也有很多工作。人类如何提供监督?他们看什么?他们如何引导AI走向不同的路径?他们如何调试出错的地方?很可能我们必须大幅改变代码编辑器。
无论如何,软件工程正在发生重大变化。它将看起来更像监督自动化,同时用英语提出高级命令、想法或进展策略。
祝团队好运!