“動嘴”開發(fā)一個軟件后我對AI時代的產(chǎn)研工作的認知
在AI技術(shù)飛速發(fā)展的今天,軟件開發(fā)的門檻正在被逐步降低。本文作者作為一名非計算機專業(yè)的產(chǎn)品經(jīng)理,通過親身體驗,利用AI編程工具(如Deepseek和Trae)嘗試開發(fā)一款簡易的APS排程軟件,記錄了從需求提出到軟件完成的全過程。
作為一個非計算機專業(yè)的產(chǎn)品經(jīng)理,雖然我沒有任何代碼基礎(chǔ),不懂編程,但是常年在產(chǎn)研團隊中工作,對編程和開發(fā)工作極度渴望,是程序員升職記、while true:learn等游戲的忠實玩家,有時遇到自己感興趣的產(chǎn)品想法會有動手開發(fā)的沖動,但是礙于不會編程,不得不放棄。自從去年夏天cursor爆火之后,我開始跟著網(wǎng)上的大佬嘗試應(yīng)用AI編程工具。
寫這篇文章記錄最近的一次AI編程嘗試,利用AI編程工具開發(fā)一款簡易的APS排程軟件,驗證一下目前的AI編程工具能否實現(xiàn)“動嘴”開發(fā)。同時在這次嘗試的過程中,對產(chǎn)研團隊的工作方式,產(chǎn)品經(jīng)理的職業(yè)發(fā)展有了新的認知。
“動嘴”開發(fā)的過程
軟件的基本邏輯如下:
- 基本的資料包括產(chǎn)品、工藝、訂單,通過這些數(shù)據(jù),可以得出生產(chǎn)所需要的各生產(chǎn)工序以及工作量(包括工序之間必要的約束關(guān)系)
- 規(guī)劃資源包括員工和設(shè)備,員工具有不同的技能屬性,支持匹配的工序任務(wù),設(shè)備同理
- 規(guī)劃求解機制,程序能夠使用一定的算法在符合所有約束條件的情況下,規(guī)劃工序任務(wù)、分配規(guī)劃資源,得出一個近似最優(yōu)(時間、人力、設(shè)備等等)的排產(chǎn)方案
這次開發(fā)的過程被分為了,準備、編碼、測試、打包幾個階段,主要使用了在線的deepseek R1以及Trae,因為Trae最新的Claude-3.7-Sonnet模型每次請求都需要排很久的隊所以這次只使用了Claude-3.5-Sonnet和Deepseek-Reasoner(R1),預(yù)測使用Claude3.7模型開發(fā)效果會更好。
準備
因為在考慮開發(fā)這個軟件之前就已經(jīng)對軟件的大致框架、功能邏輯有了基本的設(shè)計,所以這次嘗試跳過了設(shè)計階段直接開始準備開發(fā),準備階段我主要使用的是deepseek R1,在提供了基本的業(yè)務(wù)背景、業(yè)務(wù)目標(biāo)、功能邏輯以及我當(dāng)前的開發(fā)環(huán)境等信息后,deepseek R1根據(jù)我的情況提供了技術(shù)選型方案、大致的開發(fā)步驟以及避坑指南。
這里要非常感謝Deepseek的建議,因為在它的建議下使用了git,開發(fā)過程中代碼可以回滾,避免了幾次重大問題。
核心語言我選擇了python、GUI框架選擇了Tkinter,文件處理選擇了json。
接著,我在Trae的Builder模式下輸入大致的業(yè)務(wù)背景以及剛才生成技術(shù)選型的結(jié)果,提交之后,Builder開始幫我檢查本地是否正確安裝了開發(fā)所需的依賴環(huán)境,在運行了幾個指令之后,確認了當(dāng)前我本地的開發(fā)環(huán)境,并幫我安裝了幾個必要的庫。接下來,就可以開始編碼了(如果使用cursor的內(nèi)容以及提前確定的設(shè)計、開發(fā)規(guī)范都可以通過rules提供給AI)。
編碼、測試、打包
目前一次性讓Claude-3.5-Sonnet完成整個相對復(fù)雜的程序開發(fā)是不現(xiàn)實的,并且在看不懂代碼的情況下我需要即時驗證程序是否符合預(yù)期,所以,我把整個開發(fā)過程拆分成了界面搭建、數(shù)據(jù)維護功能搭建和規(guī)劃求解功能搭建三個步驟,增量式地完成軟件開發(fā)。
第一步,界面搭建,我們根據(jù)功能需要描述出軟件的界面框架和模塊結(jié)構(gòu),很快它就完成了主界面、主菜單、功能模塊的搭建。
第二步,數(shù)據(jù)維護部分,需要描述每個模塊數(shù)據(jù)的基本屬性和增、刪、改、查的規(guī)則,我們分不同的模塊描述了基本的數(shù)據(jù)結(jié)構(gòu)的大致規(guī)則,程序都按照要求編寫出了對應(yīng)的數(shù)據(jù)維護功能,調(diào)試運行,功能正常。
前幾個模塊描述得足夠詳細,后面幾個模塊在描述得時候就可以放飛了,簡單介紹下大致內(nèi)容它就會根據(jù)類似的規(guī)則編寫出我們想要的標(biāo)準功能。到這里,讓它統(tǒng)計一下,我們花了大約1個小數(shù)已經(jīng)寫出了2850行代碼,我們先在git上提交了這部分代碼。
編碼最后一步,規(guī)劃求解,相比前面的步驟會稍復(fù)雜一些,首先嘗試了直接描述模塊的功能和大致規(guī)則。
結(jié)果正如預(yù)測,程序運行失敗,出現(xiàn)了大量的報錯,我們試著將這些報錯發(fā)給builder讓它進行修復(fù),但是,經(jīng)過幾輪修復(fù)后仍然沒有解決問題,于是,我們改變策略,回退代碼,再次把內(nèi)容拆分,我們把排程的過程拆分為了:生成排程任務(wù)、任務(wù)分配、沖突檢查三個部分,分步實現(xiàn)每個功能,這次雖然部分情況下仍然出現(xiàn)報錯,但是基本讓它排查一次都能修復(fù),經(jīng)過十幾輪對話后,基本功能搭建好了。
但是此時生成的結(jié)果是表格形式的,所以,又花了幾輪對話,把排程結(jié)果改為了甘特圖的樣式,至此具有完整功能的第一版軟件開發(fā)好了。
再此版本之上,我還嘗試了讓Build更換算法策略,改為使用之前Deepseek推薦的進化算法,這種情況下需要強調(diào)更改過程只改算法規(guī)則,保持頁面和交互不做改動,改動后的程序能順利運行。
在完成每個模塊的功能開發(fā)后,我讓builder創(chuàng)建一個單元測試用例,并進行測試來驗證、確?;竟δ艿目捎?。
所有模塊功能都驗證沒有問題,我們描述打包需求,讓builder幫我們選擇、安裝打包工具并執(zhí)行打包命令,打包過程比較順利,至此,我們完成了軟件的開發(fā)過程。
小結(jié)一下,經(jīng)過這次嘗試,可以得出結(jié)論,一般軟件開發(fā)過程中的技術(shù)選型、環(huán)境搭建、編碼、測試、打包工作,都可以使用AI完成,作為沒有編碼技能的用戶可以通過AI工具實現(xiàn)自己的想法,想要開發(fā)商業(yè)級的軟件產(chǎn)品,操作者仍然需要具備工程師級別的編程經(jīng)驗,AI編碼的效率提升也需要專業(yè)程序員來進一步評估。
但是具有豐富業(yè)務(wù)經(jīng)驗的工程師能夠使用AI工具快速應(yīng)用自己不熟悉的技術(shù)棧完成產(chǎn)品的編碼工作并不斷完善產(chǎn)品,同時一些高度重復(fù)機械性的編碼工作也可以讓AI代勞。如果AI編程技術(shù)繼續(xù)以現(xiàn)在的速度發(fā)展下去,未來我們也許真的會出現(xiàn)AI程序員同事。
在這次嘗試的過程中,對于產(chǎn)研工作尤其是產(chǎn)品經(jīng)理的工作我產(chǎn)生了三個認知。
認知一,從“執(zhí)行者”到“審核人”
在這次嘗試的過程中,我和builder的主要交互模式如下:
- 我向它發(fā)送需求指令
- builder生成并編輯相應(yīng)的代碼文件,在編輯器中展示每一步的修改內(nèi)容并將所有的行為總結(jié)后報告給我
- 我進行審核確認操作(保存修改、拒絕修改、運行終端指令等)
- 編輯器執(zhí)行相應(yīng)操作并將終端反饋回傳給builder進行分析
- builder分析需求完成情況,報告執(zhí)行結(jié)果
- 我繼續(xù)發(fā)送下一步需求指令
歸功于適用AI的通用通信協(xié)議,AI能夠完成編碼工作中的主要操作,而Trae、cursor這類編輯器在集成了這種規(guī)則的同時開發(fā)了由用戶決定執(zhí)行每一步操作的功能,從而形成了這種開發(fā)模式。在這種模式下,以往程序員的編碼工作中很多通用的構(gòu)思、大量機械的業(yè)務(wù)代碼都能夠通過簡單的自然語言指令讓AI來實現(xiàn),程序員從編碼的執(zhí)行者變?yōu)榱藢徍巳恕?/p>
我們再延伸到產(chǎn)品經(jīng)理,對于產(chǎn)品經(jīng)理的大部分工作同樣可以利用相同的技術(shù)產(chǎn)生類似的AI工具產(chǎn)品,創(chuàng)造AI產(chǎn)品助理,來和產(chǎn)品經(jīng)理一起進行協(xié)同產(chǎn)品設(shè)計、文檔撰寫,此時,產(chǎn)品經(jīng)理的角色也將從執(zhí)行者轉(zhuǎn)變?yōu)閷徍巳?,此時會更多地要求產(chǎn)品經(jīng)理具有比較強的商業(yè)敏感度、思辨能力和判斷力,在AI助理按照你的想法提供了產(chǎn)品方案后,你能夠根據(jù)你對產(chǎn)品、客戶以及業(yè)務(wù)的理解發(fā)現(xiàn)存在的問題,洞察到新的機會和可優(yōu)化點做一個合格的審核人。
認知二,產(chǎn)品研發(fā)流程變化
新的工具出現(xiàn),讓編程的門檻降低,雖然我們無法直接參與到軟件程序的編寫工作中,但是工具為我們提供的編程能力,可以幫助我們把更多的產(chǎn)品想法落地到初步的demo上,在研發(fā)資源不足以分配給團隊進行新的方向時,甚至產(chǎn)品經(jīng)理可以自己開展“臭鼬工程”自己抽時間搗鼓出一個程序來進行前期的實驗,在得到積極的實驗反饋后,再申請相應(yīng)的資源投入,這樣從想法到成功落地項目的可能性將會更高。這樣一來敏捷型的產(chǎn)品開發(fā)流程可能會演化為非技術(shù)人員先脫離產(chǎn)品技術(shù)棧構(gòu)建新業(yè)務(wù)功能快速驗證成功后再轉(zhuǎn)入開發(fā)項目沖刺的超敏捷開發(fā)流程。
以前產(chǎn)品經(jīng)理需要通過清晰的語言描述、產(chǎn)品原型圖來向相關(guān)方陳述產(chǎn)品方案。但是語言具有誘導(dǎo)性信息傳遞過程會出現(xiàn)失真;高保真原型圖繪制費時費力,低保真原型圖又無法完整表達產(chǎn)品想法。現(xiàn)在我們可以通過AI工具快速將想法轉(zhuǎn)變?yōu)榛A(chǔ)的產(chǎn)品案例,從而提升產(chǎn)品設(shè)計和方案驗證的效率,當(dāng)然真正提升效率仍然依靠成熟可靠的AI工具和產(chǎn)品經(jīng)理的專業(yè)性以及熟練應(yīng)用工具的技能。不過當(dāng)前已經(jīng)有產(chǎn)品經(jīng)理開始使用AI編程工具來開發(fā)前端頁面,再將工程導(dǎo)入figma來快速實現(xiàn)高保真產(chǎn)品原型的搭建工作,各大產(chǎn)品設(shè)計軟件也已經(jīng)相繼推出AI設(shè)計的功能,這個設(shè)想應(yīng)該很快就會成為普遍現(xiàn)實。
認知三,人性化設(shè)計的不可替代性
當(dāng)AI抹平了執(zhí)行的鴻溝,我們比任何時候都更需要知道:究竟要為什么樣的價值去創(chuàng)造
當(dāng)以上的兩個趨勢逐步成為現(xiàn)實后,可以預(yù)見的一個現(xiàn)象就是單純靠AI產(chǎn)出的內(nèi)容會存在同質(zhì)化嚴重的特點,這樣以來,產(chǎn)品經(jīng)理角色真正的價值屬性就變成了脫離AI的洞察力。
我在這次嘗試的過程中就能夠感覺到在雖然在開發(fā)時我只需要提供相對模糊的表述,AI就可以在此基礎(chǔ)上進一步設(shè)計程序,補充很多可能忽略的細節(jié),但是AI的設(shè)計始終無法脫離范式。
目前AI的優(yōu)勢在于它完成了我們普通人無法完成的知識儲備,像一個百科全書,并且已經(jīng)開始具備了慢思考能力,能夠進行邏輯推理,但缺點是它始終會被禁錮在已有的知識中,根據(jù)所謂的“最佳實踐”產(chǎn)出內(nèi)容,因而缺少創(chuàng)新性。并且我們都知道要想更加理解用戶,你需要的不是成為萬事通而是帶著用戶的思維去思考和體會,甚至成為用戶,這樣才能找到真正具有價值的產(chǎn)品機會。
我們需要能夠依靠我們對業(yè)務(wù)的理解、對用戶的敏銳洞察以及共情能力,發(fā)掘出產(chǎn)品價值,找到用戶的不滿、焦慮、恐懼、憤怒再借助AI工具來創(chuàng)造滿足用戶的產(chǎn)品。
所以從現(xiàn)在開始,在產(chǎn)品設(shè)計過程中,我們應(yīng)該更多地去尋找我們相對于AI在人性理解中的優(yōu)勢并且刻意地訓(xùn)練,提高我們的敏感度,讓我們相比AI更加人性化。
總結(jié)
AI技術(shù)發(fā)展迅猛,就在我寫下這篇文章的時候,網(wǎng)上已經(jīng)有更多的AI編程、產(chǎn)品開發(fā)的技術(shù)應(yīng)用案例出現(xiàn),在不停追逐科技前沿嘗試新技術(shù)的同時,我們也需要更多地進行反思,技術(shù)更新的浪潮里,我們個體的發(fā)光點在哪里,怎樣在自己的職業(yè)中產(chǎn)生更多價值。
本文由 @Sailors 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)
- 目前還沒評論,等你發(fā)揮!