Agile Doctrine–敏捷主義–唯快不破的做事法

有些人喜歡用自以為是的假設來肯定自己的想法與計畫。然而這種過度自信,會導致他們於初期大量投入資源,然後因無知而敗,最後一蹶不振,變成喜歡用自以為是的假設來否定一切想法的人。正確的姿勢,應該要謙虛承認自己身為人類的無知,然後像個科學家,利用許多小實驗取得可靠資訊,看狀況隨機應變,慢慢建構出可靠的,不自以為是的 know-how 之後,再回頭正式動工。這種安全、可靠、速度快、靈活度高的,人類適用的做事哲學,被稱為 Agilism。

正式動工的做法在科技業被稱為「waterfall model」。然而,如同影片中描述的狀況,人類極其無知且自大,從起點到目標充滿假設,卻希望一擊命中,其下場,自然就只有絕望&放棄。本文摘要 YT 熱門的教學影片,介紹如何將 Agilism 最小化自以為是的做事哲學,應用在個人的生活中:

什麼是敏捷主義?

  1. 小規模敏捷測試(agile testing)。理想上,規模要小到一次只做一個假設的驗證,以提高信效度。此外,可以考慮同時做數個獨立的敏捷測試,以避免速度太慢,時間成本過高。
  2. 高速低成本策略。因為重點在於「資訊取得」,而不是做出真正的產品或服務,所以在能有效取得資訊的前提下,利用偷工減料換取速度是可以接受的,或者說是應該的!
  3. 積木架構。為確保在新增、改良、刪除、中止計畫時,能訊速完成,同時不受限於沈沒成本,進而造成組織或個人僵化,無法敏捷反應,是要把計畫設計成積木狀態,隨時可變動,更可重覆利用。
  4. 協作價值觀系統。許多合作者無法溝通,是因為沒有共同的價值觀系統,利用 Agilism 能提供一套執行的信仰體系,調動團隊向同一個方位前進。譬如,大師級的隊員堅持要用最高標準執行時,領導者很可能不得不配合。正確的方法,是要在組建團隊時,篩選出能夠接受 Agilism 做法的人來加入,即可破解此團隊的困境。

P.S. 此影片由淺入深,手把手教你各種 Agile 玩法,有興趣可點此觀看全部:https://bestbanana.cc/english/selection/Business%20&%20Digests/Agile%20Cartoon

科技業應用實例

相當清楚的描述了,在工作現場該如何應用 Agilism。非資訊專業者慎入。影片中提到的「do the right thing VS do the things right VS do it fast.」,強調「使用者、開發者、領導者」三種角色的職責分工,概念相當新穎,值得學習!

我的第一個敏捷成果–Notstupid

我不笨生字AI複習系統 ← 是筆者大一修完 java 課程後,於暑假完成的 APP。可以看到介面相當簡陋,且背後的程式碼亂七八糟(專業術語叫做「spaghetti code」)。完成後至今仍不停修正、改良、刪除、新增各種功能,總發布版本已近千次。試想,若過程中我追求完美,那會浪費掉多少時間資源?要知道,刪掉的功能可不比新增的還少!此系統直到開發後大約四年,經過上千位學生測試,並不停疊代更新後,才穩定下來,幾乎不需要再修改。直到這時,我們才敢說已收集到足夠的證據證明其「修改後」的功能符合需求(用於廣泛視聽),此時才是「大量投入資源」的時機!(例如徹底重寫系統,以排除 spaghetti code 中潛在問題、美化使用者介面、加入遊戲元素等等)。

敏捷相對論:資本&風險

所謂的「小規模」,其實是相對於執行者所擁有的資源而定。手握數百億的人,他的小規模可能是拿出個一個億來測試。所以「資本主義」在這邊仍然是有效的,愈有錢的人,效率愈高。此外,面對愈大的風險,也應該拿出更多的資源來做敏捷的測試。然而這邊請注意,就算拿出來做敏捷測試的資源多,單個測試仍應保持小而美的積木精神。

筆者曾跟著這樣子的老板做過能源產業,然而那時沒有「敏捷」的概念,常常在「初期進行大量投入」,結果蓋出好幾間不賺錢的電廠,雖不賺錢卻又捨不得丟,因為一丟的話那就不止是不賺錢了,連本金全都會賠掉。其結果,自然就成了一個失敗,且僵化的企業。

敏捷主義 VS 瀑布模式 VS 工匠精神 (Agilism / Waterfall Model / Craftsman Spirit)

Agilism 低品質高效率,Waterfall 中品質中效率,Craftsman Spirit 高品質低效率。表面上三個做事方法互相衝突,而實際上,它們是互相補足的。舉例來說,Agilism 的精神就像是在蓋房子之前做一個模型屋,其任務是要測試蓋房屋的人在視覺上的假設。若沒有模型屋,那任誰也不敢說那些「長寬高」的設定真的能滿足消費者的需求。接下來,正式動工就需要利用 Waterfall 的模式去完成。而如果業主有足夠信心,亦可以加大投入的力道,將該房子蓋成精品房屋,實現工匠精神,而能夠在市場上擁有高度競爭力。

這邊應注意,此三者互用並無一定順序。舉例來說,當業者尚無精品房屋的經驗,那就要先試著在其中品質瀑布模式蓋出來的房子之上,嘗試利用敏捷主義來建構 know-how。再者,利用學校教育,也可以先取得蓋房子的 know-how 以降低瀑布模式的風險。

再舉個誇張一點的例子來看(以利理解其內涵)。假設某人突然有天發現了自己的熱情,將全身家當投入,買了顆大石頭,將房子改造成工作空間,辭職全力以赴……,結局想當然會很慘,因為失敗是必然,而一旦失敗,此人恐無力再次改進。正確的做法,一樣可以先從學生做起,從泥土這種重來沒有什麼代價的材料開始練,直到變成師父等級,已經掌握了可靠的 know-how 之後,再去玩那種一旦失敗代價很高的石頭之類的雕刻。P.S. 本人雕刻完全外行,煩請內行指教!

所以說,還是老話一句:

If you think education is expensive, try ignorance.

Robert Orben

ref.: quoteinvestigator.com

溝通協作的敏捷測試

日常生活中,常常會遇到無法溝通的挫折,若能不翻臉,不停深入討論,很可能會發現真正的原因,正如由本文所述,是底層的價值觀不相同–A 覺得超重要的東西,B 覺得還好。

Agilism 告訴我們,無法溝通就是實驗的結果,很明顯推翻了能在短時間內完成溝通的假設。所以下一步不是抱怨,而應該是擬定一個新的方案去測試。例如,對方是否有興趣做價值觀溝通?值得進一步投入資源嗎?這種行為模式,可說是相當的敏捷–Agile。

升級的挫折

筆者曾花了四年徹底投入網站與APP制作。然而在系統完成之後開始推廣的路上相當困難,心裡不好受。究其原因,在系統開發的後期因基礎紮實,做起事來速度相當快。然而,帶著這種心態升級到另一個任務之後,一切又要從零開始,不停做各種敏捷測試,慢慢累積動能。這樣大的反差,當然會適應不良,甚至很有可能會因此而放棄。而能夠放下身段不急燥,那才具有成功的大氣。

做對的事 VS 把事做對–保守與自由主義

Agilism 可說是一種想要「做對的事」的想法。對於個人的假設抱持謙虛態度,利用大量小實驗來驗證什麼是「對的事」。一旦取得足夠的 know-how 之後,Agilist 便會進入「把事做對」的模式,正式動工,投入大量資源。

筆者認為,Agilism 一開始的做法是一種 Conservative Liberalism。又稱為 centre-left wing。本體是「自由主義」(左派、激進、追求創新),然而心態上為「保守主義」(對所有人類想出來的制度 take with a grain of salt)。接著,要進入「把事做對」階度時,Agilism 就變成了 Liberate Conservatism (centre-right wing)。其本體是「保守主義」(右派、穩定、守舊),雖然心態上也如「自由主義」般,抱持著改進的希望,但做法上更像是 manager,最重要的任務是避免風險,把事情完成。

園丁 VS 工程師

Agilism 一開始的態度像個 gardener,任務是對於大自然抱持謙虛的態度,順勢而為,修修剪剪,永遠認為「運氣」是成功的一部份。然而,在掌握 know-how 要開始投入資源時,就要變成 architecture,抱持人定勝天的態度,雷厲風行。

自由經濟 VS 計畫經濟 (Market VS Planned Economy)

自由經濟,又稱為市場經濟,意思是政府不用去管大家怎麼生活,市場自然就有一支看不見的手會去調控,並使其繁榮。而國營事業、關稅壁壘等措施,則是計畫經濟的模式。目前全世界各國採取的經濟發展策略基本上都混合體。這種態度,表面上很符合 Agilism,然而,常見到的問題,例如某些壁壘措施養出的國營事業競爭力一直上不來,卻仍持續採取相同策略,而不敏捷地修正。

P.S. 自由經濟與市場經濟並不能做為左右的分野。一般來說,傾向於改變現狀的,會偏左派;傾向於維持某個現狀的,則是右派,故右派又可以說是保守派。因為現況以美國為首的大部份國家的社會都依循自由經濟大原則在跑,故市場經濟才會被劃分為右派(新保守主義)