在一家軟體公司,軟體還是手工業。
軟體公司就是把許許多多軟體開發的人才聚集在一起,用一群人的手,大家一起打字、寫文件、寫碼、一起開發軟體。
所以既然是「人」在生產軟體,人越多,做越快,對吧?所以軟體公司越大,開發團隊人越多,理論上生產力就越高。就像下面這張圖,對嗎?
不過這種理論上線性的圖形,現實上絕對不可能發生。畢竟人就不是機器,不是擴增產線,就會擴增產量。通常狀況是,人越多、問題就越多,人多口雜,容易吵架。
1975年出版的《人月神話》,就用一整本書了解釋了這個經典的迷思。只是過了50年,時常還是會遇到不信邪的老闆在挑戰他。
現實上,有可能遇到的圖形會長成這樣:
開發人員越多,理論上生產力會在某個階段會提升,但最終就會遇到一個天花板。為什麼會這樣?
因為人一多,想法就越多,溝通問題就越多。如果以溝通線數對比人數,溝通線數隨著人數成長還是一個指數,是 n(n-1)/2。
人一多,就是管理問題,還有組織設計問題。
於是就會一直遇到很阿雜的狀況:怎麼錄用了更多開發人員,可是生產力卻沒有明顯提升,甚至還比人數少時還沒效率?
當團隊超過某一個人數的臨界點,擴增人力的邊際效益會快速遞減。
那,應該怎麼解決呢?
一群人一起開發軟體開發,他是一個組織管理問題,也是一個專案管理問題,更是一個心裡學的問題,綜合起來,後來發展出的解決方案是「軟體工程方法」。
所謂軟體工程方法,是近代軟體產業,為了讓一大群軟體開發人才,能夠有效率的合作起來做事,在軟體產業慢慢發展出自己的一整套方法,或是法則,或是一種 Guideline。
有別於傳統的瀑布流開發(Waterfall),新的軟體工程方法像是:敏捷開發(Agile)、DevOps、Scrum / Kanban、等等,有許多不同的方法跟派系。
這些軟體工程方法的導入,有機會突破原本生產力的天花板,讓團隊人數越多的時候,同時又能拉出一個生產力成長的新波段。
不過,最挑戰的階段,是在剛導入新方法的過渡期。你以為的成長飛躍,需要能挺過一段死亡低谷。
因為,在團隊剛導入一個新的軟體工程方法時,生產力不會立刻提升,反而會「立刻」下降。因為,團隊運作的慣性給改變了。
新方法改變了大家日常作業的習慣,改變了每天做事的Routine,要養成新習慣,創造新日常,是一個非常困難的過程。而且某些人也可能會不開心離開。
「不是說導入新的軟體工程方法會提升生產力嗎?」「這個方法真的有比較好嗎?」「我覺得這個做法根本在亂搞」在過渡期,這類懷疑的聲音會不停的在公司內部盤旋,無論來自老闆的質詢,或是團隊內部的困惑,這些聲音會不停的挑戰新的改革。
有些公司會撥一小群人先POC,再逐步擴增參與團隊。雖然是一種循序漸進的好方法,但在過渡期,不同團隊之間節奏不同、做法不同,也一樣會遇到團隊間產品整合與溝通的問題。
我們(91APP)完整經歷了上述個各個階段,91APP的開發團隊從20人到300人的過程中,就經歷了上述的各個階段的組織變革。(這一篇文章詳細描述了整個過程與挑戰:91APP的軟體開發之道—從20人到200人的組織發展旅程)
當時團隊走到70~80人,使用傳統的瀑布流的方式開發,但就是一直感覺很卡,整個開發效率感覺跟30人的階段差不多。我們遇到了第一個成長的天花板。
於是我們導入敏捷開發(Agile),經歷了1~2年的過度轉型期,終於才感受到敏捷開發帶來的生產力成長,而跑到今日將近300人的開發團隊規模。
但,這兩年以來,我們又開始感受到生產力提升的「第二個天花板」。接下來,還有什麼方法,可以讓我們再一次提升生產力呢?
2023年生成式AI的出現,讓我們似乎感覺到了新機會。
這兩年我們很用力在探索,Can AI Help?AI能否再一次幫助我們提升生產力呢?
在今年的Generative AI年會上,我分享了我們初步探索的成果。我們發現,AI可以作為團隊內「每一個人」的助手,協助提升個人的效率,同時也就提升了整個團隊的效率。
也就是不是單純放手讓AI去開發,而是人還是開發主力,只是每ㄧ個人都有不同的AI幫助「個人」提升效率。
所以其實還是跑Agile,只是加上了人加上了AI,叫做「Agile for AI」(ChatGPT說的)。
但,有AI真的會比較快嗎?加上AI之後,整個團隊生產效率真的變好了嗎?
事實上,目前感覺上、客觀上都還不敢說。
如同上面在導入Agile時提及的一樣,這是標準的「過渡期問題」,改變工作方法時的死亡低谷,我們已經在導入Agile的那個年代經歷過一次了。
跟AI協作這件事,對許多團隊同仁來說,也是打破原本的工作慣性,尤其在嘗試的初期,生產力是一定下滑的。在團隊一起找出「新日常」之前,其實都是非常痛苦的過程。
只是如果我們不嘗試,我們即將撞到天花板。改變不一定比較好,但不改變就沒有機會。
不過更有趣的事,整個生產力成長的思考維度開始出現變化了。
我們現在的做法,是讓每一個同仁都多了一個助理,只是是AI。我們有300個開發同仁,等於多增加了300個AI助理。
如同我在Generative AI年會分享的,透過Agile for AI的方法,等於我們有了300人+300 AI Agents,Hire 300 AI Agents,如果一個AI Agent算20美金(約新台幣620元),一個月只要花6,000美金(約新台幣18萬元),如果用這個錢去Hire一個人,可能只能請到一位資深工程師。
隨著公司的成長,我們曾經想像300人、600人、900人這樣的成長。不過因為AI的到來,我們現在的新想像是300人+300 AI Agents、300人 + 600 AI Agents這樣的成長、300人+900 AI Agents這樣的成長。
新的方向一定是,透過導入更多的AI,來拉出新一波的生產力曲線。
不過這還只是現階段。AI正在快速發展,也許明年、或者明天,就會有了新的方法。
我們已經預見一條新的路徑正在發生,突破以往所有軟體工程的思維,會顛覆整個軟體產業既有的框架。
本文授權轉載自《零售的科學》,作者:李昆謀,原文標題:AI與軟體公司的生產力