Pages

Friday, January 24, 2014

看了你可能會想離職的一本書 for Software Engineer

這是一本關於軟體工程的書 – 敏捷式開發法的逆襲,作者是《搞笑談軟工》的部落格版主 Teddy,他將開發軟體多年的甘苦經驗,以幽默的例子呈現給讀者。身為一個軟體工程師,如果你無法體會書中的描述,也許你的工程師生涯才剛起步,或者你很幸運地在一個有好流程、好管理的環境。如果你看完很有共鳴,那你有兩個選擇:

1. 知道問題在哪裡,盡你所能地去改善。 2. 塊陶啊!

Agile一詞是我在一個阿豆仔的部落格上看到的,但是真正開始去了解是在有一次同學聚餐,聽聞朋友他們的團隊最近導入了所謂敏捷開發(Agile Software Developement),讓我開始省思自己團隊上的問題:目標不明確、工作不斷的Context Switch、雖然身在一個團隊卻各做各的事缺乏向心力、沒有成就感。

從小到大,我所受的教育是先自省後要求別人,在工作中遇到的問題,起初我都是要求自己去改變,做到下一次要更好,但是麻煩的問題仍然持續的發生,我開始覺得是其他人的問題,在合作上嚴格地要求別人做到一定程度,但是這麼做非但沒有減少問題,更增加了人與人之間的衝突,這個狀況就這樣持續了一陣子。

工作的劃分讓每個人謹守自己個工作範圍,老鳥會在一開始就限定好屬於他的範疇,菜鳥經驗不足卻要苦吞下整合的工作,專案經理把他該做專案規劃丟給工程師,卻還巧立名目的說這叫做全方面學習,業務端總是在對手打進客戶端後才喊要跟進,高層的聖旨讓人捉摸不定,種種的不合理不勝枚舉。

有一天我意識到 ,環境才是造成一切問題的原因,而環境之所以如此是因為缺乏一個好的管理與流程的管控,《敏捷式開發法的逆襲》一書所提倡的Scrum其實是Agile開發底下的一種方法,使用它不會讓團隊的程式Bug減少,但是我相信可以改善整個團隊的工作效率,效率提高當然Bug就有可能減少囉。

當然Scrum是適用在一個以軟體開發為主的公司,如果你的公司是靠業務陪人喝酒博感情接單,軟體被視為只是程式碼兜兜湊湊就可以做出“人類是沒有極限”的鬼功能,那你還是洗洗睡了吧。

4 comments:

  1. 你看的那本也很有名!
    其實我們也是只用Scrum中的一些特色,加上Kanban方法。
    導入敏捷其實因團隊而異,這沒有硬性規定的

    ReplyDelete
    Replies
    1. 還有另外一個方法叫extreme programming(極限編程)裡面有明確提到Test,應該就可以減少bug吧XD

      Delete
    2. Kanban跟XP這兩個方法我知道,不過可惜的是沒有實際實施的機會

      Delete
    3. 太強了,你了解的很多耶!

      Delete