一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

敏捷實踐的七個方面

  我們倆來自于諾基亞西門子網絡杭州3G研發中心,本文內容來源于諾西一個通信產品研發部門所進行的敏捷轉變,它是典型的多站點開發的研發組織,在芬蘭、印度、中國等國家都有研發團隊,總計超過600人。我們免去在文中冗述各種功績和所得,只在這里和大家分享我們所經歷的那些誤區、陷阱,當然還有那些應對的措施。

  特性團隊(Feature Team)

  在組織中想要達到真正的Feature Team是一個很漫長的過程,當在組織中實現局部的端到端的組的時候,更大的端到端的組的演變要求就會出現,因為這時組織中新的瓶頸會展現出來,這也是為什么敏捷雖不能解決問題,但卻使問題更顯現地表現出來的原因之一。

  在組織的轉型中,產品有非常龐大的老代碼:

  1. 通常早期的Feature Team所包括的功能性測試不完全,外部的測試對于這些Feature Team所起到的保護作用還是相當重要的;隨著時間的推移,Feature Team對于自己feature自動化測試加強以及測試能力的提高,發布給外部的產品質量會大大提高;

  2. 對于外部其他組的依賴接口會很多,特別是組在不同國家的時候,溝通、交接和等待的浪費會很大;

  3. 當產品中開發部門和開發部門的依賴減少后,開發和測試的瓶頸會更突出;

  4. 當產品中各個功能部門的依賴減少的時候,產品和產品間的瓶頸會凸顯。

  想象一下從客戶提需求到最終提交功能需要經過多少個過程,特別是大型組織中的產品,端到端意味著幾十個過程甚至更多,Feature Team中能容納多少個這樣的過程就意味著這個Feature Team的靈活度有多高,本質上敏捷就是為了減少相互的依賴、等待和傳遞所帶來的消耗。

  一個組織是一個龐大的系統,Feature Team的轉變過程意味著減少整個系統中的Limitation。 在向Feature Team演變的過程,在相對比較短的時間把原先十幾或者幾十Component Team打破組成新的Feature Team,這中間的風險在于:

  1. 組的成熟度:成熟度需要時間,也需要一些錯誤的代價;

  2. 組的長期成長和短期項目計劃:由于為了項目的進度而把對某領域很熟悉的組移出去做不熟悉的領域;

  3. 組織的產出效率:怎樣合理的利用現有的有經驗人員和新人,建立新結構所需要的基礎會使組織整體的產出效率減低;

  4. 不可控和無序:怎樣讓這些組高質量的發布產品在轉變過程變的不可控。

  理想和現實中的平衡是Feature Team所面對一個問題,劇烈的變動意味著劇烈的陣痛。

  人

  我們的轉變是基于Scrum+XP的方式,轉變的影響巨大,之前存在的許多職位、頭銜都會面臨變化甚至消失的可能。例如將不再會有項目經理來集中處理項目管理的工作,對于產品需求研發順序的管理也由以往的項目經理手中轉為產品負責人來負責。就算是最基層的開發人員和測試人員,他們的日常工作方式以及職責范圍也面臨著極大變化。這也意味著轉變可能會遇到非常大的阻力,人天性會抗拒未知的變化。

  某平臺部門的轉變尤其特殊,研發的老大意志堅定,在初期Pilot成功后,就大刀闊斧地進行組織架構改革,仿佛一夜之間所有的項目經理全部消失。而以往圍繞功能模塊所組建的分散的測試團隊以及開發團隊也被重組,每一個Scrum團隊都擁有好幾名來自不同功能模塊領域的開發和測試人員,從某種角度來看,這是我們所倡導的跨功能特性團隊的雛形。

  各種形式的人員流失造成很大的困難,有人因為個人或家庭的原因離開公司,也有人在新成立的產品線謀得職位,也有人被提升。但這一切都造成原來位置上的熟手損失殆盡,尤其是測試相關人員的流動,曾是很大的隱患。在以往的研發模式中,測試被嚴格劃分為多個層級,由不同的測試部門執行,彼此之間通過高級別工程師以及文檔和流程體系來溝通,確保各個層級的測試得到執行。新的組織架構中,除了Scrum團隊后,就是系統測試團隊,而Scrum團隊測試和系統測試之間的銜接則出現了灰色地帶,原因就是彼此對對方的職責各有不同假設,卻未能發現及解決。

  當時擁護及反對“敏捷”的各有人在。很有意思的是,在內部論壇上,我們屬于敏捷的堅定支持者,又喜歡說話或者說辯論,所以可謂是當時論壇里的焦點,矛頭所向。和大家進行了很多很多的辯論,當然多數都是無疾而終。我認為這些討論,以及發生在工作場合里的許多討論,同事間私下的交流都非常好,在變革之際,能夠幫助大家去理解這場變革(就算是純粹的抱怨也并非一無是處)。

  組織變革的關鍵還是在于充分溝通,以及切實執行。有不同的聲音不要緊,關鍵是要去澄清和解決他們的疑問,因為沒有大家的理解和認同,變革也很難取得實際的效果。

  浪費

  加班加點趕進度的情形相信大家并不少見,但如果這么辛苦做出來的東西并沒有真正地或是及時地派上用場,恐怕就更加可惜了。該平臺部門曾經很辛苦地去兌現某一個重要發布的最后期限,而根據客戶提交的缺陷報告來看,其中有一些功能客戶并沒有在拿到這個重要發布后就去使用,而是在拿到后續的發布后才有使用到這些特定的功能。

  該平臺部門并非是直接面向終端客戶,還需要結合上層的網元應用才能真正地產生效果。常規的模式都是網元有一系列客戶需求(具有非常大的粒度)中分割出對系統平臺的需求后,傳遞到平臺部門的項目進行管理。出現過的情形是,平臺部門趕出來遞交的功能特性,由于網元應用沒能及時開發出來,而無法遞交給客戶使用。

  對此,大家有很多疑惑,我們是否在做該做的事情(功能特性),其中到底有多少浪費。Scrum的主張就是對用戶需求進行優先級排序,但其中有一些關鍵的點必須要重視,否則很容易流于形式而無法從中獲益,第一,要將需求分割到合適的細粒度,團隊才有可能持續地遞交高優先級的功能特性,需求粒度不夠小,假設Product Backlog里就只有一個條目,那么不管是PO還是銷售還是客戶都沒有辦法取舍;第二,要逐漸達到以真正端到端級別的需求為單位進行開發、管理;第三,開發團隊和PO(能夠和終端客戶、用戶交流更好)之間有頻繁地交流、功能成品展示,從而可以利用反饋來改進、提高后續功能的開發。

  局部優化

  有話說“不怕神一樣的敵人,就怕豬一樣的隊友”,其實做軟件也是,怕的就是勁不往一處使。但說回來還真不是大家不努力,而是對這個“一處”的看法各有不同。關注于各自目標的達成,并不能保證這些努力疊加起來能夠實現那個 “共同的”目標,對局部進行的優化可能會反過來扯集體的后腿。這樣的現象,組織各個層面都有。團隊內、團隊之間、產品線之間,都存在著這樣的情況。

  例如團隊內部,由于不習慣轉型過程中新的特性團隊的工作方式,團隊內部也還是頗有些涇渭分明的開發、測試各一撥人,自個選自個的工作,迭代開始的時候,各自就把自己的任務選走,然后整個迭代就盯著自己的一畝三分地拼命干。但問題是,團隊需要負責、承諾的是最終可以運作的軟件增量,而這樣的模式無法保證迭代結束時的交付。

  團隊之間也是如此,為了讓自己的團隊工作預期更穩定、工作中能更專心,團隊也都要求確定他們的工作領域,迭代中則有些簡單粗暴的拒絕許多協助進行缺陷分析的請求。結果就是導致缺陷分析、修復的工作變得非常難以開展,而且有很多尚未查明的潛在缺陷被放棄追蹤和申報。

  更大范圍內來看,我們完成了傳輸平臺的開發還不夠,要能夠產生客戶價值,還少不了上層的應用軟件系統。但我們的系統工程師團隊、Scrum團隊、系統領域測試團隊等,以及上層的開發團隊、功能測試團隊、版本測試團隊、系統測試團隊等一干團隊,盡管都在努力改進自己的工作績效,可問題是,這些局部的、片面的優化,在組織層面觀察,對終端客戶產生的影響微乎其微,甚至是副作用。

  敏捷、精益的要點正在于此 —— 關注于產生的價值,移除不必要的浪費。不恰當的局部優化也是一種浪費,我們要具備系統思考的能力,從整體上看問題,然后改進績效。組建特性團隊就是開始。

  軟件質量

  軟件質量是很多組織都有的一些共性問題,任何變化都意味著質量降低然后恢復到當初,然后再變得比以前好的循環,在我們組織中還是不可避免經歷這樣的循環。

  在敏捷的轉型中,如果沒有很好的考慮這些質量的風險,那么最終它所帶給組織的將是未來很長一段時間的“痛”,背負的“債”需要很大的代價來償還,所導致的結果將對客戶的滿意度和信任都會產生很大的影響。

  質量問題中,通常我們認為會有三種類型的問題:老代碼的問題,新功能開發的問題和改問題引入的新問題

  老代碼的遺留質量問題所占的比重通常是比較大。龐大的系統,任何的改動都有可能影響老代碼的問題,或者老代碼不能滿足當前的需求所需要做的調整,往往是這些改動或者新需求會影響那些地方通常是比較難界定出來,對于老代碼的測試自動化保護是關鍵。

  新功能開發所帶來的問題通常會由于對于進度壓力的妥協,在匆忙完成當前迭代周期的內容或者需要延遲當前迭代周期去做更多的測試之間矛盾。敏捷的開發模式使得原先長周期的項目進度和項目質量矛盾會在更短的周期里(4周)顯現出來。

  在敏捷實踐中,最大的一個優勢就在于快速的質量反饋。由于持續集成,持續回歸測試,質量的反饋就會在2~3天甚至3~4小時之內反饋到代碼提交的軟件人員。

  當然這樣的快速反饋是基于持續集成所達到的層次,最完美的情況肯定是整個產品所有的測試都被放入到持續集成,那么對于整體軟件將會有一個非常全面的質量考量。

  自動化測試

  測試自動化被許多人看做是敏捷的基石之一,眾多的敏捷實踐依賴于自動化的程度,例如持續集成。而能夠實現增量式開發也需要能夠快速、全面地進行回歸測試,確認已存在的功能特性沒有受到新特性開發的影響。在大張旗鼓地進行敏捷轉變之前,我們的產品線就已經開始嘗試過測試自動化。一個專門的測試自動化小組在半年多時間內,操作芬蘭專家開發的自動化測試工具,將那些執行頻率很高的回歸測試用例集實現自動化執行。基于由此項目得來的成功經驗,測試自動化的概念被廣為傳播,而且這個實踐也開始作為一個基本要求附加給測試團隊,自動化測試用例占所有測試用例的比例作為一個指標被上層主管密切關注。

  開始進行敏捷轉變時,圍繞著測試自動化有很多的爭論,主要的焦點在于是否要追求100%的測試自動化。反對方和支持方都各有理由,難分高下,不同理念都有追隨者在實踐。支持者認為自動化測試可以節省執行時間,而且可以在夜間及周末進行測試執行。反對者認為實現自動化用例耗用了測試人員的絕大部分時間,來自于基層的部分意見反映他們都沒有時間去真正的測試系統,而且還有一些用例非常難實現自動化,或者說成本非常高。而最新的一個情況是,在一個新的版本發布計劃中,測試自動化的開銷總計以萬小時計算,那么是否有必要一定要實現100%測試自動化?

  我個人認為,其中很重要的一點就是測試自動化以及其比例被作為硬性指標施壓給團隊,導致團隊無暇顧及測試自動化的質量高低。而測試自動化的質量恰恰會影響到:執行時間的長短、維護自動化腳本的開銷、實現測試目的的準確性等。另一個原因就是,了解、專長于測試自動化,具備大范圍應用測試自動化經驗的專家太少,還常常疲于應付實現具體的測試自動化用例,無暇去傳授、輔導及培養其他同事的測試自動化技能。

  流程

  敏捷的轉型過程中,如果認為流程可以被拋棄,可以按照自己的想法去做開發測試,這樣的觀念將是很大的一個誤區。

  流程之所以為流程是因為它所承載的是一個組織長時間積累的經驗與教訓,它被實踐所證明有效的方式,怎樣使做某件事情的效果與效率達到最優,并在多年的實踐中被不斷的補充。

  比如同行評審,我們的誤區在于認為人們會自動自發的組織好同行評審,可以使用開發組所自己的方式。老的同行評審的傳統并沒有很好的沿襲,特別在組織大規模擴招的時候。導致的結果是我們的需求,設計代碼的問題比以往任何時候都要多。

  比如測試,組織大規模的調整,但是相對應的測試在新組織里的怎樣的計劃,新開發組里測試以怎樣的方式進行,怎樣是最有效率的進行測試,開發組的測試和外部測試之間的區別和協調,測試在端到端的整個開發過程中的布局與充分性。我們的誤區是對這些問題在相當長的時間以后才逐漸意識到這方面的缺乏,然后逐漸提出改進。

  作者簡介:
  徐毅,諾基亞西門子網絡擔任精益及敏捷顧問,專長于大型組織(超過500人)的敏捷遷徙轉變。精通各種風格、類型的黑盒測試,包括驗收性測試驅動開發、探索性測試、測試自動化等。
  王獻,諾基亞西門子網絡擔任項目質量經理,主要職責是幫助開發部門質量和流程的改進。工作經驗從測試工程師和測試質量工程師,到度量組組長,再到項目質量經理。經歷過大型組織的整個轉型,對于敏捷,Scrum以及組織中的所有的流程有些個人的見解。

it知識庫敏捷實踐的七個方面,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩片在线观看 | 成人激情视频网站 | 一二三四视频社区5在线高清视频 | 亚洲人成伊人成综合网久久久 | 久久久久久尹人网香蕉 | 99久久中文字幕伊人 | 国产精品久久久亚洲456 | 看黄在线| 国产精品免费大片 | 综合成人在线 | 国产一区二区三区在线观看精品 | 樱花aⅴ一区二区三区四区 影音先锋 色天使 | 四川幻女一级毛片 | 欧美成人伊人十综合色 | 四虎国产精品永久地址99新强 | 操亚洲 | 国模337人人本艺术150p | 亚洲国产成人成上人色 | 国产精品嫩草影视在线观看 | 中文字幕久久综合伊人 | 一区二区三区观看 | 国产精品福利在线观看免费不卡 | 久久中文字幕久久久久 | 天天操婷婷 | 亚洲成在人网站天堂一区二区 | 欧美成人激情视频 | 极品美女一级毛片免费 | 香蕉久人久人青草青草 | 久久大香线蕉综合爱 | 在线亚洲欧洲国产综合444 | 日本精品www色 | 怡红院免费va男人的天堂 | 国产一起色一起爱 | 亚洲国产精品婷婷久久 | 91av国产在线| 起碰97| 国产免费播放一区二区三区 | 在线看的成人性视频 | 中文字幕在线视频第一页 | 青青热久麻豆精品视频在线观看 | 婷婷影院在线综合免费视频 |