|
敏捷思想的出現(xiàn)讓我們看到了新的曙光——以更低的風(fēng)險(xiǎn)、更高的效率開發(fā)出更具質(zhì)量的軟件產(chǎn)品。正因如此,敏捷方法得到了業(yè)內(nèi)足夠的重視并使各路團(tuán)隊(duì)相擁實(shí)踐。然而,即便我們對(duì)于各種敏捷原則、范式、方法和流程了如指掌,仍會(huì)發(fā)現(xiàn)其所給組織帶來的改善遠(yuǎn)達(dá)不到我們的預(yù)期。這究竟是為什么?造成這種困境的根源并非我們學(xué)得不精,而是實(shí)踐不到位。 在我看來,敏捷宣言過于簡單(好吧,是宣言總得簡單一點(diǎn)?。?,以至于足以讓人對(duì)之產(chǎn)生誤解。比如:“可以工作的軟件勝過面面俱到的文檔”容易讓人忽視對(duì)必要文檔的重視;“個(gè)體和交互勝過過程和工具”容易讓人誤以為有了面對(duì)面的溝通就可以忽視適宜的過程和易用的工具所帶來的巨大正面作用。就我的觀察,只要軟件開發(fā)活動(dòng)中忽視了必要(言簡意賅)的文檔、適宜的過程及易用的工具就一定“敏捷不起來”,因?yàn)樗鼈兪撬茉煊?xùn)練有素的個(gè)體所需的重要素材,而個(gè)體正是敏捷原則中所提到的自組織(開發(fā))團(tuán)隊(duì)的組成單位。團(tuán)隊(duì)是否做到自組織是檢驗(yàn)敏捷思想是否真正落地的重要判定依據(jù)。然而,團(tuán)隊(duì)要真正做到自組織卻面臨很大的挑戰(zhàn),讓我們分別從幾個(gè)方面加以探討。 首先,從項(xiàng)目管理層面加以審視。最近面試了一個(gè)項(xiàng)目經(jīng)理,他在華為和騰訊兩家公司都干過,從與之的交談中很明顯地看出他對(duì)于敏捷軟件開發(fā)有著良好的實(shí)戰(zhàn)經(jīng)驗(yàn),也對(duì)實(shí)踐中所碰到的困境有著自己獨(dú)特的思考。然而,當(dāng)我問他“實(shí)施敏捷軟件開發(fā)的最大挑戰(zhàn)是什么”時(shí),他的回答卻是“項(xiàng)目難以如期完成”。得知他的這一回答后,我立即告訴他“盡管你談起敏捷時(shí)頭頭是道,但你內(nèi)心深處并沒有真正擁抱和理解敏捷”。在告知他我為何得出該結(jié)論后,他抱以微笑并對(duì)我的觀點(diǎn)加以認(rèn)可。我估計(jì)與他有同樣想法的項(xiàng)目項(xiàng)目管理者大有人在! “響應(yīng)變化勝過遵循計(jì)劃”這條宣言告訴我們,軟件項(xiàng)目的評(píng)估是為了適應(yīng)變化而非為了遵循計(jì)劃。更深一層的含義是,項(xiàng)目計(jì)劃應(yīng)當(dāng)保持一定的彈性(指計(jì)劃時(shí)間可以經(jīng)常適時(shí)地調(diào)整,項(xiàng)目管理也得敏捷?。?,即如期完成項(xiàng)目計(jì)劃并非是敏捷所倡導(dǎo)的,她所倡導(dǎo)的應(yīng)是持續(xù)地以更高的效率完成高質(zhì)的軟件開發(fā)工作。然而,受傳統(tǒng)項(xiàng)目管理思想的影響,我們大部分管理者仍然以項(xiàng)目是否如期完成作為一個(gè)重要的考核指標(biāo)。其實(shí),對(duì)項(xiàng)目計(jì)劃要求越是精確(這里的“精確”是指計(jì)劃一旦制定就得嚴(yán)格如期執(zhí)行,或者我們說項(xiàng)目計(jì)劃很具“鋼性”),實(shí)現(xiàn)自組織團(tuán)隊(duì)的困難就越大。為什么? 事實(shí)上,不論軟件開發(fā)工程師的經(jīng)驗(yàn)多么豐富,要真正精確評(píng)估實(shí)現(xiàn)一個(gè)軟件功能的時(shí)間在很多情形下幾乎沒有可能。當(dāng)然,現(xiàn)實(shí)中存在另一種“精確”,即通過更大的時(shí)間冗余使評(píng)估顯得“精確”。這所導(dǎo)致的直觀結(jié)果就是,最終單從項(xiàng)目計(jì)劃上就能一眼看出“根本不敏捷”。項(xiàng)目計(jì)劃一旦不具一定的彈性,所產(chǎn)生的另一個(gè)問題是開發(fā)工程師在實(shí)現(xiàn)功能時(shí)根本無法將一個(gè)功能做到讓自己滿意,因?yàn)閷r(shí)間評(píng)估得偏少這類事總在發(fā)生。原因在于很多工程師迫于管理層的壓力,不會(huì)將時(shí)間評(píng)估得保守,而是報(bào)著“我加加班應(yīng)當(dāng)可以搞定”的心態(tài)。最終的結(jié)果就是,工程師為了按計(jì)劃完成工作只能“缺斤少兩”地做事。 讓項(xiàng)目計(jì)劃保持一定的彈性會(huì)讓很多管理者(包括項(xiàng)目經(jīng)理自己)提出一個(gè)問題,即“那我如何知道項(xiàng)目是否進(jìn)展順利呢?”事實(shí)上,項(xiàng)目是否真正進(jìn)展順利并不能簡單地從計(jì)劃的執(zhí)行情況看出,因?yàn)檐浖恼嬲|(zhì)量和開發(fā)效率并非體現(xiàn)在項(xiàng)目計(jì)劃的鋼性上,管理者在這種情形下能做的除了信任團(tuán)隊(duì)外,去了解更多的團(tuán)隊(duì)狀況、技術(shù)細(xì)節(jié)或許有助于平復(fù)自己的焦慮情緒。千萬別忘記,沒有信任就沒有敏捷!也千萬別忘記,敏捷意味著更高的開發(fā)效率和軟件質(zhì)量,而項(xiàng)目計(jì)劃是否如期執(zhí)行根本沒有完全代表這兩個(gè)訴求! 值得一提的是,我并非主張管理層該盲目、簡單地信任團(tuán)隊(duì),在之前一定要確保開發(fā)團(tuán)隊(duì)中存在合適的人可能讓團(tuán)隊(duì)自組織起來。但管理層一定需要意識(shí)到的是,即使團(tuán)隊(duì)中存在那樣的人,也要配合適當(dāng)?shù)墓芾矸椒ú拍茏屇切┤苏嬲龑F(tuán)隊(duì)帶向自組織。 其次,從基層技術(shù)管理的角度加以剖析。技術(shù)管理的核心內(nèi)容是提高團(tuán)隊(duì)技能(參見《技術(shù)管理的核心內(nèi)容——提高團(tuán)隊(duì)技能》),但不少基層技術(shù)管理者從技術(shù)走向技術(shù)管理崗位后,將(絕)大部分精力投入到項(xiàng)目管理事務(wù)中,忽視自己所應(yīng)承擔(dān)的團(tuán)隊(duì)管理責(zé)任。更為可怕的是,這類人很容易將團(tuán)隊(duì)的自組織能力放在一邊,既聽不進(jìn)團(tuán)隊(duì)發(fā)出的聲音,也不會(huì)去刻意培養(yǎng),這種管理模式的造成我們永遠(yuǎn)得不到真正自組織的團(tuán)隊(duì)。 我在《如何做好基層技術(shù)管理工作?》一文中談及了動(dòng)機(jī)與方法兩大方面,在本文討論的主題下需做一些補(bǔ)充。當(dāng)團(tuán)隊(duì)還不具備自組織能力時(shí),基層技術(shù)管理者起到至關(guān)重要的作用。第一,重視工作安排策略。大多情況下,由于項(xiàng)目的時(shí)間壓力,基層技術(shù)管理者很容易采取根據(jù)工程師的技能安排他做最能獲得效率的工作這一策略。然而,長期采用這一策略將導(dǎo)致工程師所熟悉的模塊趨于單一化,結(jié)果導(dǎo)致工作安排缺乏彈性,變成“每個(gè)蘿卜都挪不了坑”。這種境況很不利于團(tuán)隊(duì)技能的發(fā)展,也使得團(tuán)隊(duì)很難進(jìn)入自組織的狀態(tài)。更為合適的做法是,在每次迭代中安排少數(shù)幾個(gè)工程師做他們不擅長的。多次迭代下來,工程師所涉功能面將更廣,這就為項(xiàng)目計(jì)劃時(shí)的人員安排帶來了更大的彈性,也使得各功能模塊的代碼能在多個(gè)工程師的視線范圍內(nèi),從而更容易落實(shí)質(zhì)量。第二,如果不能營造一種讓工程師暢所欲言的團(tuán)隊(duì)文化,則同樣沒有將團(tuán)隊(duì)帶入自組織狀態(tài)的可能。在我看來,只要是一名管理者,如果你的下屬不愿向你吐露工作中的心聲,那證明你已失?。〉谌?,在制定開發(fā)計(jì)劃時(shí),基層技術(shù)管理者一定要持續(xù)地將一只眼睛盯住改善部分,而不能只關(guān)注新功能開發(fā)。不斷改善的目的,是為了防止技術(shù)債高筑而使得程序變更缺乏彈性。第四,團(tuán)隊(duì)在走向自組織的道路上,一定存在不少對(duì)既定目標(biāo)做適當(dāng)變更的情形,此時(shí)基層技術(shù)管理者一定要做好上下間的溝通工作,讓團(tuán)隊(duì)的工作狀態(tài)對(duì)高層管理者更加透明。信息的透明化有助于管理高層真實(shí)了解團(tuán)隊(duì)的現(xiàn)狀,為信任提供良好的支撐,讓他們不至于過于關(guān)注項(xiàng)目計(jì)劃的鋼性。第五,確保軟件設(shè)計(jì)質(zhì)量與編碼質(zhì)量落實(shí)到位。換句話說,確保在團(tuán)隊(duì)中落實(shí)概要設(shè)計(jì)評(píng)審和代碼審查等工作流程。 我相信很多基層技術(shù)管理者想將團(tuán)隊(duì)帶好,但不少人受能力、惰性和胸襟所限,根本不理解什么是自組織團(tuán)隊(duì),也不愿意學(xué)習(xí)與自我改善,還放不下自己是“領(lǐng)導(dǎo)”的架子。然而,這類人正是自組織團(tuán)隊(duì)要“消滅”的。于是,我們面臨這樣一個(gè)悖論——“為了自己不被‘消滅’,這類人一定帶不出自組織的團(tuán)隊(duì)”。不難發(fā)現(xiàn),合適的基層技術(shù)管理者是打造自組織團(tuán)隊(duì)關(guān)鍵中的關(guān)鍵! 再次,我們從工程師的角度給予考量。自組織團(tuán)隊(duì)對(duì)于工程師來說究竟意味著什么?第一,技能多樣化。技能過于單一往往會(huì)造成項(xiàng)目計(jì)劃的實(shí)施瓶頸在于某個(gè)人無可替代地處于項(xiàng)目的關(guān)鍵路徑上,這使得項(xiàng)目的人員安排缺乏彈性。要實(shí)現(xiàn)技能的多樣化首先要從管理著手,即需要基層技術(shù)管理者有意識(shí)地通過工作安排加以培養(yǎng),這一點(diǎn)我們前面已談及。另一方面,工程師也得有意識(shí)自我培養(yǎng),千萬不要將自己的工作錨定在很窄的范圍。為了避免出現(xiàn)這種境況,工程師對(duì)自己的工作內(nèi)容應(yīng)通過編寫言簡意賅的文檔(比如概要設(shè)計(jì)、指南等)的方式讓他人可以方便地接手。顯然,文檔的編寫能力也涵蓋于技能多樣化之中。第二,律己和律他?!白越M織”這個(gè)詞從表面就向我們傳達(dá)了“紀(jì)律”,紀(jì)律意味著質(zhì)量與效率。工程師個(gè)體首先需有良好的自律能力,對(duì)于團(tuán)隊(duì)所達(dá)成的各種共識(shí)(規(guī)范、流程等)努力實(shí)施到位,對(duì)于已存在的好方法、好習(xí)慣積極地模仿并跟隨,而不是簡單地打破并自立門戶。除了良好地律己我們還得關(guān)注律他,通過指出他人不足并給予幫助的方式讓整個(gè)團(tuán)隊(duì)維持良好的工作紀(jì)律。第三,良好的方向感。這種方向感源于清楚地知道產(chǎn)品的定位與戰(zhàn)略,并基于此而形成的、清晰的軟件開發(fā)策略。良好的方向感使得工程師清楚地知道技術(shù)的真正價(jià)值在于為產(chǎn)品的核心競爭力提供強(qiáng)有力的支持,并努力在產(chǎn)品與技術(shù)之間獲得平衡。在我看來,簡單地偏向產(chǎn)品或技術(shù),從長遠(yuǎn)來看對(duì)于整個(gè)團(tuán)隊(duì)都會(huì)是一種災(zāi)難。第四,主動(dòng)承擔(dān)責(zé)任。面對(duì)責(zé)任,與“主動(dòng)承擔(dān)”相反的方式是“防御”或“逃避”。自組織團(tuán)隊(duì)一定不會(huì)害怕責(zé)任,當(dāng)出現(xiàn)問題時(shí)工程師會(huì)主動(dòng)承擔(dān)責(zé)任或幫助他人解決,呈現(xiàn)的是一種互幫互助的良好協(xié)作氛圍。第五,自發(fā)地持續(xù)改善。在具有良好方向感的自組織團(tuán)隊(duì)中,工程師會(huì)時(shí)刻關(guān)注開發(fā)工作中的點(diǎn)滴改善,通過持續(xù)改善的方式從技術(shù)層面不斷地將產(chǎn)品推向更高的品質(zhì)。 從項(xiàng)目管理、技術(shù)管理和工程師三個(gè)緯度的分析可以看出,真正的敏捷自組織團(tuán)隊(duì)需要從上到下、各工種的理解與配合才有可能打造出來?!懊艚荨彼鶑?qiáng)調(diào)的更多的是“彈性”,因?yàn)榫哂辛己脧椥缘膱F(tuán)隊(duì)在面對(duì)各種壓力時(shí)才具韌性。試想想,如果個(gè)體被桎梏于只能容下身體的空間中,那么我們有可能做到(伸手)“敏捷”嗎? 真正的敏捷不是形式,而是團(tuán)隊(duì)的文化與能力。如果不注重從文化與能力上去塑造,無論我們對(duì)于敏捷之形多么在意和刻意臨摹,我們永遠(yuǎn)只能游離于表面。 本文出自 “至簡李云” 博客,請(qǐng)務(wù)必保留此出處http://yunli.blog.51cto.com/831344/1432103 |
|
|