這對我來說是一個十分陌生的議題,沒有資訊背景、沒學過程式設計,更不用說接觸軟體開發了。撰寫程式的高手不一定會軟體開發,但很多從事軟體開發的人,對於程式設計和程式語言有一定程度的了解。如果說程式設計是個人單獨的技能,那麼軟體開發就是團體式的行軍作戰。對我來說,Scrum入門課程帶給我的不是如何運用在軟體開發工作上的啟發,而是Scrum從“管理”的角度切入,為軟體開發帶來快速回饋的機制。
「Scrum背後蘊藏的是一種管理文化,而不是單純的流程和制度。」————這就是我對這門課最核心的收穫。
這是上禮拜六的7小時課程,為了讓自己在上這門課時有所收穫,我特意跑去了維基百科,搜尋了非常多跟軟體開發相關的關鍵字。Agile、迭代式開發、瀑布式開發、Extreme Programming、Scrum、Task Board。每個詞都看得眼花繚亂,當真的遇上講師David上課講解時,卻覺得如釋重負,所有疑問都一瞬間以系統化的方式串聯起來了。
Scrum(Agile敏捷開發中的其中一種)的精神,正好如同橄欖球比賽中的術語—試圖藉由不斷傳球來向目標推進,也正好呼應了為什麼我提到軟體開發就如同團體式的行軍作戰。而Scrum與傳統開發方式的最大不同在於,這種管理文化是要求工作團隊及早並持續地交付有價值的軟體來滿足客戶的需求。大家或許回想一下日常的經驗,很多時候我們幫別人處理事情的時候,都會先知道對方的需要,然後跟對方說你會怎樣做,大概什麼時候完成了哪些工作,到最後Deadline的時候就一次過將事情的結果上報。以上所舉的例子是非常常見的處事方式,而且大家也覺得非常地理所當然。但當今天事情的複雜度如同軟體開發業時,這種所謂“瀑布式流程”就會出現問題了。
如果今天你答應幫媽媽去菜市場買菜,已經談好了要買什麼、多少錢、大約要花多少時間,結果你回家走到半路你媽打電話跟你說要多買一斤叉燒,你一定會賭爛對吧?“為什麼不早講?”“不是說好了嗎?”你內心很可能這樣子想,但你不聽媽媽的話,可能沒有晚飯吃。Scrum在預防的,就是這樣子的思維。Scrum顛倒的,是那種只有一開始和最後才進行溝通的處理事情方式。
應用Scrum的做法,雖然你在出門前你會先跟媽媽談好了所有的需求、價錢和時間,但你很可能在出門前報備一次、到菜市場買了一把蔥就跟媽媽講、買了一斤肉又跟媽媽講、到最後要離開前再問問看媽媽有沒有別的需要。(以上為盡量聯想到生活的例子,Scrum實際在企業、在軟體開發業會有所出入。)所以我們可以看到,所謂Scrum是一種重視個人互動、與媽媽合作、回應變化的一種精神。
不過,我發現如果這能夠稱之為一種文化,那自然會有文化適應的問題,畢竟Scrum依賴團隊導向的解決方法,因此他對團隊的要求非常高,要有責任感的、自我組織、持續產出等。我一直很好奇也很想知道,從一個管理者的角度來講,如何有效地導入Scrum、如何透過Scrum改變既有的公司文化,當中的手段和時機點,很多細節的東西只能說是一門需要講究的藝術。
Scrum文化願意及早面對問題,並且希望可以改善(圖為軟體開發中回饋的頻率)
Scrum背後引領的文化十分喜歡使用Task Board和便利貼,來反映工作進度。如果大家有用過Trello這款軟體就會知道了。Task Board的好處在於所有的工作進度一目了然,而便利貼的好處在於隨撕隨貼,快速因應環境而改變狀況。導入Scrum系統的辦公室,通常一進去會議室就會看到墻壁附近都貼了滿滿的白報紙或者珍珠版,然後上面是各種顏色的便利貼和內容。甚至現在有很多辦公室的墻壁加裝了可移動並且可放磁鐵的半透明白板,方便進行隨時的Scrum式開會。
說到開會,不得不提一件讓我驚訝的事情,Scrum希望每天的會議是站著開的,而且要在十五分鐘內結束,這相信顛倒了不少人對開會的想象。Scrum有很多種各式各樣的會議,甚至有不少工程師笑稱說這根本就是“開會文化”,不過Scrum的每個會議都追求迅速、有效且明確的目標,而不是平常所想像的那種嘻嘻哈哈的冗長開會。這件事件又讓我會想到一個疑問,這種開會的文化要怎樣導入一家公司,他的時機點應該掌握在什麼時候?在導入的過程中要如何細緻地處理才不會招來反感或者很大阻力?面對老闆、下屬、同事、客戶要讓這些人如何了解並且支持這件事情,是一種持續需要追求和累積的學問。
在大人學上課,絕對少不了精緻的下午茶
登登登登!哇哦有蛋撻泡芙還有熏雞三明治,晚餐不用吃啦!(心得文快變成重點在於餐點了Orz)
Agile敏捷開發和Scrum是一個還有很多內容可以探索和深究的領域,隨著時代變遷,我相信未來Agile精神的應用將會越來越廣泛。心得有很多課程的內容無法一一摘錄,十分感謝David在課程上的用心,給我們帶來了不少實務經驗的分享,也一直鼓勵我們發問與追求答案,相信這種精神也是Scrum課程想要帶給我們的。
“相信思考,勇於改變 ”—這是大人學的辦學宗旨。
留言列表