Scrum開發之我見

        衆所周知,直至今日無論是互聯網公司還是傳統軟件企業都還在找尋一條適合自身特點的系統開發生命週期管理方法之道,但關鍵是大家在“衆裏尋它千百度“之後,都有”暮然回首那人不在燈火斕柵處“的諸多感概與感悟!找尋之路不容易,前期大家都在”瀑布式“方法論的引導下,取得了一定的成效,有效地進行了系統開發過程管理,但隨着競爭越來越激烈與系統越來越複雜,曾經的”法寶“瞬間失靈了,成本越來越高,過程越來越亂,於是老闆坐不住了。便有了衆多公司與企業在”窮則思,思則變,變則試“的永恆法則指導下,象打了興奮劑一樣熱烈地開始去擁抱”洋玩意“-”CMM/CMMI“方法論,在培訓與諮詢公司的狂熱吹捧下,無數正規地、不正規的,上市公司、中小企業都加入了"CMMI"認證大軍,神州大地沉浸在轉身爲”正規軍“的喜悅之中,但”理想總是很豐滿,現實真的很骨感“歡喜過後,大家猛然發現”洋玩意“好象在神州大地水土不服,頂多只能充當看門的”二郎神“,而不是能鎮牛鬼蛇神的”閻羅王“,一場風雨過後一切照舊,過程依然混亂,項目或產品失敗之劍一直高懸。我們到底應該怎麼樣才能更好、更快、更優地完成產品與項目開發呢?如何才能讓我們將產品或項目失敗的風險控制起來呢?無數業界的精英們開始思考起來,開始行動起來,於是乎”敏捷(Agile)“這個詞開始熱起來。
       那麼到底什麼是敏捷呢?敏捷與XP、Scrum之間是什麼關係呢?敏捷與CMMI又是什麼關係呢!上述這些疑問,我相信只需要你關注過“Scrum”過,應該就能獲得相應的答案!簡而言之,敏捷是一種思想,xp是敏捷的行動宣言,而Scrum則是敏捷的體系化框架。它們所有的核心思想是以一種“更輕量、更可控、更發散、更團結、更積極、更開放”的態度去組織、應用複雜多變的軟件產品開發生命週期。而在敏捷的核心方法裏面“迭代”是一個出現頻率最高的詞,它強調以“短週期、高頻次、有順序”的方式方法去組織實施迭代過程,以“大事化小,小事化無”及“優先級決定一切”的工作模式去將複雜的系統開發變成若干個可控的“小單元”,同時強調將迭代的成果產物“階段交付物”及時地客戶進行溝通交流,第一時間獲得相應的反饋併爲下一版本迭代積累與調整"backlog"。整是因爲敏捷中強調與客戶的互動反饋,以及要求團隊更加主動,更加開放的心態去承擔或應對系統開發過程中的各種問題與意見,以“擁抱變化”的態度去進行系統開發,瞬間讓敏捷在軟件開發領域猶如春風撲面,給沉入泥潭中的系統軟件開發帶來了一陣“小清新”,春天終於到了,讓我們去擁抱敏捷吧!
      前文我們費盡口舌來講解敏捷思想種種優點與強悍之處,那現在就讓我們迴歸到問題的最關鍵、最現實之處:我們到底如何進行敏捷開發?敏捷開發的關鍵是什麼?
       說真的,個人對敏捷這一塊的掌握瞭解並不多,雖早有耳聞,但對其瞭解也停留在“不識廬山真面目,只緣身在此山中”,對於上述問題也確實無法給出明確而有效的答覆,經過這二天的簡單培訓,就讓我們一起來分享一下我個人對Scrum及敏捷開發在實施過程中的一些關鍵要點吧!在實施敏捷開發過程中,我認爲:
      (一).以“人”爲本
        在敏捷開發過程,最關鍵的角色有如下幾種:PO、SM、SD(其中又可細分爲:系統架構師、開發人員)。看起來好象關鍵角色不多,但經歷過之後才知道,上述角色個人要求是”孫大聖“類的人物,必須有”七十二變“的本領,同時擁有及強的控制力,能夠掌控全局,有運籌帷幄,決勝於千里之外的氣魄。而個人感覺最爲關鍵的一點是:每個角色要有極強的主動性、自覺性,同時輔以強有力的溝通交流,纔可能讓事情順風順水,一帆風順。但關鍵是目前國內IT市場魚龍混雜,要找到一個合適的人,談何容易!
         此時必然有人跳出來說我太悲觀,誠然我的觀點中固然有悲觀的一面,但我相信天下沒有完美的事情,亦無完美的人,與其等待合適的時機、合適的人選,不如先從自我開始做起,勇於去嘗試、積極去面對,以可接受的失敗去迎接燦爛的明天。人終歸是一個可塑性極強的物種,只要前期選中有潛力的隊員,大家有着堅定的信念與不怕失敗、不怕困難的決心,我相信風雨過後終究會獲得成功。那如何選擇上述角色的人員來組隊呢?、
   a.PO角色
           必須擁有極強的控制力,對產品有着堅定的信念,有清晰的產品概念與演進思路,對產品的”大事大非“瞭如指掌以及遊刃有如。
   b.SM角色
           要求是”掃地僧“類型選手,以“旁觀者”的心態在團隊周邊注視着大家的運作與成長,在關鍵時侯能夠主動跳出來讓團隊迴歸正道。
   c.SD角色
           作爲敏捷團隊最重要的執行者,則要求其能夠更加主動、勇於貢獻、敢於擔責,具有強有力的執行力和溝通交流能力。
    綜上所述,在敏捷的實施過程中選擇合適的人或者以合適的方式去帶動團隊往正確的方向上去努力,這是關鍵所在。
  (二).以“控”爲綱 
          在敏捷中強調“Sprint”,衝刺縱有英雄豪情氣概,但成想如果沒有一個強有力的控制點,配合以成熟的戰術,豐富的應對措施與強大的團隊執行力,那麼一場“衝刺”則將演變成爲通向死亡之旅。如何來避免死亡之旅的發生呢?看起來“短週期,多輪次,多順序”的迭代好象挺不錯,應該能夠帶領團隊披荊斬薊,到達勝利的彼岸。但是細想一下,如果在迭代過程中,沒有良好的控制軌跡,一切將失控。就來文檔來說,有很多人在概念中天生就認爲敏捷就是沒有隨心而動,強調個人,強調交付,所謂的文檔都是浮雲。誠然,敏捷對於文檔的要求沒有那麼高,但絕不是無文檔要求,它要求的是“輕量級”文檔,要求的是更高質量的文檔,只是敏捷認爲團隊的個體的交流更勝過生冷的文字,但這絕不是我們不需要文檔的理由,在關鍵內容上文檔依然是最可靠的夥伴,尤其在我們溝通交流太發散的情況,我們需要有一種東西將我們串起來。而我講的串起來就是以“控”爲綱,我們在敏捷的實施過程中需要選擇關鍵的點,關鍵的過程域,關鍵的崗位,關鍵的環節,強化進行控制以確保每次迭代按照既定的方向前進,同時也能夠提升交付物符合預期目標。
  (三).以“工具”爲術  
          在敏捷中對於各種工具的依賴猶爲關鍵,象日站立會議,白板,便籤條、優先級排定、理想日分析、工作量評估或信息化系統等等。上述工具及其使用方式就象戰鬥過程中所使用的“戰術”一樣,十分清晰與明確地告訴團隊成員,應該怎麼去推進敏捷開發相關事宜的向前發展,如果團隊對上述工具的掌握與瞭解不甚熟悉或帶有牴觸情緒,那麼就象在戰場上士兵不聽衆“戰術指揮”一樣,最終的結果便是“亂搶打死”,死得何其冤。那麼在敏捷實施過程中,無論在形式上、方法上,必須認認真真地按照Scrum的相關要求紮實推進上述工具的使用,經過不斷的努力與嘗試,你終究會有收穫的。
  (四).以“信念”爲基礎   
          看過了上面諸多的要求與困難,也許你會退卻,你會害怕失敗,你不敢去嘗試了。其實不然,敏捷思想確確實實爲軟件開發指明瞭一條新的康莊大道,只是這條大道太過於新潮,讓走怪了鄉間小道的我們會產生錯覺,宛如“鄉下人進城”迷失了方向,在通向成功的迷宮中亂竄,當然也勢必會付出一些血的代價。只要我們有堅定的信念,不斷地去嘗試,去努力面對錯誤與失敗,通過一次、二次...N次的嘗試後,你終究會找一條符合自身特點的康莊大道,但如果你放棄,只會留下背景與血的教訓,其它你別無所獲!
       信念是我們這個社會最缺失的東西,也勢必影響到了我們團隊的每一個人,我相信只要我們選取方向,明天必然會屬於我們,成功就在我們腳下,請踏出你堅地的第一步吧,你會成功的!
發佈了18 篇原創文章 · 獲贊 7 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章