軟件工程的方法論改了50年,但有個(gè)問(wèn)題沒(méi)人敢問(wèn)——這些改變是真的學(xué)會(huì)了什么,還是只是換了個(gè)流行款式?
2023年,全球企業(yè)在敏捷轉(zhuǎn)型上花了約300億美元。同期,Standish Group的報(bào)告顯示,項(xiàng)目成功率跟20年前相比,曲線幾乎重合。錢花了,儀式做了,站會(huì)開(kāi)了,但東西該延期還是延期,該爛尾還是爛尾。
疼痛驅(qū)動(dòng)的進(jìn)化史
軟件工程的方法論從來(lái)不是設(shè)計(jì)出來(lái)的,是疼出來(lái)的。
瀑布模型(Waterfall)在1960年代誕生時(shí), Winston Royce 的原始論文其實(shí)警告過(guò)它的風(fēng)險(xiǎn)——但管理層喜歡"需求→設(shè)計(jì)→編碼→測(cè)試"的線性美感,像喜歡甘特圖一樣。結(jié)果項(xiàng)目平均超期200%,需求變更成本呈指數(shù)級(jí)爆炸。疼了二十年,才有人認(rèn)真聽(tīng) Royce 的警告。
敏捷(Agile)在2001年出現(xiàn),不是因?yàn)?Kent Beck 們突然開(kāi)悟,是因?yàn)?Rational Unified Process(統(tǒng)一軟件開(kāi)發(fā)過(guò)程)把中型團(tuán)隊(duì)也逼進(jìn)了文檔地獄。17個(gè)人在雪鳥(niǎo)滑雪場(chǎng)簽了份宣言,核心就一句話: working software over comprehensive documentation(可工作的軟件勝過(guò)詳盡的文檔)。
但敏捷能擴(kuò)散,不只是因?yàn)楹糜谩?008年金融危機(jī)后,企業(yè)需要"更快交付"的故事向董事會(huì)交代;Scrum 認(rèn)證體系(Scrum Alliance 2001年成立)創(chuàng)造了數(shù)十億美元的培訓(xùn)市場(chǎng);Jira 等工具把敏捷流程固化成可購(gòu)買的軟件模塊。方法論的傳播路徑,和療效只有松散的相關(guān)性。
survived 下來(lái)的實(shí)踐——迭代交付、持續(xù)集成(Continuous Integration)、反饋循環(huán)——確實(shí)在足夠多的場(chǎng)景里減少了疼痛。但這比"證明有效"弱,比"純屬巧合"強(qiáng),處于一種尷尬的中間地帶。
每代人都得重新踩坑
更深的問(wèn)題從來(lái)沒(méi)解決:流程是應(yīng)該被測(cè)試的假設(shè),而不是被服從的真理。
這個(gè)教訓(xùn)每代人都得重新學(xué)一遍,而且學(xué)得很難。1990年代的 CMM(能力成熟度模型)被當(dāng)成宗教推行,直到有人發(fā)現(xiàn)五級(jí)認(rèn)證的公司照樣產(chǎn)出垃圾代碼。2010年代的 Spotify 模型(Spotify Model)被全球復(fù)制,但 Spotify 自己早就棄用了——它從來(lái)就不是給外部公司設(shè)計(jì)的。
方法論被繼承時(shí)總是以教義形式出現(xiàn)。新入行的工程師拿到的是"我們要做雙周迭代"的指令,而不是"我們?cè)隍?yàn)證雙周是否適合當(dāng)前項(xiàng)目"的問(wèn)題。組織把流程當(dāng)成身份標(biāo)識(shí)——"我們是敏捷的"——而不是可證偽的實(shí)驗(yàn)。
這種混淆的代價(jià)是真實(shí)的。2022年,一家金融科技公司強(qiáng)制推行 SAFe(規(guī)模化敏捷框架),18個(gè)月后工程師離職率上升40%,交付周期反而延長(zhǎng)。復(fù)盤(pán)時(shí)發(fā)現(xiàn),問(wèn)題不是敏捷錯(cuò)了,是把敏捷當(dāng)成正確答案強(qiáng)制執(zhí)行錯(cuò)了。
AI正在拆掉成本圍墻
現(xiàn)在變量變了。AI 正在溶解支撐當(dāng)前實(shí)踐的成本結(jié)構(gòu)。
寫(xiě)代碼的成本在下降。GitHub Copilot 的用戶編碼速度提升55%,這改變的是"寫(xiě)代碼很貴,必須仔細(xì)規(guī)劃"的底層假設(shè)。測(cè)試的成本在下降。AI 生成的測(cè)試用例覆蓋率達(dá)到人工的80%,但成本是1/20。代碼審查(Code Review)在自動(dòng)化,F(xiàn)acebook 的 SapFix 已經(jīng)能自動(dòng)修復(fù)部分漏洞。
這些變化不是漸進(jìn)優(yōu)化,是前提條件的瓦解。當(dāng)構(gòu)建和測(cè)試變得便宜,"前期詳細(xì)設(shè)計(jì)"的合理性就動(dòng)搖了;當(dāng)審查可以自動(dòng)化,"必須人工把關(guān)每一行"的儀式就值得重新審視。
但有些東西 AI 碰不到:弄清楚該做什么、為誰(shuí)而做。這是產(chǎn)品經(jīng)理的地盤(pán),是用戶研究的地盤(pán),是組織政治的地盤(pán)。這些問(wèn)題的成本沒(méi)有下降,反而可能因?yàn)榧夹g(shù)選項(xiàng)的爆炸而上升——當(dāng)做什么都變得可能,選擇做什么變得更難。
組織會(huì)分化為兩類:把流程當(dāng)假設(shè)的,和把流程當(dāng)信仰的。前者會(huì)快速實(shí)驗(yàn)、廢棄、重組;后者會(huì)先困惑,再防御,最后被迫改變。
軟件工程史上有過(guò)多次這種分化。1980年代的結(jié)構(gòu)化編程 vs goto 的捍衛(wèi)者;2000年代的敏捷 vs 瀑布的堅(jiān)守者。每次"被迫改變"都伴隨著大量浪費(fèi)——項(xiàng)目取消、團(tuán)隊(duì)重組、職業(yè)生涯中斷。
這次的不同在于速度。AI 壓縮了反饋循環(huán),也壓縮了糾錯(cuò)的時(shí)間窗口。
50年來(lái),軟件工程確實(shí)學(xué)到了一些東西:迭代比長(zhǎng)周期安全,反饋比假設(shè)可靠,自動(dòng)化比人工重復(fù)勞動(dòng)穩(wěn)定。但這些知識(shí)總是以過(guò)時(shí)的形式被傳遞,每個(gè)新團(tuán)隊(duì)都要重新發(fā)現(xiàn)它們的邊界條件。
AI 不會(huì)終結(jié)這個(gè)循環(huán),但會(huì)加速它。問(wèn)題是這一代人要為糾錯(cuò)支付多少學(xué)費(fèi)——以及有多少人能意識(shí)到,他們手里的方法論不是地圖,只是上次探險(xiǎn)時(shí)畫(huà)的草圖。
你的團(tuán)隊(duì)現(xiàn)在在用什么流程?是去年選的,還是十年前選的,還是"反正大家都這么做"?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.