我們常說做為一支研發團隊,需要是跨職能的全功能團隊,是特性團隊,這樣,軟件產品的某個特性,落到這個團隊,這個團隊都能完成,我們于是朝著這個方向去設計和改進研發團隊。
如下圖,如果一個開發團隊所擁用的能力水平是處在左下角,那么這個團隊充其量只能對某個文件的做代碼的修改。而處于理想的右上角,團隊業務能力范圍是整個產品,技能是全棧。我們知道,單個個體達到最右上角是有難度的,但是團隊是可以通過成員能力的相互補充是可達的,這就需要團隊管理者有意識地去設計和構建這樣的團隊。
另一方面,從協作的角度,不同的協作體量,其所需要的協作方法也是不同的。比如,對于一個個體而言,能做得持續開發,就很不錯了,而隨著協作的體量在增大,如團隊一起開發,我們希望能做到持續集成,以此類推,得出以下象限。
做為對軟件研發做出指導的教練團隊,我希望他們既能覆蓋象限一,又能覆蓋象限二。我希望的教練團隊能夠從左下方出發,最后到達右上方。從研發協作的指導來看,做為教練團隊的職能,是為了指導個人、團隊、組織、公司、以至于行業中的產品的探索和交付。那么,從范圍的維度上,應該是個體 ->團隊->組織->公司->行業,那么,從需要支持到這能力技能維度來看,分別需要關注個體研發技能,團隊的持續集成能力,組織的持續交付能力,公司的開發運維,乃至于行業的精益創業。
我以為,影響軟件研發協作方式的三大因素:產品特性、組織結構和軟件架構。象限二,充其量是關注在組織結構中的體量范圍。如果從軟件架構及技術實現的角度,或許我們又得參考圖一,因為不同的業務范圍,也需要教練從不同的角度給出團隊或個人相應的指導。
那么教練就分了兩類,關注象限一的技術教練和關注象限二的協作流程教練,而他們的連接點,都落在技術實現上。無論是關注技術方法、效率工具或組織轉型,其都能落到對應的象限位置上。
另一個問題是,教練團隊一旦水平達到了最右上角,組織內部沒有內部教練的職業路徑,他們該何去何從?這個我想留到后面來闡述。