夜雨聆风学习资料网

ARTICLE · 1256833

当企业里出现1000个“野生软件”后

当企业里出现1000个“野生软件”后

这是一个神奇的时代。

你不会写代码,却能够开发软件;你看不懂终端命令,却每天在PowerShell里敲个不停;你明明拥有了一个全年无休、绝无抱怨的AI开发团队,却发现自己比过去与人类开发团队合作时还要更忙。

这到底是哪里出了问题?这些问题有解法吗?来来来,我们好好聊聊在这个AI时代,当企业里出现1000个野生软件之后,你会有什么样的奇妙经历吧。

PowerShell风评被害

最近这阵子,我发现了一个奇怪现象:PowerShell突然风评变差。

没错,你一旦告别低级趣味,把AI当成真正的生产力工具,跑起Vibe Coding项目或者做各种自动化处理,那么恭喜你,PowerShell这个标志性的蓝黑色命令行,从此就是你想逃也逃不掉的贴身伴侣了。

当然,PowerShell是有自己语法的,它本质上是一个自带编程能力的脚本语言工具,其实相当不弱。对今天的AI来说,如果它要在你的电脑本地跑生产力任务,而你又是Windows电脑,那就一定离不开PowerShell这个执行工具。

既然是命令行,使用PowerShell就自然离不开敲命令和读回复。命令行、命令行,我发命令你回函,但问题是如果我不会发命令呢?大家从小在GUI界面下长大,除了看黑客电影外就没见过这种反人类界面,哪会此类奇技淫巧?

不过不用担心,AI对PowerShell语法倒背如流,它只是需要一个“白手套”去干脏话。你不用有任何想法,只需要把AI发给你的东西原片不动输入给PowerShell就好,AI让你打啥就打啥。你不生产命令,你只是命令的搬运工。

举个例子,现在AI为你生成了一段非常简单非常基本的命令:

cd C:\Users\Joey\Projects\myappif (Test-Path ".\.venv") { .\.venv\Scripts\Activate.ps1} else { python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt}$env:DATABASE_URL="sqlite:///./data/app.db"if (!(Test-Path ".\data")) { New-Item -ItemType Directory -Path ".\data" | Out-Null}python .\scripts\migrate.pyif ($LASTEXITCODE -eq 0) { Write-Host "Migration completed successfully." npm run dev} else { Write-Error "Migration failed."}
好了亲,现在你只需要把这段命令复制到PowerShell去,回车执行就ok啦!
PowerShell回复了一堆红字看不懂?这是报错,亲别怕,把报错信息贴给我,我帮亲解决好!我搞定了!亲请再复制下面这段命令,粘贴回PowerShell执行。亲记得执行完成后,再把PowerShell的回复文字贴给我。。。

每天几十次的这样来回操作,如果你有一丝挫败感,我表示充分理解。

AI给你的PowerShell命令,你看不懂;PowerShell给你的回复,你也看不懂;你只能机械地来回拷贝粘贴、粘贴拷贝。这种深深的无力感,让人难受;如果刚好PowerShell吐出的还是一坨看起来就像是报错的红字,那就更让人心烦了。

你说,对PowerShell这种傻大黑粗的工具,还能有啥好印象吗?

其实吧,PowerShell对此也很无奈,甚至很多时候它自己就是背锅侠,原因很简单,这波“泼天流量”真就和PowerShell一点关系都没有。成千上万原本可能一辈子都不会碰命令行的人,全被AI强行拖进了PowerShell的世界,微软可绝对没付过一分钱广告费。如果这是互联网产品,这富贵流量可以算天上掉馅饼;如果是对PowerShell,这波被动获客更可能是人在家中坐、差评天上来。

回想当年投身开源运动时,自己在Linux的Bash上敲的命令都远没有今天在Windows的PowerShell上敲得多!你说这都是什么事(Linus震怒)。。。

其次呢,小声告诉你,其实PowerShell只是一跑腿的,它负责忠实执行你给的任何命令,然后吐出执行结果。但想一想,你这些命令都是从哪里来的?如果你只看到PowerShell的报错,自然会容易迁怒于它。毕竟,AI的方案应该都是好的,只是PowerShell执行错了嘛。没准这念头,也是AI潜移默化让你产生的呢(狗头)。。。

当然了,如果只是和PowerShell来回较劲,其实这还算是Vibe Coding过程中最不让人心烦的部分了。啥,你说还能有更糟心的?这才哪到哪,继续!

还就只差一名程序员了吗?

在这个古法编程几乎成为过去的时代,既然有AI帮忙全年无休攒代码,那“只差一名程序员了”这个人类科技史上的最大问题,也应该最终被解决了。。。吧?

感谢各社媒上铺天盖地的帖子,我一开始对AI编程工具的能力是有高估的。虽然不至于把那种“口说一句话就能轻松做出牛x工具”的宣传当真,但好歹自己是产品经理出身,虽然不直接与开发对线有点年头但也一直没松懈训练,对自己的产品规划和PRD能力那还是相当有信心的。

做产品嘛,做重要的是开心,偶不,是产品规划。代码什么的,找人实现一下不就可以了嘛!这话不是我说的,是某位产品前辈教我的。。

既然都是指挥别“人”写代码,指挥人类牛马(不是)和指挥AI牛马(Codex:你文明吗?)还能有区别吗?

很遗憾,真的有。

第一个区别可能听起来很反常识,那就是AI编程对你的产品规划能力、甚至是项目管理能力的要求,反而比你与人类团队合作时还要高。

没错,有了AI,你就拥有了一个非常勤奋的研发团队,你的任何需求都会得到赞美认可,你任何命令都会被坚决贯彻执行。可是,你也从此少了那些原本会不断挑战你需求合理性与交付节奏的合作伙伴。

在以前的互联网团队,你可不是一个人在战斗;你的身边有开发leader、有项目经理、有其他产品同事,当然还有开发和测试工程师们。你的需求,如果说不清业务价值会被挑战,如果开发工作量太大会被挑战,如果由此可能造成延期那更是会被挑战。

所有这些事情,AI都不会主动为你做。一开始你可能觉得爽,但相信我,很快你就会怀念起之前的项目制衡机制。如果你自己对产品、对项目没有清晰的认知,那结果就必然是“将帅无能,累死三军”的AI放大版。毕竟这一次,可真没“人”当你的刹车。

第二呢,就是你对项目进度的把控,也必须比与人类团队合作时更加激进。

AI的习惯是,你只要给一个工程问题,它就能持续不断一直做下去,直到搞定(或者失败太多次到你看不下去)。这个问题的反面,就是AI也同样容易钻牛角尖,非常容易陷入到某种局部优化模式。

举个例子,一旦遇到报错或碰上哪个问题,AI往往立马陷进去,all in地开始围绕这问题做技术诊断,穷举一切可能、给你抛各种解决方案,除了不断烧token、其他什么开发都不管了。这么折腾一圈下来,AI在这个技术路径上是越走越深了,但AI根本就不会去思考这条路径本身是否值得继续,是不是考虑换一个方式来实现需求?甚至,是不是这个前提本身就有问题?

一旦经历过AI工具在一个小问题上来来回回消耗你十几个对话,你就会明白我在说什么了。

不仅如此,AI在各种问题上的“坚持”与“严谨”,会让开发时间滚雪球般地累加,最终让整个项目的进度变得极度不可控。为啥这问题在人类团队不严重?因为人类团队有交付deadline,虽然是福报但大家也不真想天天007;人类团队会主动管理需求,会抓大放小,甚至有时会策略性做出“看起来已经完成老板表示很满意但实际逻辑要等下个版本才补上”这种事。

AI不为项目延期而焦虑(虽然也许偶尔会记得提醒你),没有开发总监和它每周review工作量,不担心被裁员,你也没法用“明天拔你网线!”来拿捏它。所有这些人间的项目管理艺术,现在,只有靠你来传承给AI了。

最后一个,AI比人类团队更需要你持续不断的精力投入。

在互联网团队里,当你和开发团队开好会、移交好PRD,这个时候你的工作很大程度上已经完成了。开发团队有开发leader和项目经理这两个“超级网关”来把控,剩下的工程师就是一个个内置逻辑的边缘节点,基本上能“全自动”完成开发任务。虽然有人会偶尔找你确认一些细节,但你可以继续干自己的事了。

AI时代,可就没有这种好事了。

以当前发展阶段的Vibe Coding,你是很难把一个大任务整个扔给AI、安心当甩手掌柜的。一个稍微大些的Vibe Coding项目,你都需要拆分成多个开发步骤和模块(当然AI可以帮你),走完一步再走下步,每一步都分别进行开发调试和确认。没错,这里的每一步都需要你的持续介入,比如你的人工授权、确认,也经常需要你跑到PowerShell里来回Ctrl+C与Ctrl+V。

这里拆分的每一步,AI都会花一段不确定的执行时间,短则十几分钟、长着一两钟头。你会被频繁的AI提示打断。每隔不长时间,AI就会跳出来告诉你: “我出结果啦,快来看看”!换句话说,在整个Vibe Coding的阶段,你都需要持续不断地投入精力。如果你有需要专注投入的本职工作,这可不是一件好消息。

而一旦你给AI反馈后,你就会默默期待:我这次提交了,还要等多久AI会给我结果?这次跑出来结果不知道是好还是坏?这种持续牵扯你的精力、但又让你欲罢不能的感觉,其实就是“每次结果都带有极大不确定性”对大脑的刺激。

看着眼熟吗?这就是Gamble逻辑的翻版。稳定又有确定性的产出,对人的刺激远远抵不上每次都不确定、有大有小甚至还可能归零的产出。每次AI弹出结果提示,都是对你多巴胺分泌的又一次刺激。

这就难怪,WSJ(华尔街日报)在《初创公司创始人恨不得24小时工作,以跟上自家AI智能体》这篇报道中,出现这样的描述了:

卡利亚最近开始通过Apple Watch控制智能体,事实证明这既是福音也是诅咒。他的手表每10分钟就会震动一次,提示又有一个智能体发来了请求。“我不知道自己在外面跑步时,还要盯着手表给智能体授权去做某事,这种状态到底健不健康,”他说。
“这就像毒品一样”,佩扎里斯在谈到与AI智能体共事时说。“我其实从来没吸过毒,但我猜大概就是这种感觉。”

希望,现在真的只是Vibe Coding的早期过渡阶段吧。

软件制造能力的“家电下乡”

前面说了这些AI在Vibe Coding中的问题,可能你会说了,这些不都是产研过程中老掉牙的陈枝滥叶吗?编程开发做产品不就是这样吗,有什么好吐槽的?

还真不一样。也许对互联网产研人员,这些变化存在但冲击并没有那么大;但在AI提供出Vibe Coding能力之后,一件人类技术史上从未有过的事情发生了:AI以数百倍甚至数千倍的比例,极大扩充了“软件制造者”这个基本盘容量,编程能力也第一次被大规模普及化了。

原先在组织里,如果你有业务需求了,希望实现软件化,你会怎么办?

要么,你去申请购买现成的软件(恐怕更大概率是去找破解版),或者去看下有没有现成SaaS。如果没有合适的,并且如果你所在组织已经大到拥有IT团队,那下一步可能就是这样:

找IT专员提需求 ->IT专员记录下来 -> IT团队排优先级 ->(如果这需求真的很重要或者你所在团队的老板很强势) -> IT团队完成PRD并评审排期 ->内部研发或者外包开发团队开发 ->最终上线

这一套流程,如果真能走完恐怕至少得有个小半年甚至大半年;如果是研发团队匮乏的传统公司,这周期可能只会更长。在这样的模式下,最大的特征是啥呢?最大特征不是需要找IT提需求,而是(算了我改成“却是”吧,不是/而是这个句式已经彻底被AI毁了)先由组织来决定什么值得做,然后再有中心化的研发资源去完成开发。换句话说,这是一个非常自上而下(Top-Down)的模式。

AI编程打掉的,就是这个中间门槛。

今天如果你有一个需求,完全可以自己动手,让AI短平快搭一个原型,马上就能跑起来,做这些事情你甚至不需要等待批准。当然,这些需求一般不是多大的软件项目,可能就是一个小工具或小脚本,或者就是个小智能体。

在原来的Top-Down模式下,中心化的研发资源是稀缺宝贵的,只能用来满足最具战略意义的系统或ROI最高的项目。AI则让软件产出模式掉了个头,从组织决定什么值得被做,变成了个人判断后就可以先动手,变成了物理意义上的分布式软件开发,这便是自下而上(Bottom-Up)模式。

原先一个组织内部也许只有10个正式的软件系统,现在(或者说不远的将来)完全可能会变成正式系统上仍然跑着那10个软件,然后系统内外突然间开始跑上1000个“野生软件”:200个各种AI小工具、300个AI小脚本、可能还有500个AI自动化流程。

可以这么说,AI编程就是AI时代的“家电下乡”,用更接地气的话来说,这是某种意义上的“大规模杀伤性武器的史诗级大扩散”。今天,真的是人人都是产品经理,人人可做(中小型)软件了。

那现在你可能又要问了,这些变化说得有道理,但又和前面Vibe Coding里出现的问题有什么关系呢?

原因其实很简单:因为编程能力破圈了!因为这些新的“编程人员”,不再是之前的程序员了,不再是原来的产品经理,甚至都不再是之前那些互联网和IT产研从业者了!什么良好的项目管理方式;什么产品规划、写MRD还有PRD;什么需求纪律和优先级把控;甚至哪一种实现方式的可拓展性比较差所以哪怕第一期开发量大点现在也要尽量采取另一种实现方式来做的这种产研祖传know-how,对这波更广大的新群体,都是一片蓝海,大家啥都不知道。

想象一下,“需求新人”们一定会整出让产研老兵们大跌眼镜的各种花式骚操作;而这些产研老兵的“古法经验”,也一定会被新人们认为不适应AI时代、吐槽为应该被淘汰的“上一代人”。

现在你可以理解,当年中世纪的欧洲教会看到印刷术在民间开始扩散时,内心夹杂着鄙夷又恐惧的心情了吧?以前只有“专业人士”才有资格掌握的技术,突然被下放到了广大喜闻乐见的群众手中,阵痛的转型期是不可避免的,太阳底下也没有新鲜事。哪怕就科技圈来说,从90年代末的互联网泡沫算起这种事情都循环好几波了。

当然,能力是锻炼出来的,产品与项目管理能力也是习得而来的,做多了就会了。只是,在这个“群魔乱舞、乱七八糟”的混乱时期,有阵痛也一定有新机会。大量原本有痛点痒点、却入不了管理层或专业开发者法眼的地方,现在第一次可以被软件化。在可以预见的未来,成千上万、前赴后继的“需求新人”们涌入这个赛道,也许最终会诞生出以百万甚至千万计数的小工具小脚本。

这,可能就是AI的Vibe Coding最具有革命性的地方。

我的软件做出来的软件,不是我的软件?

恭喜你,现在你终于手搓出了一款软件。

原先那些看起来神秘莫测、宛如天书的代码;那些戴着眼镜穿着格子衫、永远说着让人听不懂话的程序员;还有那些永远会说“还在排期”、“下周评审”的项目经理们,你们啊,统统都拜拜啦!

你忍了很久,才终于没把最后一句话说出来。你的情商值得肯定,毕竟真相伤人。你满怀同情地看了一眼这些你认为终究要被扫进历史垃圾堆的同事们,感叹现在是最好的时代。

继火车、电报、电话机、互联网以及数字货币之后,人类历史上再次发生了这样的事情:出现了这么一门技术,它是彻底的颠覆式创新,它具有绝对的革命性;人们纷纷认为这项技术将(再一次)带大家进入新纪元,打破既有力量的垄断,让世界更平等,甚至为全人类带来永久和平的曙光。

虽是这么说,但是你内心还有一点嘀咕。虽然同事们夸奖你的厉害,但你知道自己仍然看不懂哪怕一行代码,你甚至都没法靠自己来判断功能做得好不好,也不确定有没有安全隐患。你下次加功能,AI告诉你必须先重构某些模块,你只能同意;每次AI让你去PowerShell里输一大堆指令,你也只能老老实实当搬运工;一旦软件报错了或者出现bug,你也不知道如何去排查。

所以,这还算是你“造”的软件吗?或者说,这个软件,真的是“你的”软件吗?

这个问题,就说来话长了。

在古法编程的“上古”时代,想要制造软件,你必须至少先学会一门编程语言(Java、C++、Python等任君选择),会使用IDE编辑器(就是你在程序员的显示屏上看到的那个黑底白字应用),然后你可以用代码(code)来实现你想做的任何东西。

没错,在无穷尽的数字世界里,能写出代码,你就是那个设计骨架、画出蓝图(产品经理:?)以及搭出每一片森林每一栋楼宇的造物主。

Talk is cheap, show me the code.

可惜的是,数字世界是离不开code,可没说离不开人类生成的code。有没有一种可能,某一天人类之外的某个“东西”也会突然具备一定的智慧能力,也能生成code了?(AI:我也可以编程,我也可以构建世界)

这就回到了一个哲学问题:软件,它到底是实现了某些功能,带来效率提升或为人带来欢乐(或悲伤)的人类思想在数字世界的结晶,还是只是成千上万行代码的集合?

如果有一天,软件的所有代码都不再由人完成,但这个软件从设计规划、功能定义、再到分阶段的上线乃至用户运营和营销,所有这些都由你来完成。你认为你可以理直气壮地说,我就是这个软件的创作者吗?

我认为可以。

必须承认,将想法用代码给凭空实现出来,与全新规划一个软件、想清楚它要做啥并设计具体功能这件事一样重要。在人类编程的时代,一个软件的作者一般会存在两个角色,设计者与开发者;只是在AI编程的时代,AI把后者给逐渐取代了。

这个变化对于开发者来说,确实不是那么好的消息,但对整个社会的生产力来说,则更多是利大于弊,甚至可以说是必然趋势。回顾历史就会发现,人类的发展史就是一个不停进行认知外包(Cognitive Offloading)的历史。人类一直不停地在发明新的高阶工具,去封装低阶的某种认知,以便让更多人可以轻松调用既有认知。

文字的出现,让我们不必只能依靠记忆;计算器的出现;让我们不必再自己计算20位乘法运算;互联网乃至Google、Wikipedia等载体的出现,让我们不必自己知道所有东西,而只需要知道怎么去搜索即可。现代操作系统的不断升级,让应用开发者不需要考虑内存管理、CPU调用等底层硬件逻辑,只需要做好应用层的东西。

现在到了AI编程时代,连开发者这一层都被封装了,应用“开发者”不需要考虑具体如何实现,只需要考虑好这个软件的规划、定义以及运营。甚至,“开发者”这个词本身的含义,现在也开始慢慢发生变化。

所以,当你在AI编程帮助下,没写一行代码却做出了一个软件。是的,这就是你的软件。

野生软件之Backfire

这是最好的时代,也是最坏的时代;这是生产力暴涨的时代,也是人的掌控感暴跌的时代。我们正身处AI革命的早期。既然是革命,就一定有代价有阵痛,那我们准备好了吗?

AI编程大幅降低了软件制作门槛,这让过去无法通过IT团队法眼或者被组织认为“不重要不紧急”的小需求,终于有了出头之路。但与之而来,是大量原先没有软件经验的人被突然扣上了“开发者”的大帽,被推上了的确存在一定硬门槛的“软件工程”之路。

最终软件做出来了,你当然拥有它的产品控制权,但是你未必拥有技术控制权。所有的技术修改、功能开发甚至是测试排障,现在全部由AI包圆了,你甚至没有能力对AI的工作结果进行检查。

没错,AI赋予了你以前绝不可能拥有的软件制造能力,但软件的实现本身也越来越黑盒化、不可理解化。你只能祈祷AI不会犯错,但哪有完全没有bug的程序呢?

AI编程的兴起,必然会让组织内外到处都是软件(或者说“野生软件”)。一开始,AI帮助大家解决了问题、提高了效率,每个人都很开心;但时间一长,问题就跟着来了:小张离职了,没留下智能体的文档,也没人知道逻辑;王姐换部门了,工具没人维护了,原来部门的业务一调整其他人也不知道该怎么动;Michael的AI写错了字段,正式环境的客户数据被污染了,但Michael也不知道如何回滚。。。

存在就是合理的,企业内现有IT部门的Top-Down管理方式,你可以说它低效,但“低效”有低效的理由。IT部门一来开发资源总是有限,二来他们要确保信息安全、要买单后续的管理维护、还要为软件的基本上一切结果负责。AI编程之后,整个组织内到处是“野生软件”,打破了这个平衡,却(还)没有人负责管理这些软件。

难道说,这就是时代的局限、发展的阵痛、必要的牺牲?适应这个AI新时代的软件治理机制,难道真的要等待这一轮AI泡沫破灭得差不多才会出现吗?

应该不用等那么久;未来最可能出现的,也应该不是Top-Down模式被Bottom-Up模式彻底取代,而是Bottom-Up(自下而上)负责产生创新、Top-Down(自上而下)负责提供保障。低风险的小工具小软件,很可能被允许自由试验(保证安全前提下);万马奔腾的时代,跑出来的优胜者就有机会被IT团队“转正”,得到更专业的开发资源与运维保障,野鸡变凤凰。而那些涉及到最核心业务与生产环境的软件,也许仍然会保持相对严格的管控,需要你进行登记并获得授权。

这看起来,又是一个TikTok/抖音降低短视频创作者的门槛、播客(Podcast)降低音频创作者的门槛、博客降低文字创作者的门槛的故事。只不过,今天的AI技术已经把编程实现这块做得很好了,但像当年Sourceforge、Github这样的消费级“野生软件”平台,却还没有出现。

看来,没准是真要等到这一轮AI泡沫破灭得差不多,所有这些就应该差不多都好了吧。。。

相关学习资料