敏捷主義,關於敏捷的思考和啓發

    這片文章是我這些日子以來經過讀書得到的一些關於敏捷開發的思想,以及這些思想對個人啓發。
 
    這篇文章不會討論具體的敏捷方法,而是討論一下敏捷和早期開發方式在原則和邏輯上的區別。這些區別也是咱們在實踐敏捷中最容易忽視的,咱們很容易就能記住每個敏捷方法的特色,可是對於敏捷開發別後的原則和哲學,卻甚少深思。
 
    在傳統的瀑布式開發方式中,前期的分析和設計是最重要的,項目中的代碼不過是按照這個設計嚴格製造出來的產品,而項目中的程序員也只是按照已經作好的設計進行生產的代碼工人而已。傳統的瀑布式開發方式是把軟件也當成一個工業製成品來設計和生產的。
 
    在敏捷開發方式中,最重要的原則是代碼不是設計出來的,而是生長出來的,在一些權威的關於敏捷開發的書中,關於代碼的描述中用的最可能是evolvo這個單詞。Evolvo這個詞只能用於一個有機體,不可能用在一個工業製成品的身上,一個工業製成品是不可能進化的,你看到過一塊肥皂能進化嗎? 若是咱們真的要擁抱敏捷的話,咱們首先須要改變的是咱們對代碼的見解,代碼在敏捷開發中是設計和業務邏輯的最終和最重要的載體,是一個可以根據需求不斷進化的有機體。
 
    敏捷和瀑布模式代碼觀念上的區別,必然致使的是這兩種開發方式對開發人員的不一樣要求。在傳統的瀑布開發方式中,開發人員只是負責把設計文檔翻譯成機器能讀懂的代碼,僅此而已。敏捷開發從它產生的第一天起就強調了對開發人員的重視。敏捷強調代碼的進化和重構,要求開發人員可以發現代碼中的一些很差的設計和不能清晰地體現設計的代碼,並可以對其進行重構和改進。
 
    說的簡單點,傳統的開發方式中,開發人員是操做工,是不須要獨立思考的,只須要按照傳統的工業生產方式進行簡單的重複勞動就能夠了,也不須要有任何判斷力。可是在敏捷開發中,開發人員是園丁,他們要查看代碼是否是在朝正確的方向發展,而且不斷地對代碼進行修剪和保養,這就使得開發人員在敏捷開發中再也不是一個重複勞動的工人,而是一個須要有獨立思考和判斷力的手藝人。
 
    敏捷開發相比於原有的瀑布開發方式,最大的優勢也正在於對開發人員的解放和信任,可是也無形中提升了對於基層開發人員素質的要求。若是你的開發人員中沒有造成一種手藝人的態度的話,任何敏捷方法都是必然會破產的。不少項目和公司採用敏捷失敗的緣由不是他們實踐敏捷方法的細節有什麼錯誤,而是他們從一開始找的人就錯了,他們的開發人員中沒能造成這種手藝人的態度。什麼是手藝人?手藝人就是把本身作出來的每一件東西都當成本身的做品,自身品味和精神的一個載體,體現着本身的價值和審美。把本身作的東西當成產品仍是做品,是操做工和手藝人最大的區別。
 
    因此說一個軟件開發公司若是真的想很好的實行敏捷開發,就首先要在開發人員中培養手藝人的態度。在中國實行敏捷開發,最難的不是怎樣去實踐敏捷開發的具體細節,開個scrum站立會議,弄塊兒白板作Kanban,這些都不是最難的,最可貴是怎麼找到或培養符合敏捷精神的開發人員。中國文化中最缺乏的就是手藝人的態度,由於中國的傳統思惟是萬般皆下品,惟有作官高,權力在中國這片土地的回報率實在是過高了,以致於全部其餘工做的投資回報率在它面前都相形見絀。個人不少同事和朋友,在作了許多年的開發工做後,仍然想當manager,這種選擇無可厚非,由於它從一個側面說明了中國文化中對權利的迷戀是多麼的廣泛和長久。在這樣的文化基礎上實行敏捷尤爲要注意手藝人精神的培養。
 
   說了這麼多敏捷開發的特色,舉個不見得恰當的例子來加深一下理解吧。傳統的開發方式就至關於計劃經濟(若是不知道什麼是計劃經濟的童鞋,請回家問父母,實在篇幅有限,沒法在此普及),更相信精英進行的頂層設計,迷戀於對流程的定義和控制,不相信也不依賴基層參與者的創造力和自我決策,基層參與者被物化成了一個個活的機器或是蟻羣中的工蟻。敏捷開發卻更像市場經濟,它固然也注重精英對社會的設計和他們的領導做用,可是它同時更尊重經濟活動中每個基層參與者的自我決策和創造力。敏捷開發的根本優點在於對人的解放,對開發人員的尊重和信任,認可他們是軟件開發活動中必不可少的創造者而不只僅是一個操做工。
 
   關於敏捷開發,我上面已經說了不少了。關於敏捷開發的原則和實踐,你們能夠參考robert martin寫的那本「敏捷開發原則,模式與實踐」這本書,這本書也是在我學習敏捷開發的過程當中對我影響最深的一本書。
 
   敏捷開發最基本的原則就是敏捷聯盟發佈的敏捷宣言,一共有四條,具體的條目我就不在此一一列舉了,你們能夠看我上面推薦的那本書。這四條敏捷宣言,不只影響了我對敏捷開發的理解,更是深入的影響了個人人生觀。我將敏捷宣言中體現出的原則總結爲8個字:關注成長,擁抱變化,我將其稱之爲敏捷主義,由於我以爲這些原則將成爲互聯網時代咱們最好的生存策略。
 
   隨着互聯網時代的來臨,咱們的經濟和社會發展正以咱們沒法預料的方式在變化。預測和期待原本是人類一種特有的優點,人類就靠着這些優點在遠古的生存競爭中活了下來,成爲贏家。咱們如今面臨的最大的悖論確是隨着人類社會的發展,咱們的將來愈來愈難以預測。在農業時代和傳統的工業時代,你基本上能夠根據之前若干年的狀況來預測將來的收益,可是隨着互聯網時代的來臨,咱們根本沒法預測出一些不知道從什麼地方冒出來的顛覆力量。諾基亞和摩托羅拉確定沒想到智能手機的發展會給他們帶來滅頂之災。在這樣的一個如此難以想象的年代,咱們惟一可以的作的就是不去作過長時間的預測,同時不斷地讓本身成長,讓本身永遠保持好奇心和對變化的敏感。關注成長就是三省吾身,天天都要想想本身得到了什麼,有哪些錯誤須要注意。這些得到能夠是減掉的體重,記下來的一段名言或本身喜歡的座右銘,又或是經過讀書得到的一種心裏體驗。擁抱變化就是永遠要保持一分好奇心,人類的好奇心是人類最難得的能力和全部人類進步的終極動力,不要讓咱們過早的將咱們的好奇心拋棄掉。我說了這麼多,可是我以爲喬布斯說的那句話是對敏捷主義的最精煉的表達: stay hungry, stay foolish。讓咱們永遠記住這句話吧,讓咱們永遠保持對進步的飢餓和對世界的好奇。
相關文章
相關標籤/搜索