【導語】上一期咱們談了敏捷方法與大型互聯網系統開發,以及目前的行業現狀。點此查看上期文章,今天咱們來談談互聯網學習型敏捷研發組織的構建及策略。
大型互聯網系統的競爭環境和本身的特征,決定了互聯網系統的開發組織必須具備與之相適應的特征。“人”和“組織”方面的因素,是軟件開發冰山處于水面下的底層部分,經常不被察覺和重視。
傳統的基于瀑布模型理念而設計的軟件開發過程,通常是基于文檔傳遞和命令控制型的一大堆流程,其相應的開發組織結構,一般呈現的是層次型的官僚結構。這種過程和組織結構設計,脫離具體的現實因素,過分看重流程的作用,典型的思維方式是把軟件開發作為工廠生產產品的角度來類比,企圖把“人”作為生產流水線上的“機器”看待,企圖以一種設計“精密”的流程來消除“人件”方面的因素。這種不顧現實、沒有認識到“人件”因素的錯誤觀念曾經一時盛行,后遭到了軟件工程領域思想領袖們的尖銳批判。
高效的互聯網敏捷開發,需要拋棄“封閉、重重階層”的官僚組織文化,努力構建一種與之截然不同的、強調“開放、簡單、扁平”的組織結構,拋棄“命令-控制”型的開發組織文化,而代之以一種與之截然不同的“領導-協作”型的敏捷開發文化。
成功進行大型互聯網系統開發要求的技術技能大體上可以概括為以下四個方面:優秀互聯網產品的設計能力、進行快速軟件開發的生產能力、復雜軟件系統的運維能力、活躍用戶社區的運營能力。完備的擁有上述四種技術能力,才能夠構建出一個高保真、高效率的良性反饋回路。一個互聯網系統開發組織,在這四方面的技能越強,就越有可能取得競爭勝利。
上述的“技術技能”,一個開發組織并不可能在一開始便就緒,也不可能一蹴而就。要獲得和不斷提升這些技術技能,更為底層的能力是“組織學習能力”,相對于“技術能力”這種“硬”能力,可以把“組織學習能力”稱為“軟”能力,大體上可以概括為以下四個方面:學習掌握新知識的能力、反思和持續完善的能力、快速調整和演化的能力、團隊協作能力。
互聯網軟件開發本身興起的時間不長,很多從業人員,尤其是某些互聯網開發組織中的管理者和流程制定者,本身來自于傳統軟件開發行業,受傳統方法中的瀑布式模型和機械的“軟件工廠”式軟件工程隱喻影響很深。他們認為,流程才是最主要的,“人”只是“軟件生產流水線”上可以替換的“資源”。
流程主義支持者主張,好的流程將彌補人員能力不足的問題,因而,對于成功,找到適當的人員并不如找到正確的流程那么關鍵。這種錯誤的軟件工程觀點,將會導致對軟件開發中“人和組織”因素的忽視,具備較大的誤導作用,對于本身業務復雜和環境高度動態的互聯網領域,這種誤導帶來的毒害尤其巨大。
敏捷方法的興起,試圖扭轉這一錯誤觀點。敏捷軟件工程實踐者認為,流程可以為人們的高效率工作提供共同框架,但它不能代替能力和技能;產品是由能干、技術熟練的個人制造的,而不是流程制造的。
在敏捷方法中,重點依次為:人、產品和流程。沒有適當的人員,將不能建造任何東西;不將精力放在產品上,其他無關系的活動就會滲入;沒有一個最低限度的流程框架,就會出現無效率,乃至混亂。
人、產品和流程所構成的敏捷開發組織層次模型中,更為底層的是開發組織能夠具備不斷學習的能力。開發組織必須能夠在產品開發的過程中,不斷行動,不斷獲取反饋信息,不斷實施調整和改善,這其實就是一種學習的過程,是通過已知知識認識未知知識,從而擴大已知知識,不斷建立和完善最佳機制和產生最佳產品的自適應過程。
要理解傳統瀑布式流程模型下工作的組織弊端,并將之轉換為基于跨功能交叉的敏捷組織模式。傳統的團隊組織基于瀑布模型和嚴格角色分工,各個個體的角色都是基于其工作職務指派的。有些開發文化把事情搞的更為極端,實施嚴格的責任劃分,有些組織通過讓不同的子團隊沿不同的管理鏈進行報告,對問題進行隔離。在這種管理范式下,認為項目的各種活動-分析、設計、編碼、測試-之間是孤立發生,這是一個錯誤的觀念。人為的分割他們帶來了許多麻煩。這種分割將無法確保團隊做出有見識的明智決策,因為它割斷了開發組織內有益的交流和學習。敏捷的團隊則根據功能劃分團隊。把大型系統的大型開發組織劃分為小團隊,分別負責最終系統的特定方面的功能。這些小團隊內部具備跨越多種專業技能領域的專業人士。
適應能力強和自組織的學習型團隊,是大型互聯網敏捷開發和項目活動的核心主體。要讓各團隊按照各人的能力,在內部自行進行組織。每個團隊都按照約定的承諾,對項目中的其他團隊承擔責任。要著力尋求內聚的、在很大程度上自足的團隊。這種組織將有助于使團隊作為整體與變化的各種效應隔離開來。他們在給出承諾的同時,獲得了一種自我管理的能力,這種自管理,能夠極大的增強團隊的責任感,并提升他們的學習能力。敏捷團隊的成員共同解決項目中所有方面的問題。每一個成員都具有項目中所有方面的參與權力。不存在單一的團隊成員對系統架構、需求或者測試負責的情況。整個團隊共同承擔責任,每一個團隊成員都能夠影響系統的架構、需求或者測試。
敏捷團隊會不斷的對團隊組織方式、規則、關系等進行調整。敏捷團隊知道團隊的環境在不斷的發生變化,并且知道為了保持團隊的敏捷性,就必須要隨環境一起變化。
并且,高效率的敏捷團隊是高度自律的。團隊成員接受責任、接受開發架構、認可一定的行為責任,他們在一個開放靈活的環境下工作,具有高度的決定權。這種組織模式結合了自由和責任、靈活性和結構。面對矛盾和模糊性,團隊的目標是始終如一的在項目范圍內和產品構想基礎上交付客戶價值。有自組織的結構和自律的團隊成員,將能夠保障這種平衡。
在為大型互聯網開發構建學習型組織的過程中,確定敏捷管理的風格是至關重要的策略。開發組織的領導者,以及產品與項目的管理者,清楚了解敏捷管理的風格和特征,發揮自身在這個過程中能夠起到的領導作用,將能極大促進朝向學習型組織的轉變和最終形成。
原文轉自:http://blogread.cn/it/article/6611?f=wb