隨著項(xiàng)目的進(jìn)展,代碼量的積累,代碼質(zhì)量的問(wèn)題逐漸暴露了出來(lái),這一階段的session主要針對(duì)代碼質(zhì)量和軟件設(shè)計(jì),Home Ideas團(tuán)隊(duì)推出了“軟件設(shè)計(jì)檢討會(huì)”系列session。起初,代碼問(wèn)題較多的團(tuán)隊(duì)成員檢查自己的代碼,并且和其他人一起討論代碼設(shè)計(jì)或重構(gòu)方案,每周做一次到兩次;并且把需要重構(gòu)的問(wèn)題專門記錄在一個(gè)共享文檔里,以便跟蹤;不用太長(zhǎng)時(shí)間,這些人的代碼設(shè)計(jì)能力逐步成長(zhǎng)到能夠發(fā)現(xiàn)整個(gè)團(tuán)隊(duì)的代碼設(shè)計(jì)問(wèn)題,并且由主講人變成了組織者,帶動(dòng)其他團(tuán)隊(duì)成員討論代碼問(wèn)題。經(jīng)過(guò)這一階段,團(tuán)隊(duì)成員的軟件設(shè)計(jì)能力和項(xiàng)目的代碼質(zhì)量都明顯提高。
下來(lái)一個(gè)階段的session主要關(guān)注特定功能和問(wèn)題的解決方案和特定技術(shù)的專項(xiàng)提高,比如在實(shí)現(xiàn)了與第三方系統(tǒng)的集成后,主要參與設(shè)計(jì)和實(shí)現(xiàn)的項(xiàng)目成員做了這部分工作從實(shí)現(xiàn)方案,到使用的技術(shù),到具體代碼設(shè)計(jì)的全套session。此外,code jam也是常用的專項(xiàng)技術(shù)能力提升的方式。比如團(tuán)隊(duì)中的前端開(kāi)發(fā)人員連續(xù)組織多次CSS專項(xiàng)提高練習(xí),他每次都會(huì)根據(jù)主題設(shè)計(jì)一系列小練習(xí),層層深入,覆蓋所有的知識(shí)點(diǎn)。
“一人一技”
項(xiàng)目用到的技術(shù)和知識(shí)挺多,想要所有團(tuán)隊(duì)成員同時(shí)研究這些技術(shù)和知識(shí),從資源利用和效率的角度來(lái)講都是不可取的。相反,讓每個(gè)人選擇其中一項(xiàng)技術(shù)進(jìn)行重點(diǎn)研究,對(duì)這個(gè)人著重培養(yǎng)這方面的技能,并且集中優(yōu)勢(shì)資源給予支持,而后再進(jìn)行知識(shí)傳遞,效果往往更好。Home Ideas團(tuán)隊(duì)將此命名為“一人一技”,并進(jìn)行了實(shí)踐。比如一個(gè)團(tuán)隊(duì)成員專攻DevOps,團(tuán)隊(duì)把他送到客戶現(xiàn)場(chǎng)加入客戶的DevOps團(tuán)隊(duì)六周一起工作;另一個(gè)團(tuán)隊(duì)成員的主要目標(biāo)是成為UI開(kāi)發(fā)人員,團(tuán)隊(duì)從別的辦公室邀請(qǐng)來(lái)的前端開(kāi)發(fā)人員和他結(jié)對(duì),客戶來(lái)訪時(shí),也讓他和客戶的前端開(kāi)發(fā)人員結(jié)對(duì)編程,并且在平時(shí)的工作中讓他多做和前端直接相關(guān)的工作;還有一個(gè)團(tuán)隊(duì)成員研究BDD和端到端測(cè)試,當(dāng)這方面的技術(shù)專家來(lái)西安出差時(shí),讓他們結(jié)對(duì)編程,還專門讓這個(gè)團(tuán)隊(duì)成員去客戶現(xiàn)場(chǎng)和客戶那邊的QA Lead探討端到端測(cè)試的問(wèn)題,等等。
實(shí)際效果是,兩三個(gè)月的時(shí)間可以將一個(gè)人打造成團(tuán)隊(duì)內(nèi)部某個(gè)特定技術(shù)的專家,再假以時(shí)日,甚至可以成為業(yè)界這個(gè)領(lǐng)域的佼佼者,比如那個(gè)研究DevOps的團(tuán)隊(duì)成員此后不久去InfoQ做過(guò)關(guān)于DevOps的主題演講。
試想,如果讓所有人都去研究某個(gè)技術(shù),我們會(huì)得到怎樣的效果?要么我們不可能送所有人都去客戶現(xiàn)場(chǎng)加入他們的DevOps團(tuán)隊(duì),要么到西安出差的技術(shù)專家要在一兩周時(shí)間內(nèi)和所有人結(jié)對(duì)工作,收效微乎其微。需要特別注意的是,“一人一技”的實(shí)踐終是否成功,取決于知識(shí)傳遞是否充分,良好的知識(shí)分享的機(jī)制和氛圍是“一人一技”的重要前提。如果沒(méi)有將重點(diǎn)培養(yǎng)形成的單個(gè)團(tuán)隊(duì)成員的技術(shù)積累傳遞出去,對(duì)項(xiàng)目的運(yùn)行也是有潛在的風(fēng)險(xiǎn)。
成長(zhǎng)計(jì)劃
我們常說(shuō)要不斷拓展個(gè)人的舒適區(qū),在一個(gè)項(xiàng)目團(tuán)隊(duì)中如何來(lái)實(shí)現(xiàn)呢?團(tuán)隊(duì)有責(zé)任和每一個(gè)團(tuán)隊(duì)成員進(jìn)行溝通,幫助其設(shè)立個(gè)人的成長(zhǎng)目標(biāo);而每一個(gè)團(tuán)隊(duì)的成員,都應(yīng)該不斷思考自己的成長(zhǎng)計(jì)劃,并努力實(shí)現(xiàn)。