读敏捷系列之《The Art of Agile Development》
本人是學院派,總認為理論能夠指導實踐,所以平時對研發管理方面的書看得比較多。最近在別人影響下開始寫博客,回想以前看過的很多好書,覺得可以拿出來和大家做一下分享。
3、4年前開始接觸敏捷思想,12年的時候去拿了CSM證書,當然考試本身不值一提,我也不認為敏捷能解決所有問題,但是敏捷的思想確實對后續的工作產生了很大影響,有幾本敏捷相關的書籍可以幫忙我們更好的去理解和把握如何在開發過程中應用或者至少借鑒其中的精華。今天要分享的這本書《The Art of Agile Development》,個人認為是其中的代表,也稱得上是XP領域目前最好的一本書。
《The Art of Agile Development》的第一作者James Shore也是敏捷領域的大師級人物,而且兩位作者的文筆功底還是很不錯的,整本書下來思路、用詞、章節安排以及行文可以說行云流水,中文版翻譯也是可圈可點。
全書的第一部分從敏捷的基本理念入手,重點講解XP這一特定敏捷模型的各個方面并對團隊是否適合XP進行了深入剖析,從而引出來第二部分中的各項實踐。本文的重點就是通過理解書中的這些實踐分析現實研發過程中的問題并試圖找出解決這些問題的方法。第三部分應該說脫離了XP而把主題上升到整個敏捷的價值觀和過程改進的方法論上,同時又一定程度上結合了精益思想號召我們要消除浪費并以價值的交付為做行動導向。
縱觀Scrum和XP這兩個敏捷領域最廣為采用的模型,有很多共通點,這些共通點主要體現還是在具體做法上,而不是方法論上。如果用一句話來概括兩者之間的區別,就是:XP偏向工程實踐,而Scrum側重流程管理。這一點在這本書中也是體現的很明顯,作者還是想把具體各個實踐講得更加清楚明白,而不是嘗試把他們整合起來以形成一個工作流程。全書有約四分之三的篇幅在講解思考、協作、發布、計劃和開發這五大類共計37個工程實踐,下面我們就從這些工程實踐中看看能否和實際研發過程結合起來,做到文章開頭提到的理論指導實踐。
一. 不容易做到的實踐
首先,個人認為在國內很多實踐可以嘗試做,但要做到像國外那么徹底、那么直接是不現實的,典型代表就是書中的第一個實踐“結對編程”。敏捷領域里,大家都說結對編程是個好東西,我們可能也模模糊糊覺得應該也不錯,但要做起來我覺得太難,無論環境、資源和管理理念上都顯得格格不入,至少本人從來不會說大家來結對編程一把,可能更多是要建立Mentor機制,老師傅手把手來教新人,很多時間這種教法也是兩個人一起寫點代碼或做些設計,這可能算是“結對”這種思想的變種吧。
另一個不大容易做到的實踐是TDD,個人完全認為TDD是個好東西,自己也曾經嘗試通過TDD來寫點代碼,但寫起來實在有點累。TDD對個人素質要求之高是很明顯的,做起來不會像一些書上舉得例子那樣順利。國內很多公司,包括我現在的這家,面對項目線、產品線的要求,能夠做到核心業務層代碼都能覆蓋單元測試已經是很好了,如果團隊整體水平沒有達到很高的層次,使用TDD可能只會降低開發效率。
敏捷領域有幾句話很直接,例如“如果你的XXX條件沒有滿足,你就不是在實行敏捷”,所以有時候我覺得如果我們不做“結對編程”和"TDD",我們還能說我們是在嘗試敏捷嗎?可能就不一定是了,所以類如這本書中“沒有bug”這樣的實踐也就變得好像有點遙不可及了。
二. 容易做到的實踐
幸好這本書里有些實踐我們還是比較容易做到的:三. 靈活做到的實踐
書中有些內容已經超越了存粹工程實踐的范疇,例如”信任“;有些實踐也是因人而異,和個人習慣有很大關系,例如”松弛“;有些實踐可能不需要整個研發團隊參與,如“愿景”;類如”真實客戶參與“確實非常之重要,但不是每個項目都會有客戶和你一起來做事情的,客戶或者干系人管理更多的是項目管理過程上應該考慮的問題而不是研發過程,“風險管理”也是屬于這類實踐。這些實踐通常需要視項目和團隊情況靈活進行應用,類似的還有“迭代演示”、“探索性測試”、“增量設計和架構”等。四. 需要做到的實踐
關于實踐,這部分才是重點,即那些沒有那么容易做到但是需要我們去做到的實踐。
五. 小結
《The Art of Agile Development》為我們揭開了敏捷的一層面紗,即如何通過XP中的工程實踐進行產品研發和交付。正如大家知道的那樣,敏捷通常只適用于小團隊,而這本書也沒有從團隊協作的角度做深入的探討。如果你沒有研發管理方面的實踐經驗,可能看了之后會發現講得是挺好但不大容易找到在團隊中應用的入手點。另一方面,敏捷對團隊以及團隊中的成員要求實在太高,既要會思考,又要懂協作,計劃發布都參與,還要代碼寫得好、設計也精通,現實中這種人實在太少,個人入行尚淺,周圍確實沒看到過幾個這樣的人。
當你的團隊人員規模逐步變大,可能需要考慮的問題是團隊成員之間的有效溝通和協作,這種有效的溝通和協作通常已經很難通過面對面交流來實現,而必須要有相對完備的文檔和過程資產,這時候敏捷尤其是XP中的部分工程實踐是可以也是應該作為一種過程集成化的手段嵌入到團隊運作中去,例如把大團隊分組成小團隊,大團隊有自己完整的工作流程,而在小團隊內部可以實行“坐在一起”、“站立會議”等實踐,這種敏捷實踐的嵌入式推行方式相對是比較容易的,效果也是不錯的。
總結
以上是生活随笔為你收集整理的读敏捷系列之《The Art of Agile Development》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 映泰 远程开机_远程温柔的开关机,哪种智
- 下一篇: 用Firefox进行Web开发