“動(dòng)嘴”開(kāi)發(fā)一個(gè)軟件后我對(duì)AI時(shí)代的產(chǎn)研工作的認(rèn)知

0 評(píng)論 1154 瀏覽 18 收藏 17 分鐘

在AI技術(shù)飛速發(fā)展的今天,軟件開(kāi)發(fā)的門(mén)檻正在被逐步降低。本文作者作為一名非計(jì)算機(jī)專(zhuān)業(yè)的產(chǎn)品經(jīng)理,通過(guò)親身體驗(yàn),利用AI編程工具(如Deepseek和Trae)嘗試開(kāi)發(fā)一款簡(jiǎn)易的APS排程軟件,記錄了從需求提出到軟件完成的全過(guò)程。

作為一個(gè)非計(jì)算機(jī)專(zhuān)業(yè)的產(chǎn)品經(jīng)理,雖然我沒(méi)有任何代碼基礎(chǔ),不懂編程,但是常年在產(chǎn)研團(tuán)隊(duì)中工作,對(duì)編程和開(kāi)發(fā)工作極度渴望,是程序員升職記、while true:learn等游戲的忠實(shí)玩家,有時(shí)遇到自己感興趣的產(chǎn)品想法會(huì)有動(dòng)手開(kāi)發(fā)的沖動(dòng),但是礙于不會(huì)編程,不得不放棄。自從去年夏天cursor爆火之后,我開(kāi)始跟著網(wǎng)上的大佬嘗試應(yīng)用AI編程工具。

寫(xiě)這篇文章記錄最近的一次AI編程嘗試,利用AI編程工具開(kāi)發(fā)一款簡(jiǎn)易的APS排程軟件,驗(yàn)證一下目前的AI編程工具能否實(shí)現(xiàn)“動(dòng)嘴”開(kāi)發(fā)。同時(shí)在這次嘗試的過(guò)程中,對(duì)產(chǎn)研團(tuán)隊(duì)的工作方式,產(chǎn)品經(jīng)理的職業(yè)發(fā)展有了新的認(rèn)知。

“動(dòng)嘴”開(kāi)發(fā)的過(guò)程

軟件的基本邏輯如下:

  1. 基本的資料包括產(chǎn)品、工藝、訂單,通過(guò)這些數(shù)據(jù),可以得出生產(chǎn)所需要的各生產(chǎn)工序以及工作量(包括工序之間必要的約束關(guān)系)
  2. 規(guī)劃資源包括員工和設(shè)備,員工具有不同的技能屬性,支持匹配的工序任務(wù),設(shè)備同理
  3. 規(guī)劃求解機(jī)制,程序能夠使用一定的算法在符合所有約束條件的情況下,規(guī)劃工序任務(wù)、分配規(guī)劃資源,得出一個(gè)近似最優(yōu)(時(shí)間、人力、設(shè)備等等)的排產(chǎn)方案

這次開(kāi)發(fā)的過(guò)程被分為了,準(zhǔn)備、編碼、測(cè)試、打包幾個(gè)階段,主要使用了在線(xiàn)的deepseek R1以及Trae,因?yàn)門(mén)rae最新的Claude-3.7-Sonnet模型每次請(qǐng)求都需要排很久的隊(duì)所以這次只使用了Claude-3.5-Sonnet和Deepseek-Reasoner(R1),預(yù)測(cè)使用Claude3.7模型開(kāi)發(fā)效果會(huì)更好。

準(zhǔn)備

因?yàn)樵诳紤]開(kāi)發(fā)這個(gè)軟件之前就已經(jīng)對(duì)軟件的大致框架、功能邏輯有了基本的設(shè)計(jì),所以這次嘗試跳過(guò)了設(shè)計(jì)階段直接開(kāi)始準(zhǔn)備開(kāi)發(fā),準(zhǔn)備階段我主要使用的是deepseek R1,在提供了基本的業(yè)務(wù)背景、業(yè)務(wù)目標(biāo)、功能邏輯以及我當(dāng)前的開(kāi)發(fā)環(huán)境等信息后,deepseek R1根據(jù)我的情況提供了技術(shù)選型方案、大致的開(kāi)發(fā)步驟以及避坑指南。

這里要非常感謝Deepseek的建議,因?yàn)樵谒慕ㄗh下使用了git,開(kāi)發(fā)過(guò)程中代碼可以回滾,避免了幾次重大問(wèn)題。

核心語(yǔ)言我選擇了python、GUI框架選擇了Tkinter,文件處理選擇了json。

接著,我在Trae的Builder模式下輸入大致的業(yè)務(wù)背景以及剛才生成技術(shù)選型的結(jié)果,提交之后,Builder開(kāi)始幫我檢查本地是否正確安裝了開(kāi)發(fā)所需的依賴(lài)環(huán)境,在運(yùn)行了幾個(gè)指令之后,確認(rèn)了當(dāng)前我本地的開(kāi)發(fā)環(huán)境,并幫我安裝了幾個(gè)必要的庫(kù)。接下來(lái),就可以開(kāi)始編碼了(如果使用cursor的內(nèi)容以及提前確定的設(shè)計(jì)、開(kāi)發(fā)規(guī)范都可以通過(guò)rules提供給AI)。

編碼、測(cè)試、打包

目前一次性讓Claude-3.5-Sonnet完成整個(gè)相對(duì)復(fù)雜的程序開(kāi)發(fā)是不現(xiàn)實(shí)的,并且在看不懂代碼的情況下我需要即時(shí)驗(yàn)證程序是否符合預(yù)期,所以,我把整個(gè)開(kāi)發(fā)過(guò)程拆分成了界面搭建、數(shù)據(jù)維護(hù)功能搭建和規(guī)劃求解功能搭建三個(gè)步驟,增量式地完成軟件開(kāi)發(fā)。

第一步,界面搭建,我們根據(jù)功能需要描述出軟件的界面框架和模塊結(jié)構(gòu),很快它就完成了主界面、主菜單、功能模塊的搭建。

第二步,數(shù)據(jù)維護(hù)部分,需要描述每個(gè)模塊數(shù)據(jù)的基本屬性和增、刪、改、查的規(guī)則,我們分不同的模塊描述了基本的數(shù)據(jù)結(jié)構(gòu)的大致規(guī)則,程序都按照要求編寫(xiě)出了對(duì)應(yīng)的數(shù)據(jù)維護(hù)功能,調(diào)試運(yùn)行,功能正常。

前幾個(gè)模塊描述得足夠詳細(xì),后面幾個(gè)模塊在描述得時(shí)候就可以放飛了,簡(jiǎn)單介紹下大致內(nèi)容它就會(huì)根據(jù)類(lèi)似的規(guī)則編寫(xiě)出我們想要的標(biāo)準(zhǔn)功能。到這里,讓它統(tǒng)計(jì)一下,我們花了大約1個(gè)小數(shù)已經(jīng)寫(xiě)出了2850行代碼,我們先在git上提交了這部分代碼。

編碼最后一步,規(guī)劃求解,相比前面的步驟會(huì)稍復(fù)雜一些,首先嘗試了直接描述模塊的功能和大致規(guī)則。

結(jié)果正如預(yù)測(cè),程序運(yùn)行失敗,出現(xiàn)了大量的報(bào)錯(cuò),我們?cè)囍鴮⑦@些報(bào)錯(cuò)發(fā)給builder讓它進(jìn)行修復(fù),但是,經(jīng)過(guò)幾輪修復(fù)后仍然沒(méi)有解決問(wèn)題,于是,我們改變策略,回退代碼,再次把內(nèi)容拆分,我們把排程的過(guò)程拆分為了:生成排程任務(wù)、任務(wù)分配、沖突檢查三個(gè)部分,分步實(shí)現(xiàn)每個(gè)功能,這次雖然部分情況下仍然出現(xiàn)報(bào)錯(cuò),但是基本讓它排查一次都能修復(fù),經(jīng)過(guò)十幾輪對(duì)話(huà)后,基本功能搭建好了。

但是此時(shí)生成的結(jié)果是表格形式的,所以,又花了幾輪對(duì)話(huà),把排程結(jié)果改為了甘特圖的樣式,至此具有完整功能的第一版軟件開(kāi)發(fā)好了。

再此版本之上,我還嘗試了讓Build更換算法策略,改為使用之前Deepseek推薦的進(jìn)化算法,這種情況下需要強(qiáng)調(diào)更改過(guò)程只改算法規(guī)則,保持頁(yè)面和交互不做改動(dòng),改動(dòng)后的程序能順利運(yùn)行。

在完成每個(gè)模塊的功能開(kāi)發(fā)后,我讓builder創(chuàng)建一個(gè)單元測(cè)試用例,并進(jìn)行測(cè)試來(lái)驗(yàn)證、確?;竟δ艿目捎?。

所有模塊功能都驗(yàn)證沒(méi)有問(wèn)題,我們描述打包需求,讓builder幫我們選擇、安裝打包工具并執(zhí)行打包命令,打包過(guò)程比較順利,至此,我們完成了軟件的開(kāi)發(fā)過(guò)程。

小結(jié)一下,經(jīng)過(guò)這次嘗試,可以得出結(jié)論,一般軟件開(kāi)發(fā)過(guò)程中的技術(shù)選型、環(huán)境搭建、編碼、測(cè)試、打包工作,都可以使用AI完成,作為沒(méi)有編碼技能的用戶(hù)可以通過(guò)AI工具實(shí)現(xiàn)自己的想法,想要開(kāi)發(fā)商業(yè)級(jí)的軟件產(chǎn)品,操作者仍然需要具備工程師級(jí)別的編程經(jīng)驗(yàn),AI編碼的效率提升也需要專(zhuān)業(yè)程序員來(lái)進(jìn)一步評(píng)估。

但是具有豐富業(yè)務(wù)經(jīng)驗(yàn)的工程師能夠使用AI工具快速應(yīng)用自己不熟悉的技術(shù)棧完成產(chǎn)品的編碼工作并不斷完善產(chǎn)品,同時(shí)一些高度重復(fù)機(jī)械性的編碼工作也可以讓AI代勞。如果AI編程技術(shù)繼續(xù)以現(xiàn)在的速度發(fā)展下去,未來(lái)我們也許真的會(huì)出現(xiàn)AI程序員同事。

在這次嘗試的過(guò)程中,對(duì)于產(chǎn)研工作尤其是產(chǎn)品經(jīng)理的工作我產(chǎn)生了三個(gè)認(rèn)知。

認(rèn)知一,從“執(zhí)行者”到“審核人”

在這次嘗試的過(guò)程中,我和builder的主要交互模式如下:

  1. 我向它發(fā)送需求指令
  2. builder生成并編輯相應(yīng)的代碼文件,在編輯器中展示每一步的修改內(nèi)容并將所有的行為總結(jié)后報(bào)告給我
  3. 我進(jìn)行審核確認(rèn)操作(保存修改、拒絕修改、運(yùn)行終端指令等)
  4. 編輯器執(zhí)行相應(yīng)操作并將終端反饋回傳給builder進(jìn)行分析
  5. builder分析需求完成情況,報(bào)告執(zhí)行結(jié)果
  6. 我繼續(xù)發(fā)送下一步需求指令

歸功于適用AI的通用通信協(xié)議,AI能夠完成編碼工作中的主要操作,而Trae、cursor這類(lèi)編輯器在集成了這種規(guī)則的同時(shí)開(kāi)發(fā)了由用戶(hù)決定執(zhí)行每一步操作的功能,從而形成了這種開(kāi)發(fā)模式。在這種模式下,以往程序員的編碼工作中很多通用的構(gòu)思、大量機(jī)械的業(yè)務(wù)代碼都能夠通過(guò)簡(jiǎn)單的自然語(yǔ)言指令讓AI來(lái)實(shí)現(xiàn),程序員從編碼的執(zhí)行者變?yōu)榱藢徍巳恕?/p>

我們?cè)傺由斓疆a(chǎn)品經(jīng)理,對(duì)于產(chǎn)品經(jīng)理的大部分工作同樣可以利用相同的技術(shù)產(chǎn)生類(lèi)似的AI工具產(chǎn)品,創(chuàng)造AI產(chǎn)品助理,來(lái)和產(chǎn)品經(jīng)理一起進(jìn)行協(xié)同產(chǎn)品設(shè)計(jì)、文檔撰寫(xiě),此時(shí),產(chǎn)品經(jīng)理的角色也將從執(zhí)行者轉(zhuǎn)變?yōu)閷徍巳?,此時(shí)會(huì)更多地要求產(chǎn)品經(jīng)理具有比較強(qiáng)的商業(yè)敏感度、思辨能力和判斷力,在AI助理按照你的想法提供了產(chǎn)品方案后,你能夠根據(jù)你對(duì)產(chǎn)品、客戶(hù)以及業(yè)務(wù)的理解發(fā)現(xiàn)存在的問(wèn)題,洞察到新的機(jī)會(huì)和可優(yōu)化點(diǎn)做一個(gè)合格的審核人。

認(rèn)知二,產(chǎn)品研發(fā)流程變化

新的工具出現(xiàn),讓編程的門(mén)檻降低,雖然我們無(wú)法直接參與到軟件程序的編寫(xiě)工作中,但是工具為我們提供的編程能力,可以幫助我們把更多的產(chǎn)品想法落地到初步的demo上,在研發(fā)資源不足以分配給團(tuán)隊(duì)進(jìn)行新的方向時(shí),甚至產(chǎn)品經(jīng)理可以自己開(kāi)展“臭鼬工程”自己抽時(shí)間搗鼓出一個(gè)程序來(lái)進(jìn)行前期的實(shí)驗(yàn),在得到積極的實(shí)驗(yàn)反饋后,再申請(qǐng)相應(yīng)的資源投入,這樣從想法到成功落地項(xiàng)目的可能性將會(huì)更高。這樣一來(lái)敏捷型的產(chǎn)品開(kāi)發(fā)流程可能會(huì)演化為非技術(shù)人員先脫離產(chǎn)品技術(shù)棧構(gòu)建新業(yè)務(wù)功能快速驗(yàn)證成功后再轉(zhuǎn)入開(kāi)發(fā)項(xiàng)目沖刺的超敏捷開(kāi)發(fā)流程。

以前產(chǎn)品經(jīng)理需要通過(guò)清晰的語(yǔ)言描述、產(chǎn)品原型圖來(lái)向相關(guān)方陳述產(chǎn)品方案。但是語(yǔ)言具有誘導(dǎo)性信息傳遞過(guò)程會(huì)出現(xiàn)失真;高保真原型圖繪制費(fèi)時(shí)費(fèi)力,低保真原型圖又無(wú)法完整表達(dá)產(chǎn)品想法?,F(xiàn)在我們可以通過(guò)AI工具快速將想法轉(zhuǎn)變?yōu)榛A(chǔ)的產(chǎn)品案例,從而提升產(chǎn)品設(shè)計(jì)和方案驗(yàn)證的效率,當(dāng)然真正提升效率仍然依靠成熟可靠的AI工具和產(chǎn)品經(jīng)理的專(zhuān)業(yè)性以及熟練應(yīng)用工具的技能。不過(guò)當(dāng)前已經(jīng)有產(chǎn)品經(jīng)理開(kāi)始使用AI編程工具來(lái)開(kāi)發(fā)前端頁(yè)面,再將工程導(dǎo)入figma來(lái)快速實(shí)現(xiàn)高保真產(chǎn)品原型的搭建工作,各大產(chǎn)品設(shè)計(jì)軟件也已經(jīng)相繼推出AI設(shè)計(jì)的功能,這個(gè)設(shè)想應(yīng)該很快就會(huì)成為普遍現(xiàn)實(shí)。

認(rèn)知三,人性化設(shè)計(jì)的不可替代性

當(dāng)AI抹平了執(zhí)行的鴻溝,我們比任何時(shí)候都更需要知道:究竟要為什么樣的價(jià)值去創(chuàng)造

當(dāng)以上的兩個(gè)趨勢(shì)逐步成為現(xiàn)實(shí)后,可以預(yù)見(jiàn)的一個(gè)現(xiàn)象就是單純靠AI產(chǎn)出的內(nèi)容會(huì)存在同質(zhì)化嚴(yán)重的特點(diǎn),這樣以來(lái),產(chǎn)品經(jīng)理角色真正的價(jià)值屬性就變成了脫離AI的洞察力。

我在這次嘗試的過(guò)程中就能夠感覺(jué)到在雖然在開(kāi)發(fā)時(shí)我只需要提供相對(duì)模糊的表述,AI就可以在此基礎(chǔ)上進(jìn)一步設(shè)計(jì)程序,補(bǔ)充很多可能忽略的細(xì)節(jié),但是AI的設(shè)計(jì)始終無(wú)法脫離范式。

目前AI的優(yōu)勢(shì)在于它完成了我們普通人無(wú)法完成的知識(shí)儲(chǔ)備,像一個(gè)百科全書(shū),并且已經(jīng)開(kāi)始具備了慢思考能力,能夠進(jìn)行邏輯推理,但缺點(diǎn)是它始終會(huì)被禁錮在已有的知識(shí)中,根據(jù)所謂的“最佳實(shí)踐”產(chǎn)出內(nèi)容,因而缺少創(chuàng)新性。并且我們都知道要想更加理解用戶(hù),你需要的不是成為萬(wàn)事通而是帶著用戶(hù)的思維去思考和體會(huì),甚至成為用戶(hù),這樣才能找到真正具有價(jià)值的產(chǎn)品機(jī)會(huì)。

我們需要能夠依靠我們對(duì)業(yè)務(wù)的理解、對(duì)用戶(hù)的敏銳洞察以及共情能力,發(fā)掘出產(chǎn)品價(jià)值,找到用戶(hù)的不滿(mǎn)、焦慮、恐懼、憤怒再借助AI工具來(lái)創(chuàng)造滿(mǎn)足用戶(hù)的產(chǎn)品。

所以從現(xiàn)在開(kāi)始,在產(chǎn)品設(shè)計(jì)過(guò)程中,我們應(yīng)該更多地去尋找我們相對(duì)于AI在人性理解中的優(yōu)勢(shì)并且刻意地訓(xùn)練,提高我們的敏感度,讓我們相比AI更加人性化。

總結(jié)

AI技術(shù)發(fā)展迅猛,就在我寫(xiě)下這篇文章的時(shí)候,網(wǎng)上已經(jīng)有更多的AI編程、產(chǎn)品開(kāi)發(fā)的技術(shù)應(yīng)用案例出現(xiàn),在不停追逐科技前沿嘗試新技術(shù)的同時(shí),我們也需要更多地進(jìn)行反思,技術(shù)更新的浪潮里,我們個(gè)體的發(fā)光點(diǎn)在哪里,怎樣在自己的職業(yè)中產(chǎn)生更多價(jià)值。

本文由 @Sailors 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

該文觀(guān)點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!