AI时代软件行业的动荡
自从Claude 4和Claude Code发布后,传统应用软件研发仿佛一下子失去了意义。手工代码辛苦编写2天,可能比不上Code Agent 1个小时的输出,随之而来的,是大量传统程序员的失业离职,并且以愈演愈烈之势向所有白领职业蔓延。
何去何从?
其实不需要太担心,裁员只是第一波,很快,企业就会发现,市面上几乎所有工具软件,应用软件,为了保持竞争力,都需要Agentic化。交互入口会收敛(可能只剩一个对话框或者语音输入),可是多样化呈现的需求依然存在,高并发的需求依然存在,服务端要mcp化或者skill化的需求依然存在。未来,一句话点外卖,一段文字做数据汇报,依然需要前端来做丰富呈现,需要后端来做AI调度,或者将以往功能Skill化,传统软件向Agentic转型,那些工程思想依然一模一样。
软件工程领域,我们常常假设,未来的需求是不确定的,为了处理这种不确定性,在程序设计的时候我们都会保留一些冗余设计,但同时又避免过度设计带来屎山失控。这种趋近端水大师的设计,是AI在理论上无法精准把握的。当你将潜在需求描述给它时,它容易作出过度设计,而当你将当下需求给它时,它又很难结合业务保留扩展。当项目大的时候,如何指望它的每一次迭代都能精准以最小代价来解决而不是花2天时间来重构呢?
无论AI怎么发展,Harness和提示词工程永远有效,它是新时代的方向盘和导航仪,工程师的经验就是那个驾驶员。
因为焦虑和软件转型,企业Agent的需求会增加,会带来新的就业机会。手写curd的时代不会再有,但软件设计的思维依然没变。
如果我们将软件设计、测试评估全部都交付给AI,最终生产出一个我们不可控,但AI疑似可控的产品,那会怎样?(测试环境一切OK,一上线各种数据错误)出了问题,程序员和运维一脸抓瞎,这个时候,你是让AI自己去修复屎山代码和数据,还是花2周,让它重构一版风险未知的release??
当我们理解了问题,我们总能解决问题,可是纯AI未必。你生产了一个自己也看不了控制不了的东西,怎么敢保证说它一定没问题?怎么敢保证说出了问题自己一定能解决?
解决问题的能力,就是软件工程师的核心能力。