關於 Agile 我想說的是

坐在床上,老實說我沒想到在連續忙了好多天之後,還想打出這樣一篇混亂而隨性的文章。

有時候我覺得瘋狂,或是覺得難以想像,耳邊忽然冒出許多像是 Agile, Scrum 這樣嶄新的名詞,許多工程師、或是 Project Manager 開始上這些「認證」的課程。所以我身邊多了一些 Scrum Master,或是一些帶領工程師進入新 process 的人。

有人說 Agile 對軟體是有意義的,因為他讓每個人「必須」

  1. 溝通:讓所有人知道你在做什麼,是不是做對的事情。合乎 spec 嗎?有測試嗎?
  2. 透明化:隨時公開專案的進度

(附註:我知道 Agile 的精神還有測試。)

如果單只是如此,那你的 Agile 可能並不是 Agile,而可能只是在傳統的執行面上,加上一層「看似溝通」的保護。容許我這樣說,如果在 Agile 的精神之外,每天的 daily stand up meeting,只是把 weekly report 變成 daily report 而已。即便如此,我覺得溝通絕對是有益處的。適度的回應讓專案進度變得透明,也能確保 design 與 implementation 與 spec 是相同的(有種 BDD 的意味)。

回想起碩士班的時候,指導教授會回復你每一封 E-mail,如果沒有特別的 comment,可能就只是一封「Good, Y.B」這樣的回復。現在想起來,其實我覺得很安心,老師雖然不知道什麼是 Agile 或是 Scrum 這些近代的 process,但是我們之間有種默契,至少老師知道我做了什麼,對於我的 Weekly Report 有什麼想法。或是我也知道哪一件事情正在進行,老師可能之後還會再回覆我。

我想 Agile 會不會只是一種手段?即便還沒有 Agile,因著彼此的信任,卻達到某種 Agile 執行面的手法。

如果 Agile 和許多現今的 Software Engineering 是一種手段,但這些方法若不是建立在彼此的信任關係上,會是如何呢?舉例而言,如果公司上面說我們的精神是「Change」,也可以敞開心胸說「真心話」,但你不信任你的主管,總是私底下抱怨,也覺得 Change 是一種累贅。那麼,這樣的 slogan 就只是上面長官打高空的伎倆,沒有任何意義。

我想 Agile 與許多軟體開發的技巧相同,你不只仰賴傳遞「執行面」的事物,而是使人真正從內心信服,這些改變是有意義的,能夠真實幫助每天的工作。你當然可以透過每次舉辦的 Workshop 進行想法的傳遞,但更重要的是,這種信念必須透過一種類似「傳教士」的生命,每天切實地影響團隊當中的每個人。然後逐步使人信服,並且融入每天的生活與想法才行。

軟體開發除了軟體的本質之外,還是一門與人的學問,每個參與者都能察覺細微的氣氛轉變。而專案的帶領者是不是又能真實的關心每個人執行的狀況,並依照彼此的需要去做調整,再更深的推展出 process 面的技巧,因應改變,也「準時」交出「好的軟體」。

至於現在的我,我想我還只是一個初出茅廬的工程師,關於軟體工程,我還懂得太少。

4 Replies to “關於 Agile 我想說的是”

  1. Hubert 有看過 Peopleware 嗎? 我覺得這本書超棒的, 用白話寫出團隊開發的核心注要點, 用淺顯易懂的描述和實例說明如何打造一個好團隊, 沒有一堆專有名詞和制式的「最佳實踐」

Leave a Reply

Your email address will not be published. Required fields are marked *