對于提供IT專業(yè)服務的公司來說,具備專業(yè)服務能力的人才和團隊是企業(yè)的核心資產(chǎn),直接決定企業(yè)提供服務的能力,進而影響企業(yè)的盈利能力。當企業(yè)處于快速發(fā)展階段,人員規(guī)模迅速擴張,每個團隊都充斥著許多新人。在這種團隊杠桿(Leverage)非常高的場景下,如何保持原有的專業(yè)服務能力,不被稀釋,并為企業(yè)的持續(xù)盈利做好人才儲備,是擺在所有團隊面前的一道考題。
背景
過去的一年半是ThoughtWorks西安辦公室迅速發(fā)展壯大的一年,其人數(shù)規(guī)模從不到十個人發(fā)展到目前的七十多個人。在此期間,我們和一家國外的客戶展開了長期的戰(zhàn)略合作。面對大量新招聘的人員,特別是畢業(yè)生的加入,順利實現(xiàn)交付并且與客戶維持良好的合作關系給團隊的能力建設帶來很大的挑戰(zhàn)。下面我會以Home Ideas團隊為例談談我們在這方面的經(jīng)驗。
一年前Home Ideas項目的開發(fā)工作正式啟動時,初的五個開發(fā)人員中有四個是新人,其中兩個新人雖然有幾年工作經(jīng)驗,但是卻沒有與該項目相關的技術背景,還有兩個新人是剛入職的女畢業(yè)生,技術基礎非常薄弱。在隨后的日子里,又陸續(xù)有新人加入,一個十人左右規(guī)模的團隊內(nèi),多時一共有五個畢業(yè)生,開發(fā)人員中只有一個已經(jīng)通過了試用期。不僅如此,團隊的人員流動還非常頻繁,項目開始后的半年內(nèi),先后有兩個有經(jīng)驗的新人和一個畢業(yè)生離職,并且平均每個月都有一至兩次的人員變動。為了應對這樣的人員結構和能力狀況,Home Ideas團隊進行了如下嘗試。
編程作業(yè)
緊迫的莫過于培養(yǎng)畢業(yè)生基本的讀代碼和寫代碼的能力。一般認為結對編程是好的培養(yǎng)畢業(yè)生的方式,但是在實際中,和畢業(yè)生結對的效率太低,講 授的很多內(nèi)容都很難讓畢業(yè)生在結對的時候接受并消化了,主要原因是畢業(yè)生不熟悉項目的代碼和技術。Home Ideas團隊每天讓有經(jīng)驗的同事給他們布置一些作業(yè),主要是讓他們?nèi)ダ斫夂驼莆枕椖恐械拇a和技術,并且這部分代碼通常和他們正在做的用戶故事相關,第二天要求畢業(yè)生給布置作業(yè)的人講述他對那部分代碼的理解。通過這種方式,能讓畢業(yè)生迅速熟悉項目的代碼和技術,使得他們在結對編程中的學習更有效率。
另一種作業(yè)是基本編程能力的練習,我們通常用一些典型的面向?qū)ο缶幊叹毩曨}。通過和畢業(yè)生一起對題目分析,將解決方案拆分成一個任務列表,要求畢業(yè)生必須用TDD的方式,每次完成一兩個任務,并提交代碼到Github上,布置作業(yè)的人會檢查并提出重構的建議,然后畢業(yè)生修改后提交,通過檢查后,再做下一個任務。我們將這種“小步前進”式的編程作業(yè)稱之為“持續(xù)提交”(Continuous Commits)。經(jīng)過一段時間反復的練習,能夠提高畢業(yè)生的基本的面向?qū)ο缶幊、TDD、重構、任務分解等方面的能力。需要注意的是,布置的作業(yè)一定要檢查,否則,相當于沒有布置,只有這樣才能形成一個完整的戴明環(huán)。