AI无法完成最后的20%
本文探讨了AI在软件开发中的局限性:虽然AI能快速完成前80%的工作,但最后的20%仍需要开发者的精细处理。作者分享了个人经验,指出AI让起步更容易,但完成项目依然依赖人的判断和努力。
作者Vincent Schmalbach是一名经验丰富的软件开发者,多年来一直从事个人项目和自由职业工作。他观察到,AI工具的出现显著提升了他的开发效率。在熟悉任务领域,他只需向大语言模型描述需求,就能迅速获得大量代码输出,包括项目搭建、功能实现、错误修复等。这使得一个完整项目看起来触手可及。然而,在他的所有项目中,AI几乎从未能独自将其推进到真正完成的地步。
AI可以高速完成前80%的工作——甚至给人已完成90%或99%的错觉,但最后几个百分点的细节仍需大量专注投入。作者强调,问题在于AI让他快速到达一个点,之后他依然要处理那些他提前告知过AI的细节。这并非AI无用,而是它擅长加速熟悉部分,却无法替代人类对模糊性、用户感受和业务妥协的判断。
在项目初期,作者已经理解大部分工作:搭建应用、构建主要界面、连接数据、实现常规行为。由于多年经验,他知道该要求什么,并能识别输出错误并改进指令。这使他能更快地将想法变为可运行的演示。但即便在AI帮助下,真正困难的部分依然存在:奇怪的用户输入、笨拙的集成、部署问题、安全漏洞、偶尔失败的后台任务,以及只有长时间使用才能察觉的设计缺陷。AI让他更早遇到这些问题,但并未让它们消失。
在最终阶段,AI仍有用武之地:编写测试、检查日志、建议修复、审查代码、打磨界面。但作者无法放手让AI判断项目何时完成。它不知道客户会接受哪种妥协,哪个细微的工作流问题会每天困扰用户,哪个Bug最重要。这些都需要作者亲自注意、决策和验证。
这种模式容易让人产生懒惰:看到可运行的演示很容易觉得大部分工作已完成。启动新项目比回头修复当前项目的细碎问题更有趣。AI使他启动项目的速度超过了完成项目的速度。每个轻松的开始都留下了一个等待处理的最后20%。这在个人项目中尤为明显:作者可以快速让几个想法看起来有前景,但每个项目仍需大量打磨和手动工作。
客户项目遵循相同规律,但风险更高。他不能交出一堆代码或印象深刻的演示就宣称工作完成。软件必须解决客户雇佣他解决的问题:正确运行、经受日常使用、便于他人维护。更快地实现主要功能固然有价值,但所有收尾工作仍必须完成。
因此,AI为他节省了大量时间,也让他更快地到达需要专注的部分。但他不能因速度而变得懒惰,因为完成项目仍然是他的责任。